Die jüngsten Fortschritte bei Systemen der künstlichen Intelligenz, wie etwa Sprach- und Gesichtserkennungsprogramme, verdanken sich neuronalen Netzen – dicht vernetzten Systemen einfacher Informationsprozessoren, die durch die Analyse großer Datensätze lernen, Aufgaben zu lösen.
Neuronale Netze sind jedoch groß und ihre Berechnungen verbrauchen viel Energie, was sie für mobile Geräte unpraktisch macht. Die meisten Smartphone-Apps, die auf neuronalen Netzen basieren, laden Daten einfach auf Internetserver hoch, die diese verarbeiten und die Ergebnisse an das Smartphone zurücksenden.
Forscher am MIT haben nun einen Spezialchip entwickelt, der die Berechnungsgeschwindigkeit neuronaler Netze im Vergleich zu seinen Vorgängern um das Drei- bis Siebenfache erhöht und gleichzeitig den Stromverbrauch um 94 bis 95 Prozent reduziert. Dadurch könnte es möglich werden, neuronale Netze lokal auf Smartphones auszuführen oder sie sogar in Haushaltsgeräte zu integrieren.
„Das gängige Prozessormodell sieht so aus: Auf dem Chip befindet sich irgendwo ein Speicher und irgendwo anders ein Prozessor. Daten werden dann hin und her verschoben, um Berechnungen durchzuführen“, erklärt Avishek Biswas, Doktorand der Elektrotechnik und Informatik am MIT und Leiter der Entwicklung des neuen Chips.
„Da diese Algorithmen für maschinelles Lernen so viele Berechnungen erfordern, ist der ständige Datenaustausch der Hauptgrund für den hohen Stromverbrauch. Die Berechnungen dieser Algorithmen lassen sich jedoch auf eine einzige Operation, das Skalarprodukt, vereinfachen. Unser Ansatz war daher: Können wir diese Skalarprodukt-Funktionalität im Speicher implementieren, sodass die Daten nicht mehr ständig hin und her übertragen werden müssen?“ Biswas
und sein Doktorvater, Anantha Chandrakasan, Dekan der MIT School of Engineering und Vannevar Bush Professor für Elektrotechnik und Informatik, beschreiben den neuen Chip in einem Vortrag, den Biswas auf der International Solid State Circuits Conference hielt.
Zurück zur Analogie:
Neuronale Netze sind im Allgemeinen in Schichten organisiert. Ein einzelner Verarbeitungsknoten einer Schicht empfängt typischerweise Daten von mehreren Knoten der nächsten Schicht und leitet Daten an mehrere Knoten der darüberliegenden Schicht weiter. Jede Verbindung zwischen Knoten hat ein eigenes „Gewicht“, das angibt, welche Dimension die Ausgabe eines Knotens in der Berechnung des nächsten Knotens hat. Das Training des Netzes besteht darin, diese Gewichte festzulegen.
Ein Knoten, der Daten von mehreren Knoten der nächsten Schicht empfängt, multipliziert jede Eingabe mit dem Gewicht der entsprechenden Verbindung und summiert die Ergebnisse. Diese Operation, die Summe der Multiplikationen, ist die Definition eines Skalarprodukts. Überschreitet das Skalarprodukt einen bestimmten Schwellenwert, leitet der Knoten es über Verbindungen mit eigenen Gewichten an die Knoten der nächsten Schicht weiter.
Ein neuronales Netz ist eine Abstraktion: Die „Knoten“ sind lediglich im Speicher eines Computers gespeicherte Gewichte. Die Berechnung eines Skalarprodukts beinhaltet typischerweise das Abrufen eines Gewichts aus dem Speicher, das Abrufen des zugehörigen Datenelements, die Multiplikation der beiden, das Speichern des Ergebnisses und die Wiederholung der Operation für jede Knoteneingabe. Da ein neuronales Netzwerk Tausende oder sogar Millionen von Knotenpunkten besitzt, müssen enorme Datenmengen verarbeitet werden.
Diese Abfolge von Operationen ist jedoch nur eine digitale Annäherung an die Vorgänge im Gehirn, wo Signale, die entlang mehrerer Neuronen wandern, an einer Synapse – dem Spalt zwischen Neuronenbündeln – aufeinandertreffen. Die Feuerungsraten der Neuronen und die elektrochemischen Signale, die die Synapse passieren, entsprechen den Datenwerten und Gewichtungen. Der neue Chip von MIT-Forschern verbessert die Effizienz, indem er das Gehirn genauer nachbildet.
Auf dem Chip werden die Eingangswerte eines Knotens in elektrische Spannungen umgewandelt und anschließend mit den entsprechenden Gewichtungen multipliziert. Erst die resultierenden Spannungen werden wieder digitalisiert und zur späteren Verarbeitung gespeichert.
So kann der Chip Skalarprodukte für mehrere Knotenpunkte – im Prototyp 16 gleichzeitig – in einem einzigen Schritt berechnen, anstatt für jede Berechnung zwischen Prozessor und Speicher wechseln zu müssen.
Alles oder Nichts:
Ein Schlüsselaspekt des Systems ist, dass alle Gewichte entweder 1 oder -1 sind. Dadurch lassen sie sich im Speicher als einfache Schalter implementieren, die einen Stromkreis entweder schließen oder offen lassen. Jüngste theoretische Arbeiten legen nahe, dass neuronale Netze, die mit nur zwei Gewichten trainiert werden, kaum an Genauigkeit einbüßen – etwa zwischen 1 und 2 Prozent.
Die Forschung von Biswas und Chandrakasan bestätigt diese Vorhersage. In Experimenten führten sie die vollständige Implementierung eines neuronalen Netzes auf einem herkömmlichen Computer und die entsprechende binäre Gewichtung auf ihrem Chip aus. Die Ergebnisse ihres Chips wichen im Allgemeinen nur um 2 bis 3 Prozent von denen des herkömmlichen Netzes ab.
###
Verfasst von Larry Hardesty, MIT News Office
