Forscher des MIT haben ein System entwickelt, das Deep-Learning-Neuronale Netze in neue – und viel kleinere – Bereiche bringen könnte, wie zum Beispiel in die winzigen Computerchips in tragbaren medizinischen Geräten, Haushaltsgeräten und den anderen 250 Milliarden Objekten, die das „Internet der Dinge“ (IoT) ausmachen.

Das System namens MCUNet entwickelt kompakte neuronale Netze, die trotz begrenzten Speichers und begrenzter Rechenleistung eine beispiellose Geschwindigkeit und Genauigkeit für Deep Learning in IoT-Geräten bieten. Die Technologie könnte die Erweiterung des IoT-Ökosystems fördern und gleichzeitig Energie sparen und die Datensicherheit verbessern.

Die Forschungsergebnisse werden auf der Konferenz für neuronale Informationsverarbeitungssysteme im nächsten Monat vorgestellt. Erstautor ist Ji Lin, Doktorand im Labor von Song Han am MIT (Fachbereich Elektrotechnik und Informatik). Zu den Koautoren gehören Han und Yujun Lin vom MIT, Wei-Ming Chen vom MIT und der National Taiwan University sowie John Cohn und Chuang Gan vom MIT-IBM Watson Artificial Intelligence Lab.

Das Internet der Dinge

Das Internet der Dinge (IoT) entstand Anfang der 1980er-Jahre. Studenten der Carnegie Mellon University, darunter Mike Kazar im Jahr 1978, verbanden einen Coca-Cola-Automaten mit dem Internet. Die Motivation der Gruppe war simpel: Bequemlichkeit. Sie wollten mit ihren Computern überprüfen, ob der Automat gefüllt war, bevor sie ihr Büro verließen, um etwas zu kaufen. Es war das weltweit erste internetfähige Gerät. „Das wurde damals mehr oder weniger als Witz abgetan“, sagt Kazar, heute Ingenieur bei Microsoft. „Niemand rechnete mit Milliarden von Geräten im Internet.“

Ausgehend von diesem Coca-Cola-Automaten vernetzen sich Alltagsgegenstände zunehmend im wachsenden Internet der Dinge (IoT). Das reicht von tragbaren Herzfrequenzmessern bis hin zu intelligenten Kühlschränken, die den Milchvorrat ankündigen. IoT-Geräte laufen oft auf Mikrocontrollern – einfachen Computerchips ohne Betriebssystem, mit minimaler Rechenleistung und weniger als einem Tausendstel des Speichers eines typischen Smartphones. Daher lassen sich Mustererkennungsaufgaben wie Deep Learning nur schwer lokal auf IoT-Geräten ausführen. Für komplexe Analysen werden die vom IoT erfassten Daten häufig in die Cloud übertragen, wodurch sie anfällig für Hackerangriffe werden.

„Wie können wir neuronale Netze direkt in diese kleinen Geräte integrieren? Das ist ein neues Forschungsgebiet, das immer mehr an Bedeutung gewinnt“, sagt Han. „Unternehmen wie Google und ARM arbeiten in diese Richtung.“.

Mit MCUNet programmierte Hans Gruppe zwei Komponenten, die für „Tiny Deep Learning“ – den Betrieb neuronaler Netze auf Mikrocontrollern – notwendig sind. Eine dieser Komponenten ist TinyEngine, eine Inferenzmaschine, die Ressourcen ähnlich einem Betriebssystem verwaltet. TinyEngine ist für die Ausführung einer bestimmten neuronalen Netzwerkarchitektur optimiert, die von der anderen Komponente von MCUNet ausgewählt wird: TinyNAS, einem Suchalgorithmus für neuronale Netzwerkarchitekturen.

Systemalgorithmuscodierung

Die Entwicklung tiefer neuronaler Netze für Mikrocontroller ist nicht einfach. Bestehende Verfahren zur Suche nach neuronalen Architekturen beginnen mit einer großen Menge möglicher Netzwerkstrukturen auf Basis einer vordefinierten Vorlage und ermitteln dann schrittweise diejenige mit hoher Genauigkeit und geringen Kosten. „Für GPUs oder Smartphones funktioniert das recht gut“, sagt Lin. „Es war jedoch schwierig, diese Verfahren direkt auf winzige Mikrocontroller anzuwenden, da diese zu klein sind.“

Lin entwickelte daher TinyNAS, eine Methode zur Suche neuronaler Architekturen, die Netzwerke in maßgeschneiderter Größe erzeugt. „Es gibt viele Mikrocontroller mit unterschiedlicher Leistungsfähigkeit und Speicherkapazität“, erklärt Lin. „Deshalb haben wir den [TinyNAS-]Algorithmus entwickelt, um den Suchraum für verschiedene Mikrocontroller zu optimieren.“ Dank dieser Anpassungsfähigkeit kann TinyNAS kompakte neuronale Netze mit optimaler Leistung für einen bestimmten Mikrocontroller generieren – ohne unnötige Parameter. „Anschließend liefern wir das finale, effiziente Modell an den Mikrocontroller“, so Lin.

