MIT brengt deep learning naar IoT-apparaten (video)

MIT-onderzoekers hebben een systeem ontwikkeld, MCUNet genaamd, dat machine learning naar microcontrollers brengt. De vooruitgang zou het functioneren en de beveiliging kunnen verbeteren van apparaten die zijn verbonden met het internet der dingen (IoT).

MCUNet ontwerpt compacte neurale netwerken die een ongekende snelheid en nauwkeurigheid leveren voor deep learning op IoT-apparaten, ondanks beperkt geheugen en verwerkingskracht. De technologie kan de uitbreiding van het IoT-universum vergemakkelijken en tegelijkertijd energie besparen en de gegevensbeveiliging verbeteren.

Het onderzoek zal volgende maand worden gepresenteerd op de Conferentie over neurale informatieverwerkingssysteme. De hoofdauteur is Ji Lin, een PhD-student in het laboratorium van Song Han in de afdeling Elektrotechniek en Computerwetenschappen van het MIT.

Het IoT is ontstaan ​​in de vroege jaren tachtig. Studenten van de Carnegie Mellon University, waaronder Mike Kazar ’78, sloten een Cola-Cola-machine aan op internet. De motivatie van de groep was simpel: luiheid. Ze wilden hun computers gebruiken om te bevestigen dat de machine gevuld was voordat ze hun kantoor uit gingen om iets te kopen. Het was ‘s werelds eerste apparaat met internetverbinding. "Dit werd zo ongeveer behandeld als de clou van een grap", zegt Kazar, nu een Microsoft-ingenieur. "Niemand verwachtte miljarden apparaten op internet."

Sinds die cola-machine zijn alledaagse voorwerpen in toenemende mate verbonden met het groeiende IoT. Dat omvat alles, van draagbare hartmonitors tot slimme koelkasten die je vertellen wanneer je melk bijna op is. IoT-apparaten werken vaak op microcontrollers: eenvoudige computerchips zonder besturingssysteem, minimale verwerkingskracht en minder dan een duizendste van het geheugen van een typische smartphone. Patroonherkenningstaken zoals deep learning zijn dus moeilijk lokaal uit te voeren op IoT-apparaten. Voor complexe analyses worden door het IoT verzamelde gegevens vaak naar de cloud gestuurd, waardoor ze kwetsbaar zijn voor hacking.

"Hoe zetten we neurale netten rechtstreeks in op deze kleine apparaten? Het is een nieuw onderzoeksgebied dat erg ‘hot’ wordt", zegt Han. "Bedrijven als Google en ARM werken allemaal in deze richting." Han ook.

Met MCUNet heeft Han’s groep twee componenten ondertekend die nodig zijn voor ‘tiny deep learning’: de werking van neurale netwerken op microcontrollers. Een onderdeel is TinyEngine, een inferentie-engine die het resourcebeheer aanstuurt, vergelijkbaar met een besturingssysteem. TinyEngine is geoptimaliseerd om een ​​bepaalde neurale netwerkstructuur uit te voeren, die wordt geselecteerd door MCUNet’s andere component: TinyNAS, een zoekalgoritme voor neurale architectuur.

Systeem-algoritme codesign

Het ontwerpen van een diep netwerk voor microcontrollers is niet eenvoudig. Bestaande zoektechnieken voor neurale architectuur beginnen met een grote pool van mogelijke netwerkstructuren op basis van een vooraf gedefinieerde sjabloon, en vinden vervolgens geleidelijk degene met een hoge nauwkeurigheid en lage kosten. Hoewel de methode werkt, is deze niet de meest efficiënte. "Het kan redelijk goed werken voor GPU’s of smartphones", zegt Lin. "Maar het was moeilijk om deze technieken rechtstreeks toe te passen op kleine microcontrollers, omdat ze te klein zijn."

