Delta Flow

Training mittels Deltaberechnung

Ein rekurrentes, asynchrones Netz muss wie jedes Netz trainiert werden. In diesem Projekt soll das Netz gleichzeitig Ergebnisse produzieren und spontan trainiert werden können. In dieser Situation müssen also Eingaben und die exakten Trainingswerte parallel eingebbar sein. Das Netz muss sich in dieser Situation selbständig optimieren. Wenn keine Korrekturdaten erscheinen, darf auch keine Korrektur vorgenommen werden. Die Korrekturparameter könnten "Belohnungen" sein. In diesem Fall betrachten wir nur die Verarbeitung in Form von Deltawerten. Ein Delta ist die Differenz aus dem exakten erwarteten Wert und der tatsächlichen Ausgabe.

Allgemeines
Einfaches Netz mit Input & Testdaten
Bild 1: Delta-Flow Allgemein

In der allgemeinen Situation hat man, wie im Bild gezeigt, einen Eingabevektor, einen Ausgabevektor und Korrekturparameter. Hier sind die Parameter in Form von Deltawerten dargestellt. I.d.R. dienen die Parameter dazu die Ausgangs-, bzw. Eingangsgewichte zu optimieren. Das geschieht indem die Gewichtige rückwärts von den Ausgangsneuronen hin zu den Eingangsneuronen verändert werden. In der asynchronen Verarbeitung ist dieser Datenfluss genauer zu spezifizieren.

Die Neuronen haben keine Kenntnisse über die eingehenden Werte. Wie bereits beschrieben, nimmt das Neuron die Eingangswerte an und erhöht für jeden Eingang sein Potential. Wenn der Schwellwert erreicht ist (siehe ..), dann muss das Neuron die Werte an alle nachfolgenden Neuronen feuern. Das Neuron kennt also nur die Axone mit den spezifischen Gewichten. Es kennt aber nicht die Eingangsneuronen (Synapsen). Mit dieser Struktur ist dann die Optimierung rückwärts, ausgehend von den Ergebnisneuronen, bis hin zu den Eingangsneuronen nicht offensichtlich. Da wir ein rekurrentes System betrachten, kann das ausgehende Potential auch in Richtung Eingangsneuron laufen.

Wie bereits beschrieben, wird das Feuern über einen Vermittler (siehe StimulusTransmitter) organisiert. Wenn ein Neuron feuert, wird ein Signal über eine Queue verschickt. Das Signal enthält Informationen über die Quelle (Neuron, das sendet) das Ziel (Empfängerneuron) und auch das zu übertragene Potential. Jedes Mal, wenn ein Neuron feuert, besteht die Möglichkeit, dass ein Deltawert den entgegengesetzten Weg nehmen kann.

Konkretes Beispiel in Form eines Sequence Diagramms
Sequence
Bild 2: Delta Sequence

Das folgende Beispiel zeigt, wie ein Delta-Wert durch ein Netz laufen kann. Das Beispiel ist einfach gehalten, damit man nachvollziehen kann wie der Datenfluss letztendlich sein wird. Jedes Neuron, das einen Deltawert erhält, muss diesen Wert verarbeiten, verändern und für den nächsten Transportzyklus speichern. Das Diagramm zeigt diesen Datenfluss.

Im Gegensatz zu den üblichen Trainingsverfahren, werden die Eingangswerte kontinuierlich und dauerhaft dem Netzwerk zugeführt. (Gelb Neuron 1)

Die exakten Daten, zur Berechnung der Deltawerte, können asynchron zu unterschiedlichen Zeiten die Ausgangsneuronen (Neuron 4) befeuern. In diesem Beispiel würde das Neuron selbst die Deltaberechnung vornehmen. Alternativ kann man das Delta oder einen Belohnungswert an das Neuron senden.

Ein Neuron kann also nur den Rücktransport des Deltas vornehmen, wenn ein Wert im "Rückwärtsgang" vorhanden ist und ein Deltawert im Speicher vorhanden ist. In diesem Fall wird dann das, gespeicherte Delta gelöscht. Das Delta wird auch gelöscht, wenn ein neuer Wert das Neuron erreicht.

Die roten Balken im Diagramm zeigen den Eingang eines Deltawertes, wenn keine Potentialerhöhung aktiv ist und im Prinzip nur der Wert gespeichert wurde.

Die gelben Balken zeigen an, dass zuvor ein Deltawert angekommen ist und aktuell eine Potentialerhöhung erfolgte. Somit kann das Neuron nun das Delta (genauer: verändertes Delta) an das aktive Neuron zurück schicken.

Dieser Verarbeitungsweg ist nun mehr oder weniger zufällig. Nur das Neuron, das zufällig eine Potentialerhöhung bewirkte, bekommt ein Delta übermittelt. Das Verfahren ähnelt dem "Round - Robin" Verfahren. Man kann annehmen, dass mit erhöhter Wahrscheinlichkeit das richtige Neuron einen neuen Deltawert bekommt.

TODO : Delta Verarbeitung & Gewichte
TODO : Interne Neuronverarbeitung