Um dieses winzige neuronale Netzwerk auszuführen, benötigt ein Mikrocontroller auch eine leistungsschwache Inferenz-Engine. Eine typische Inferenz-Engine enthält unnötigen Code – Anweisungen für Aufgaben, die sie nur selten ausführen kann. Dieser zusätzliche Code ist für einen Laptop oder ein Smartphone kein Problem, könnte einen Mikrocontroller aber leicht überfordern. „Er hat keinen externen Speicher und keine Festplatte“, erklärt Han. „Insgesamt verfügt er nur über ein Megabyte Flash-Speicher, daher müssen wir mit dieser kleinen Ressource sehr sorgsam umgehen.“ Hier kommt TinyEngine ins Spiel.

Die Forscher entwickelten ihre Inferenz-Engine in Zusammenarbeit mit TinyNAS. TinyEngine generiert den notwendigen Code für das kundenspezifische neuronale Netzwerk von TinyNAS. Überflüssiger Code wird verworfen, wodurch die Kompilierzeit verkürzt wird. „Wir behalten nur das Nötigste“, erklärt Han. „Und da wir das neuronale Netzwerk selbst entwickelt haben, wissen wir genau, was wir brauchen. Das ist der Vorteil von Systemalgorithmus-Code.“ Tests des TinyEngine-Teams ergaben, dass der kompilierte Binärcode 1,9- bis fünfmal kleiner war als vergleichbare Inferenz-Engines von Mikrocontrollern von Google und ARM. TinyEngine enthält außerdem Innovationen zur Laufzeitoptimierung, darunter die In-Place-Tiefenfaltung, die den maximalen Speicherverbrauch um fast die Hälfte reduziert. Nach der Entwicklung von TinyNAS und TinyEngine testete Hans Team MCUNet.

Die erste Herausforderung für MCUNet bestand in der Bildklassifizierung. Die Forscher nutzten die ImageNet-Datenbank, um das System mit beschrifteten Bildern zu trainieren und anschließend seine Fähigkeit zur Klassifizierung neuer Bilder zu testen. Auf einem getesteten kommerziellen Mikrocontroller klassifizierte MCUNet 70,7 Prozent der neuen Bilder korrekt – die bisherige Kombination aus neuronalem Netzwerk und Inferenz-Engine erreichte lediglich eine Genauigkeit von 54 Prozent. „Selbst eine Verbesserung um nur ein Prozent ist signifikant“, so Lin. „Dies ist also ein großer Fortschritt für die Mikrocontroller-Optimierung.“

Das Team erzielte ähnliche Ergebnisse in ImageNet-Tests mit drei weiteren Mikrocontrollern. Sowohl in puncto Geschwindigkeit als auch Genauigkeit übertraf MCUNet die Konkurrenz bei auditiven und visuellen Aktivierungsaufgaben, bei denen ein Benutzer die Interaktion mit einem Computer per Sprachbefehl (z. B. „Hey Siri“) oder einfach durch Betreten eines Raumes initiiert. Die Experimente unterstreichen die Anpassungsfähigkeit von MCUNet an zahlreiche Anwendungen.

„Enormes Potenzial“
Die vielversprechenden Testergebnisse geben Han Hoffnung, dass es sich zum neuen Industriestandard für Mikrocontroller entwickeln wird. „Es hat enormes Potenzial“, sagt er.

„Dieser Fortschritt verschiebt die Grenzen des Designs tiefer neuronaler Netze noch weiter in den Rechenbereich kleiner, energieeffizienter Mikrocontroller“, sagt Kurt Keutzer, Informatiker an der University of California, Berkeley, der nicht an der Arbeit beteiligt war. Er fügt hinzu, dass MCUNet „selbst einfachste Küchengeräte mit intelligenten Bildverarbeitungsfunktionen ausstatten oder intelligentere Bewegungssensoren ermöglichen könnte.“.

MCUNet könnte IoT-Geräte auch sicherer machen. „Ein entscheidender Vorteil ist der Schutz der Privatsphäre“, sagt Han. „Die Daten müssen nicht in die Cloud übertragen werden.“.

Die lokale Datenanalyse verringert das Risiko des Diebstahls persönlicher Daten, einschließlich Gesundheitsdaten. Han stellt sich Smartwatches mit MCUNet vor, die nicht nur Herzfrequenz, Blutdruck und Sauerstoffsättigung messen, sondern diese Informationen auch analysieren und interpretieren. MCUNet könnte zudem Deep-Learning-Funktionen für IoT-Geräte in Fahrzeugen und ländlichen Gebieten mit eingeschränktem Internetzugang bereitstellen.

Darüber hinaus führt der geringe Ressourcenbedarf von MCUNet zu einer geringen CO₂-Bilanz. „Unser großer Traum ist ein grünes IoT“, sagt Han und fügt hinzu, dass das Training eines großen neuronalen Netzes so viel CO₂ verbrauchen kann wie die gesamten Emissionen von fünf Autos. MCUNet auf einem Mikrocontroller bräuchte nur einen Bruchteil dieser Energie. „Unser oberstes Ziel ist es, eine kleine, effiziente KI mit weniger Rechenleistung, weniger Personal und weniger Daten zu ermöglichen“, so Han.

Autor: Daniel Ackerman, MIT