Neuronale Arbeit

 

 

Für die eigentliche neuronale Arbeit wurde ein Multi-Layer-Perceptron verwendet.

Dem Nutzer steht es frei die Anzahl der Hiddenschichten und Neuronen in den Hiddenschichten zu wählen.

 

Die Eingangsschicht bietet dem Netz Gleitkommawerte an. Die Anzahl der Eingangsneuronen hängt dabei vom gewählten Algorithmus zur Linienerkennung ab.

Die einzelnen Hiddenschichten verwenden ein tanh-Funktion als Aktivierung.

 

Im aus zwei Neuronen bestehendem Ausgang werden ebenfalls Gleitkommazahlen erwartet, welche eine Fischart in eine zwei-dimensionale Ähnlichkeitsmatrix einordnen. Die Ausgangsneuronen besitzen somit eine lineare Aktivierungsfunktion.

 

Die Matrix der Artenanordnung wird in der Datei „Matrix.jpg“ sichtbar.

 

Aktivierung

 

Die Eingangsneuronen führen keine Verarbeitung durch und verteilen somit ihre Eingangswerte an die erste Hiddenschicht.

 

Aktivierungsfunktion der Hiddenschichten:      

 

 

 

 

 

 

 

 

Die Ausgangsneuronen liefern das Gleitkommaergebnisse mittels linearer Aktivierung ohne Schwellwert:

 

 

 

 

 

 

 


 Funktion über Netzeingabe:

 

 

 

 

 

 

 

 

 


Backpropagation

 

 

Der Lernvorgang wurde mittels Backpropagation-Verfahren umgesetzt. Durch rückwärtige Fehlerausbreitung werden die Wichten nach den ermittelten Fehlern neueingestellt. Die aktuelle Gewichtsänderung wurde weiterhin von vorangegangenen Lernverfahren abhängig gemacht. Durch das Aufaddieren der vorangegangenen Gewichtsänderung unter Einbezug eines Trägheitsfaktors, kann erreicht werden, dass die Wichten nicht bei jedem Lernschritt eine willkürliche Richtung einschlagen sondern aufgrund der erzielten Trägheit versuchen werden, die alte Lernrichtung nach Möglichkeit beizubehalten. Dies kann dazu dienen lokale Minima zu überwinden.

 

 

 

 

 

 

 


Ermittlung der Gewichtsänderung mittels rückwärtiger Fehlerausbreitung und Einbezug der alten Gewichtsänderung:

 

 

 

 

 

 

 


Ermittlung des Fehlers mittels rückwärtiger Fehlerausbreitung:

 

 

 

 

 

 

 

 

 


Ableitung im Ausgang:

 

 

 
 

 

 

 


Ableitung in den Hiddenschichten:

 

 

Textfeld:

 

 

 

 

 

 

Die hier implementierte Form der Ableitung lässt sich allerdings noch effizienter gestalten. Die Ermittlung des cosh erfolgt iterativ und geht somit auf Kosten der Performance. Eine bessere Variante wäre, die Aktivierungswerte der tanh-Funktion aufzunehmen und mittels dieses Wertes die Ableitung zu berechnen. Es entfällt dabei eine weitere Iteration zur Berechnung der 1.Ableitung.

 

 

Textfeld:

 

 

 

 

 

Lernvorgang

 

Der Ordner „Muster“ im Verzeichnis der Anwendung enthält zu jeder Fischart ein Beispiel.

Die einzelnen Muster können über den Menüpunkt BilderàLernmuster entfernt, hinzugefügt und unterschiedlich gewichtet werden.

Die Wichtung zeigt hier an, wie oft ein Muster pro Musterdurchgang dem Netz angeboten wird.

 

Beim Starten eines Lernzyklus wird die Musterliste zufällig abgearbeitet.

 

Nach jedem Musterdurchgang wird aus einem Angleichungssatz und den aktuellen Werten eine neue Lernrate als auch ein neuer Trägheitsfaktor ermittelt

Diese Werte kann man durch Betätigen des Schalters „Optionen“ in der Gruppenbox „Lernoptionen“ vorgeben.

 

<<     Main     >>