Eine zusätzliche Schicht

Logo
Text

Wie wir gesehen haben kann ein einzelnes Neuron nicht besonders viel lernen. Also muss man viele Neuronen miteinander kombinieren. Dabei verknüpft man die Outputs von einigen Neuronen mit den Inputs von anderen Neuronen. Rechts ist solch ein einfaches Netzwerk zu sehen.

In der Regel sind Neuronale Netze in Schichten organisiert. Die Schichten werden nacheinander angeordnet und alle Outputs der vorhergehenden Schicht werden mit den Inputs jeden Neurons der nächsten Schicht verbunden.

Unser Beispiel beginnt mit der Eingabeschicht, die aus zwei Neuronen (gelb) und einem Bias-Neuron (rot) besteht.

Die mittlere Schicht besteht ebenfalls aus zwei Neuronen (grün). Und auch sie enthält ein Bias-Neuron. Jedes der Neuronen in dieser Schicht ist durch einen Input mit jedem Neuron der vorherigen Schicht verbunden.

Die Letzte Schicht ist die Ausgabeschicht. Sie enthält nur ein Neuron. Auch hier ist das Neuron über Inputs mit allen Neuronen der vorherigen Schicht verbunden.

Ein Netzwerk hat immer eine Eingabe- und eine Ausgabeschicht. Dazwischen können sich beliebig viele versteckte Schichten befinden (versteckt, weil sie von außen nicht zu sehen sind). Die Größe der Schichten kann variieren und sollte abhängig von der Funktion des Netzes gewählt werden.

Die Funktion

Da unser Beispiel zwei Inputs un deinen Out-put hat, können wir das Netz als zwei-dimensionale Funktion auffassen. Sie ist rechts zu sehen. Wie man sieht ist die Funktion schon komplexer, als die eines Neurons.

Die einzelnen Neuronen

Wir schauen uns die Funktionen der einzelnen Neuronen an. Öffne das Menü des Plots (das Icon mit den Reglern links oben). Unter "z-Achse" kann man das Neuron auswählen, dessen Signal als z-Koordinate dargestellt wird.

Wähle "Layer 1 Neuron 0" aus. Jetzt wird das Signal des oberen Neurons in der versteckten Schicht dargestellt. Merke die die Richtung des Anstiegs.

Wähle jetzt "Layer 1 Neuron 1" (das unterer Neuron der mittleren Schicht). Wie Du siehst ist der Anstieg um 90° gedreht.

Wähle jetzt "Output 0". Das Ausgangssignal des Neurons ist eine Überlagerung der beiden Signale der Neuronen in der versteckten Schicht. Wenn Du genau hinsiehst sieht Du vier Plateaus. Beim höchsten (blau) sind die beiden versteckten Neuronen beide 1. Im tiefsten Bereich (rot) sind beide 0. Die beiden anderen Plateaus (grün und - na ja - gelb) sind die Bereiche, in denen eines der versteckten Neuronen 0 und das andere 1 ist

Verändere mit den Reglern die Gewichte der Kanten zwischen der versteckten und der Ausgabeschicht. Du kannst beobachten, wie sich die Plateaus verschieben.

Inputs zu Hidden zu Output

Wie man XOR lernt

Jetzt können wir das Problem mit XOR lösen. Unten sind die Daten zu sehen.

Das Training

Trainiere das neuronale Netz. Wenn der Lernprozess stagniert, d.h. es scheint keine Verbesserung mehr zu geben, und die Fehler noch hoch sind, solltest Du einen Reset durchführen und den Lernprozess neu starten. Das Ganze kann durchaus mehrere Male notwendig sein.

Das Netzwerk ist durchaus in der Lage XOR zu lernen. Allerdings hängt der Erfolg stark von den anfänglichen Werten der Gewichte ab. Daher muss der Lernprozess mehrere Male durchgeführt werden. Unter Umständen würde es auch reichen den Prozess sehr lange durchzuführen.

Wie es weiter geht

Als nächstes schauen wir uns ein einfaches Anwendungs-Beispiel an.

Version 0.0