Wetenschap
MIT-onderzoekers hebben een efficiënt algoritme ontwikkeld dat een "drukknop" -oplossing zou kunnen bieden voor het automatisch ontwerpen van snellopende neurale netwerken op specifieke hardware. Krediet:Chelsea Turner, MIT
Een nieuw gebied in kunstmatige intelligentie is het gebruik van algoritmen om automatisch machine learning-systemen te ontwerpen die bekend staan als neurale netwerken. die nauwkeuriger en efficiënter zijn dan die ontwikkeld door menselijke ingenieurs. Maar deze zogenaamde neurale architectuurzoektechniek (NAS) is rekenkundig duur.
Een van de state-of-the-art NAS-algoritmen die onlangs door Google zijn ontwikkeld, nam 48, 000 uur werk door een team van grafische verwerkingseenheden (GPU's) om een enkel convolutioneel neuraal netwerk te produceren, gebruikt voor beeldclassificatie en identificatietaken. Google heeft de middelen om honderden GPU's en andere gespecialiseerde circuits parallel te laten lopen, maar dat is voor veel anderen onbereikbaar.
In een paper dat wordt gepresenteerd op de International Conference on Learning Representations in mei, MIT-onderzoekers beschrijven een NAS-algoritme dat in slechts 200 GPU-uren direct gespecialiseerde convolutionele neurale netwerken (CNN's) voor doelhardwareplatforms kan leren - wanneer het wordt uitgevoerd op een enorme afbeeldingsdataset, die een veel breder gebruik van dit soort algoritmen mogelijk zouden maken.
Onderzoekers en bedrijven met beperkte middelen kunnen profiteren van het tijd- en kostenbesparende algoritme, zeggen de onderzoekers. Het brede doel is "het democratiseren van AI, " zegt co-auteur Song Han, een assistent-professor in de elektrotechniek en informatica en een onderzoeker in de Microsystems Technology Laboratories aan het MIT. "We willen zowel AI-experts als niet-experts in staat stellen om neurale netwerkarchitecturen efficiënt te ontwerpen met een drukknopoplossing die snel draait op een specifieke hardware."
Han voegt eraan toe dat dergelijke NAS-algoritmen nooit menselijke ingenieurs zullen vervangen. "Het doel is om het repetitieve en vervelende werk dat gepaard gaat met het ontwerpen en verfijnen van neurale netwerkarchitecturen te ontlasten, " zegt Han, die op het papier wordt vergezeld door twee onderzoekers in zijn groep, Han Cai en Ligeng Zhu.
Binarisatie en snoeien op padniveau
In hun werk, de onderzoekers ontwikkelden manieren om onnodige neurale netwerkontwerpcomponenten te verwijderen, om de rekentijd te verkorten en slechts een fractie van het hardwaregeheugen te gebruiken om een NAS-algoritme uit te voeren. Een extra innovatie zorgt ervoor dat elke uitgevoerde CNN efficiënter werkt op specifieke hardwareplatforms:CPU's, GPU's, en mobiele apparaten, dan apparaten die volgens traditionele benaderingen zijn ontworpen. Bij testen, de CNN's van de onderzoekers werden 1,8 keer sneller gemeten op een mobiele telefoon dan traditionele goudstandaardmodellen met vergelijkbare nauwkeurigheid.
De architectuur van een CNN bestaat uit rekenlagen met instelbare parameters, genaamd "filters, " en de mogelijke verbindingen tussen die filters. Filters verwerken beeldpixels in rasters van vierkanten, zoals 3x3, 5x5, of 7x7 - waarbij elk filter een vierkant bedekt. De filters bewegen in wezen over de afbeelding en combineren alle kleuren van hun bedekte raster van pixels tot een enkele pixel. Verschillende lagen kunnen filters van verschillende grootte hebben, en maak verbinding om gegevens op verschillende manieren te delen. De output is een gecomprimeerde afbeelding - van de gecombineerde informatie van alle filters - die gemakkelijker door een computer kan worden geanalyseerd.
Omdat het aantal mogelijke architecturen om uit te kiezen - de "zoekruimte" genoemd - zo groot is, NAS toepassen om een neuraal netwerk te creëren op enorme beelddatasets is rekenkundig onbetaalbaar. Ingenieurs draaien NAS meestal op kleinere proxy-datasets en dragen hun geleerde CNN-architecturen over naar de doeltaak. Deze generalisatiemethode vermindert de nauwkeurigheid van het model, echter. Bovendien, dezelfde uitgevoerde architectuur wordt ook toegepast op alle hardwareplatforms, wat leidt tot efficiëntieproblemen.
De onderzoekers trainden en testten hun nieuwe NAS-algoritme op een afbeeldingsclassificatietaak in de ImageNet-dataset, die miljoenen afbeeldingen in duizend klassen bevat. Ze creëerden eerst een zoekruimte die alle mogelijke kandidaat-CNN-"paden" bevat, wat betekent hoe de lagen en filters verbinding maken om de gegevens te verwerken. Dit geeft het NAS-algoritme de vrije hand om een optimale architectuur te vinden.
Dit zou doorgaans betekenen dat alle mogelijke paden in het geheugen moeten worden opgeslagen, die de GPU-geheugenlimieten zou overschrijden. Dit behandelen, de onderzoekers maken gebruik van een techniek genaamd "binarisatie op padniveau, " die slechts één bemonsterd pad tegelijk opslaat en een orde van grootte in geheugenverbruik bespaart. Ze combineren deze binarisatie met "snoei op padniveau, een techniek die traditioneel leert welke "neuronen" in een neuraal netwerk kunnen worden verwijderd zonder de output te beïnvloeden. In plaats van neuronen weg te gooien, echter, het NAS-algoritme van de onderzoekers snoeit hele paden, die de architectuur van het neurale netwerk volledig verandert.
In opleiding, alle paden krijgen in eerste instantie dezelfde kans op selectie. Het algoritme traceert vervolgens de paden - waarbij er slechts één tegelijk wordt opgeslagen - om de nauwkeurigheid en het verlies (een numerieke straf toegewezen voor onjuiste voorspellingen) van hun uitvoer te noteren. Vervolgens worden de kansen van de paden aangepast om zowel de nauwkeurigheid als de efficiëntie te optimaliseren. Uiteindelijk, het algoritme snoeit alle paden met een lage waarschijnlijkheid weg en behoudt alleen het pad met de hoogste waarschijnlijkheid - wat de uiteindelijke CNN-architectuur is.
Hardwarebewust
Een andere belangrijke innovatie was het maken van het NAS-algoritme "hardwarebewust, "Han zegt, wat betekent dat het de latentie op elk hardwareplatform gebruikt als feedbacksignaal om de architectuur te optimaliseren. Om deze latentie op mobiele apparaten te meten, bijvoorbeeld, grote bedrijven zoals Google zullen een "boerderij" van mobiele apparaten gebruiken, wat erg duur is. De onderzoekers bouwden in plaats daarvan een model dat de latentie voorspelt met slechts één mobiele telefoon.
Voor elke gekozen laag van het netwerk, het algoritme bemonstert de architectuur op dat latency-voorspellingsmodel. Vervolgens gebruikt het die informatie om een architectuur te ontwerpen die zo snel mogelijk draait, terwijl een hoge nauwkeurigheid wordt bereikt. Bij experimenten, CNN van de onderzoekers liep bijna twee keer zo snel als een gouden standaardmodel op mobiele apparaten.
Een interessant resultaat, Han zegt, was dat hun NAS-algoritme CNN-architecturen ontwierp die lang werden afgedaan als te inefficiënt, maar, in de tests van de onderzoekers, ze waren eigenlijk geoptimaliseerd voor bepaalde hardware. Bijvoorbeeld, ingenieurs zijn in wezen gestopt met het gebruik van 7x7-filters, omdat ze rekenkundig duurder zijn dan meerdere, kleinere filters. Nog, het NAS-algoritme van de onderzoekers ontdekte dat architecturen met enkele lagen van 7x7-filters optimaal werkten op GPU's. Dat komt omdat GPU's een hoge parallellisatie hebben - wat inhoudt dat ze veel berekeningen tegelijk uitvoeren - en dus één groot filter tegelijk efficiënter kunnen verwerken dan meerdere kleine filters één voor één.
"Dit gaat in tegen het eerdere menselijke denken, " zegt Han. "Hoe groter de zoekruimte, hoe meer onbekende dingen je kunt vinden. Je weet niet of iets beter zal zijn dan de menselijke ervaring uit het verleden. Laat de AI het maar uitzoeken."
Wetenschap © https://nl.scienceaq.com