zur Vorlesung Neuronale Netzwerke Programmierprojekt zur Vorlesung Neuronale Netzwerke
Soft Computing / Programmieren Übungen In den Übungen sollen eigenständige Systeme zur Erstellungs-, Trainings- und Arbeitsphase von neuronalen Netzwerken auf command line erstellt werden Dateiformat für Netze definieren Programm für die Arbeitsphase Programm für die Erstellungsphase mit einer visuellen Darstellungskomponente Programm für die Trainingsphase Visuelle Darstellungen von Datensätzen Fulda 2009 Soft Computing / Programmieren
Implementationsprinzipien Trennung der Aspekte: Datenhaltung numerische Eigenschaften der Objekte Unveränderliche Parameter Sich aktuell ändernde Variablen Funktionalität Methoden der Objekte Globale Methoden Darstellung Dateispeicherung graphische Oberfläche Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Netz-Dateien Es ist eine Entscheidung zu treffen, ob die Verbindungsgewichte als eine große Matrix oder als eine Folge kleinerer Matrizen (für Paare von Schichten oder Gruppen). Bei mehreren Matrizen müssen diese untereinander durch Kommentare getrennt werden, die auch die Information enthalten, zwischen welchen Gruppen bzw. Schichten diese Verbindungen verlaufen. Neuronen- Schichten- oder Gruppenzahl können entweder aus den Matrizen abgelesen oder in eigenen Daten- oder Kommentarzeilen abgelegt werden. Fulda 2009 Soft Computing / Programmieren
Aktivierungsfunktion alpha Zusammenrechnen der ankommenden Inputs x über die Synapsengewichte Skalarprodukt Summe der multiplizierten Inputs a = α(x) = ∑wi·xi . Quadratischer Abstand Abstand des Eingabevektors vom Gewichtsvektor a = α(x) = ∑(wi-xi)² Alternativen (dokumentieren Sie, auf welche Weise ein Benutzer eigene Aktivierungsfunktionen einbinden kann) Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Outputfunktion theta Funktionen zur Berechnung des Neuronen-Outputs aus der Neuronen-Aktivität a, dem Bias b (Schwellwert) und einer Steigung s. Identität θ(a) = a Sprungfunktion θ(a,b) = (a>b)?1:0 = (a-b > 0)?1:0 Sigmoidfunktion θ(a,b,s) = (1+exp(s·(a – b)))-1 Radiale Basisfunktion θ(a,b,s) = exp(s·(a – b)²) Alternativen (dokumentieren Sie, auf welche Weise ein Benutzer eigene Outputfunktionen einbinden kann) Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Initialisierung Bei der Definition, vor dem ersten oder erneuten Gebrauch der Verbindungen müssen deren Gewichte festgelegt werden Rücksetzen auf 0 Zufällig aus dem Intervall [0,N] Aus einer Netz-Datei mit passenden Parametern Aktuelles Gewicht + Zufallszahl aus [0,ε] Fulda 2009 Soft Computing / Programmieren
Propagierung/Arbeitsphase Ein neuronales Netz nimmt einen Eingabevektor x fester Länge n (Anzahl der Eingabeparameter) entgegen, propagiert diese durch das Netz und produziert damit eine Ausgabe. Die Propagierungsfunktion beschreibt, in welcher Reihenfolge die einzelnen Neuronen ihren lokalen Input zum lokalen Output umrechnen. Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Aufbau von Netzwerken Elementare Bausteine: Neuronen, Verbindungen Zusammengesetzte Bausteine Neuronengruppen, Schichten Verbindungsgruppen Netzwerk Sammlung von Neuronengruppen und Verbindungsgruppen Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Neuronen Name / lfd. Nummer Art ( input, output, hidden, const) Aktivierungsfunktion Outputfunktion Parameter Aktivierung a (float oder double) Bias b (float oder double) Steigung s (float oder double) Fehler e (float oder double) Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Verbindung (Synapse) Start (Neuron) Ziel (Neuron) Gewicht (float oder double) Plastizität (Lernparameter : float oder double) Initialisierung des Gewichts 0 benutzerdefiniert α benutzerdefiniert α·Zufallszahl Aktuell + α·Zufallszahl Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Neuronengruppen Name / lfd. Nummer Liste von Neuronen Neuronenzahl Default Art Default Aktivierungsfunktion Default Outputfunktion Verbindungstyp (keine, zyklisch, alle) Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Verbindungsgruppen Startgruppe (Neuronengruppe) Zielgruppe (Neuronengruppe) Liste von Verbindungen von Neuronen der Startgruppe zu Neuronen der Zielgruppe Verbindungstyp (keine, 1-zu-1, alle) Gewichtsmatrix Initialisierung der Gewichte Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Schichten (Layer) Name / lfd. Nummer Liste von Neuronengruppen / Neuronen Funktion : Schichteneinteilung Eine automatische Sortierung aller Neuronengruppen in Schichten kann eingesetzt werden, dabei werden ggf. die Gruppen umnumeriert. Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Ablage [groups] Liste der Gruppengrößen [in] Nr. der Input-Gruppen [out] Nr. der Output-Gruppe für jede Verbindungsgruppe eine Zeile und Matrix mit Ueberschrift [connection] Start, Ziel, Art, alpha, theta Matrix [neurons] für jedes Neuron eine Zeile lfd.Nr, Gruppe, activity, bias, steigung, output Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Trainingseinheit Es sollen die Fehlerorientierten Trainingsverfahren Backpropagation Backpropagation mit Erweiterungen und die selbstorganisierten Trainingsverfahren JVQ SOM realisiert werden Fulda 2009 Soft Computing / Programmieren
Soft Computing / Programmieren Darstellungen Fehlerdarstellung in der Arbeitsphase sollte es einen Protokollmodus geben in der Input, output und ggf. Fehlerinformation gesammelt wird. In der Trainingsphase sollten Daten zur Fehler- entwicklung gespeichert und dann dargestellt werden können Zusammenhangsdarstellung Es soll der Zusammenhang zwischen vom Nutzer eingegebenen Parametern dargestellt werden können. Fulda 2009 Soft Computing / Programmieren