Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmierprojekt zur Vorlesung Neuronale Netzwerke.

Ähnliche Präsentationen


Präsentation zum Thema: "Programmierprojekt zur Vorlesung Neuronale Netzwerke."—  Präsentation transkript:

1 Programmierprojekt zur Vorlesung Neuronale Netzwerke

2 Fulda 2009Soft Computing / Programmieren Übungen In den Übungen sollen eigenständige Systeme zur Erstellungs-, Trainings- und Arbeitsphase von neuronalen Netzwerken auf command line erstellt werden 1.Dateiformat für Netze definieren 2.Programm für die Arbeitsphase 3.Programm für die Erstellungsphase mit einer visuellen Darstellungskomponente 4.Programm für die Trainingsphase 5.Visuelle Darstellungen von Datensätzen

3 Fulda 2009Soft 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

4 Fulda 2009Soft 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.

5 Fulda 2009Soft Computing / Programmieren Aktivierungsfunktion alpha Zusammenrechnen der ankommenden Inputs x über die Synapsengewichte –Skalarprodukt Summe der multiplizierten Inputs a = α(x) = w i ·x i. –Quadratischer Abstand Abstand des Eingabevektors vom Gewichtsvektor a = α(x) = (w i -x i )² –Alternativen (dokumentieren Sie, auf welche Weise ein Benutzer eigene Aktivierungsfunktionen einbinden kann)

6 Fulda 2009Soft 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)

7 Fulda 2009Soft 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,ε]

8 Fulda 2009Soft 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.

9 Fulda 2009Soft Computing / Programmieren Aufbau von Netzwerken Elementare Bausteine: Neuronen, Verbindungen Zusammengesetzte Bausteine Neuronengruppen, Schichten Verbindungsgruppen Netzwerk Sammlung von Neuronengruppen und Verbindungsgruppen

10 Fulda 2009Soft 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)

11 Fulda 2009Soft 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

12 Fulda 2009Soft Computing / Programmieren Neuronengruppen Name / lfd. Nummer Liste von Neuronen Neuronenzahl Default Art Default Aktivierungsfunktion Default Outputfunktion Verbindungstyp (keine, zyklisch, alle)

13 Fulda 2009Soft 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

14 Fulda 2009Soft 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.

15 Fulda 2009Soft 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

16 Fulda 2009Soft Computing / Programmieren Trainingseinheit Es sollen die Fehlerorientierten Trainingsverfahren –Backpropagation –Backpropagation mit Erweiterungen und die selbstorganisierten Trainingsverfahren –JVQ –SOM realisiert werden

17 Fulda 2009Soft 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.


Herunterladen ppt "Programmierprojekt zur Vorlesung Neuronale Netzwerke."

Ähnliche Präsentationen


Google-Anzeigen