Interaktiv: Neuronales Netz

WORUM GEHT’S?

Die App visualisiert ein einfaches neuronales Netz – wie es lernt und wie es arbeitet – am Beispiel der Erkennung handgeschriebener Ziffern. Diese können mit der Maus live auf ein einfaches Zeichenfeld bestehend aus 5 x 3 Pixeln geschrieben werden. Die geschriebene Ziffer wird vom neuronalen Netz dabei unmittelbar in die erkannte Ziffer übersetzt. Wie gut das gelingt, hängt davon ab, wie gut das neuronale Netz trainiert ist.

Das Training erfolgt in der App ebenfalls live in Form von iterativen Lernzykeln. In diesen wird sukzessive der Gesamtfehler verringert, der sich aus dem Vergleich der zehn Trainingsziffern in Pixeldarstellung und der zugehörigen erkannten Ziffer ergibt. Hierbei wird das sogenannte Gradientenverfahren verwendet, welches die Parameter des neuronalen Netzes in jedem Schritt so anpasst, dass der verbleibende Gesamtfehler in jedem Schritt möglichst stark verringert wird (“Schritt in Richtung des steilsten Abstiegs im Fehlergebirge”).  Das Gradientenverfahren wird effizient durch den “Backpropagation-Algorithmus” umgesetzt, ein fast magisches Konzept, welches die Leistungsfähigkeit neuronaler Netze begründet.

Wer mehr dazu wissen will, dem sei das hervorragende Online-Buch Neural Networks and Deep Learning empfohlen, das die Funktionsweise neuronaler Netze ausführlich und gut verständlich erklärt.

ZUGEHÖRIGE VIDEOS

  • in Erstellung

HARTE UND TROCKENE ANLEITUNG

Du kannst hier vieles tun – musst aber nicht. Zunächst kannst du beobachten, wie das neuronale Netz lernt. Während die Anzahl der Lernzykeln (learning cycles) hochzählt, verringert sich der Gesamtfehler (error), den das Netz bei seinen Vorhersagen macht, immer weiter. Dadurch erhöht sich allmählich die Ziffernerkennungsleistung des Netzes. Du kannst diese testen, indem du ins Zeichenfeld links mit der Maus eine Ziffer schreibst (orange auf blauem Hintergrund) und beobachtest, welche Ziffer das Netz erkennt (blaues Feld rechts). Die gesamthafte Erkennungsleistung des Netzes kannst du auch anhand der tabellarischen Balkendarstellung unten verfolgen: das Netz ist umso bessert trainiert, je größer die Balken in der Diagonale und je kleiner alle anderen Balken sind. Die Lerngeschwindigkeit kann durch die Learning Rate eingestellt werden, die der Schrittweite im Gradientenverfahren in Richtung des stärksten Abstiegs im Fehlergebirge entspricht. Aber Vorsicht: zu große Learning Rates können zu Instabilitäten (“Zittern”) führen.

Du kannst verfolgen, wie sich die Gewichtungen der einzelnen Verbindungen zwischen den Neuronen über den Trainingsprozess herausbilden: von sehr negativ (blau) über Null (transparent) bis zu stark positiv (orangefarben). Du kannst dies weiter untersuchen, wenn du die Maus über die einzelnen Neuronen bewegst.

Du kannst zudem verschiedene Formen neuronaler Netze ausprobieren, in dem du im Bereich “Einstellungen” die Anzahl der “hidden layers”, also der Schichten zwischen Eingabeschicht (ganz links) und der Ausgabeschicht (ganz rechts) und deren jeweilige Neuronenanzahl veränderst. Dabei beginnt der Lernprozess nach jeder Anpassung von vorn.

ALLE APPS ZUM THEMA

Hier sind alle harten und trockenen Apps zum Thema. Schau mal rein!