MIT-forskere har udviklet en effektiv algoritme, der kunne give en "trykknap"-løsning til automatisk at designe hurtigtkørende neurale netværk på specifik hardware. Kredit:Chelsea Turner, MIT
Et nyt område inden for kunstig intelligens involverer at bruge algoritmer til automatisk at designe maskinlæringssystemer kendt som neurale netværk, som er mere præcise og effektive end dem, der er udviklet af menneskelige ingeniører. Men denne såkaldte neural architecture search (NAS) teknik er beregningsmæssigt dyr.
En af de avancerede NAS-algoritmer for nylig udviklet af Google tog 48, 000 timers arbejde af en gruppe af grafiske behandlingsenheder (GPU'er) for at producere et enkelt foldet neuralt netværk, bruges til billedklassificering og identifikationsopgaver. Google har midlerne til at køre hundredvis af GPU'er og andre specialiserede kredsløb parallelt, men det er uden for rækkevidde for mange andre.
I et papir, der blev præsenteret på den internationale konference om læringsrepræsentationer i maj, MIT-forskere beskriver en NAS-algoritme, der direkte kan lære specialiserede konvolutionelle neurale netværk (CNN'er) til målhardwareplatforme - når de køres på et massivt billeddatasæt - på kun 200 GPU-timer, som kunne muliggøre en langt bredere brug af disse typer algoritmer.
Ressourcesvage forskere og virksomheder kunne drage fordel af den tids- og omkostningsbesparende algoritme, siger forskerne. Det overordnede mål er "at demokratisere kunstig intelligens, " siger medforfatter Song Han, en assisterende professor i elektroteknik og datalogi og en forsker i Microsystems Technology Laboratories ved MIT. "Vi ønsker at sætte både AI-eksperter og ikke-eksperter i stand til effektivt at designe neurale netværksarkitekturer med en trykknapløsning, der kører hurtigt på en bestemt hardware."
Han tilføjer, at sådanne NAS-algoritmer aldrig vil erstatte menneskelige ingeniører. "Målet er at aflaste det gentagne og kedelige arbejde, der følger med at designe og forfine neurale netværksarkitekturer, " siger Han, der får selskab af papiret af to forskere i sin gruppe, Han Cai og Ligeng Zhu.
Binarisering og beskæring på "stiniveau".
I deres arbejde, forskerne udviklede måder at slette unødvendige neurale netværksdesignkomponenter, at reducere computertider og kun bruge en brøkdel af hardwarehukommelse til at køre en NAS -algoritme. En yderligere innovation sikrer, at hver udsendt CNN kører mere effektivt på specifikke hardwareplatforme - CPU'er, GPU'er, og mobile enheder - end dem, der er designet af traditionelle tilgange. I test, forskernes CNN'er var 1,8 gange hurtigere målt på en mobiltelefon end traditionelle guldstandardmodeller med lignende nøjagtighed.
En CNN's arkitektur består af lag af beregninger med justerbare parametre, kaldet "filtre, " og de mulige forbindelser mellem disse filtre. Filtre behandler billedpixels i gitter af firkanter - såsom 3x3, 5x5, eller 7x7—med hvert filter dækker en firkant. Filtrene bevæger sig i det væsentlige hen over billedet og kombinerer alle farverne i deres dækkede gitter af pixels til en enkelt pixel. Forskellige lag kan have forskellige filtre, og oprette forbindelse for at dele data på forskellige måder. Outputtet er et komprimeret billede - fra den kombinerede information fra alle filtrene - som nemmere kan analyseres af en computer.
Fordi antallet af mulige arkitekturer at vælge imellem - kaldet "søgerummet" - er så stort, at anvende NAS til at skabe et neuralt netværk på massive billeddatasæt er beregningsmæssigt uoverkommeligt. Ingeniører kører typisk NAS på mindre proxy-datasæt og overfører deres indlærte CNN-arkitekturer til målopgaven. Denne generaliseringsmetode reducerer modellens nøjagtighed, imidlertid. I øvrigt, den samme output-arkitektur anvendes også på alle hardwareplatforme, hvilket fører til effektivitetsproblemer.
Forskerne uddannede og testede deres nye NAS -algoritme på en billedklassificeringsopgave i ImageNet -datasættet, som indeholder millioner af billeder i tusind klasser. De oprettede først et søgerum, der indeholder alle mulige kandidat -CNN "stier" - hvilket betyder, hvordan lagene og filtrene forbinder for at behandle dataene. Dette giver NAS-algoritmen frit spil til at finde en optimal arkitektur.
Dette vil typisk betyde, at alle mulige stier skal gemmes i hukommelsen, hvilket ville overskride GPU-hukommelsesgrænserne. For at løse dette, forskerne udnytter en teknik kaldet "binarisering på sti-niveau, ", som kun gemmer én prøvet sti ad gangen og gemmer en størrelsesorden i hukommelsesforbrug. De kombinerer denne binarisering med "beskæring på stiniveau, " en teknik, der traditionelt lærer, hvilke "neuroner" i et neuralt netværk, der kan slettes uden at påvirke outputtet. I stedet for at kassere neuroner, imidlertid, forskernes NAS-algoritme beskærer hele stier, hvilket fuldstændig ændrer det neurale netværks arkitektur.
I træning, alle stier får i første omgang samme sandsynlighed for valg. Algoritmen sporer derefter stierne - lagrer kun én ad gangen - for at notere nøjagtigheden og tabet (en numerisk straf tildelt for forkerte forudsigelser) af deres output. Den justerer derefter sandsynligheden for stierne for at optimere både nøjagtighed og effektivitet. Til sidst, Algoritmen beskærer alle stier med lav sandsynlighed og beholder kun stien med den højeste sandsynlighed - som er den endelige CNN-arkitektur.
Hardware-bevidst
En anden nøgleinnovation var at gøre NAS-algoritmen "hardwarebevidst, "Han siger, hvilket betyder, at den bruger latensen på hver hardware -platform som et feedback -signal til at optimere arkitekturen. For at måle denne latenstid på mobile enheder, for eksempel, store virksomheder som Google vil anvende en "farm" af mobile enheder, hvilket er meget dyrt. Forskerne byggede i stedet en model, der forudsiger latenstiden ved kun at bruge en enkelt mobiltelefon.
For hvert valgt lag af netværket, Algoritmen sampler arkitekturen på den latens-forudsigelsesmodel. Den bruger derefter denne information til at designe en arkitektur, der kører så hurtigt som muligt, samtidig med at der opnås høj nøjagtighed. I eksperimenter, forskernes CNN løb næsten dobbelt så hurtigt som en guldstandardmodel på mobile enheder.
Et interessant resultat, Han siger, var, at deres NAS-algoritme designede CNN-arkitekturer, der længe blev afvist som værende for ineffektive - men, i forskernes tests, de var faktisk optimeret til bestemt hardware. For eksempel, ingeniører er stort set holdt op med at bruge 7x7 filtre, fordi de er beregningsmæssigt dyrere end flere, mindre filtre. Endnu, forskernes NAS-algoritme fandt arkitekturer med nogle lag af 7x7-filtre, der kørte optimalt på GPU'er. Det er fordi GPU'er har høj parallelisering - hvilket betyder, at de beregner mange beregninger samtidigt - så kan behandle et enkelt stort filter på én gang mere effektivt end at behandle flere små filtre et ad gangen.
"Dette strider imod tidligere menneskelig tænkning, "Han siger." Jo større søgerum, jo mere ukendte ting kan du finde. Du ved ikke, om noget vil være bedre end tidligere menneskelige erfaringer. Lad AI finde ud af det."