Daarom ontwikkelde Lin TinyNAS, een zoekmethode voor neurale architectuur die netwerken op maat maakt. "We hebben veel microcontrollers met verschillende vermogenscapaciteiten en verschillende geheugengroottes", zegt Lin. "Daarom hebben we het algoritme [TinyNAS] ontwikkeld om de zoekruimte voor verschillende microcontrollers te optimaliseren." Het aangepaste karakter van TinyNAS betekent dat het compacte neurale netwerken kan genereren met de best mogelijke prestaties voor een bepaalde microcontroller – zonder onnodige parameters. "Vervolgens leveren we het laatste, efficiënte model aan de microcontroller", zegt Lin.

Om dat kleine neurale netwerk te laten draaien, heeft een microcontroller ook een slanke inferentie-engine nodig. Een typische inferentiemotor heeft wat eigen gewicht – instructies voor taken die hij zelden uitvoert. De extra code is geen probleem voor een laptop of smartphone, maar kan een microcontroller gemakkelijk overweldigen. "Het heeft geen geheugen buiten de chip, en het heeft geen schijf", zegt Han. "Alles bij elkaar is slechts één megabyte aan flasf, dus we moeten zo’n kleine bron heel zorgvuldig beheren."

De onderzoekers ontwikkelden hun inferentie-engine in samenwerking met TinyNAS. TinyEngine genereert de essentiële code die nodig is om het aangepaste neurale netwerk van TinyNAS uit te voeren. Elke deadweight-code wordt weggegooid, wat de compilatie verkort. "We houden alleen wat we nodig hebben", zegt Han. "En aangezien we het neurale netwerk hebben ontworpen, weten we precies wat we nodig hebben. Dat is het voordeel van systeemalgoritme codesign." In de tests van de groep met TinyEngine was de grootte van de gecompileerde binaire code tussen 1,9 en vijf keer kleiner dan vergelijkbare microcontroller-inferentie-engines van Google en ARM. TinyEngine bevat ook innovaties die de runtime verkorten, waaronder in-place depth-convolution, waardoor het piekgeheugengebruik bijna gehalveerd wordt. Na het coderen van TinyNAS en TinyEngine, stelde het team van Han MCUNet op de proef.

MCUNet’s eerste uitdaging was beeldclassificatie. De onderzoekers gebruikten de ImageNet-database om het systeem te trainen met gelabelde afbeeldingen en vervolgens om te testen of het nieuwe afbeeldingen kon classificeren. Op een commerciële microcontroller die ze testten, classificeerde MCUNet met succes 70,7 procent van de nieuwe afbeeldingen – de vorige combinatie van ultramodern neuraal netwerk en inferentie-engine was slechts 54 procent nauwkeurig. "Zelfs een verbetering van 1 procent wordt als significant beschouwd", zegt Lin. "Dus dit is een enorme sprong voorwaarts voor de instellingen van microcontrollers."

Het team vond vergelijkbare resultaten in ImageNet-tests van drie andere microcontrollers. En zowel qua snelheid als nauwkeurigheid versloeg MCUNet de concurrentie voor audio- en visuele "wake-word" -taken, waarbij een gebruiker een interactie met een computer initieert door middel van gesproken aanwijzingen (denk aan: "Hé, Siri") of gewoon door een kamer binnen te gaan. De experimenten benadrukken het aanpassingsvermogen van MCUNet aan talloze toepassingen.

"Enorm potentieel"

De veelbelovende testresultaten geven Han de hoop dat het de nieuwe industriestandaard voor microcontrollers zal worden. "Het heeft een enorm potentieel", zegt hij.

De vooruitgang "verlegt de grens van het ontwerp van diepe neurale netwerken nog verder naar het computationele domein van kleine energiezuinige microcontrollers", zegt Kurt Keutzer, een computerwetenschapper aan de University of California in Berkeley, die niet bij het werk betrokken was. Hij voegt eraan toe dat MCUNet "intelligente computervisie-mogelijkheden kan bieden aan zelfs de eenvoudigste keukenapparatuur, of intelligentere bewegingssensoren mogelijk kan maken."

MCUNet kan ook IoT-apparaten veiliger maken. "Een belangrijk voordeel is het behoud van privacy", zegt Han. "U hoeft de gegevens niet naar de cloud te verzenden." Door gegevens lokaal te analyseren, wordt het risico op diefstal van persoonlijke gegevens verkleind.