Einführung in die Mathematik neuronaler Netze
C-Implementierungen
dreischichtiger Feed-Forward-Netze
In dieser HTML-Lehreinheit werden dreischichtige Backpropagation-Netze und
Sigma-Pi-Netze implementiert und getestet.
Fragen, die es in diesem Zusammenhang zu stellen gilt, lauten: Wann
bricht man Backpropagation-Lernen ab, wie gut sind die erhaltenen
Resultate, welche Parameter kann man variieren, welche Vor- und
Nachteile haben Sigma-Pi-Netze?
Bitte beachten Sie:
Alle Kapitel- und Abschnittangaben in den
HTML-Lehreinheiten beziehen sich auf das Buch
"Einführung in die Mathematik neuronaler Netze"
von Burkhard Lenze, Logos Verlag, Berlin, 2009.
Dieses Buch sollten Sie zur Bearbeitung der
HTML-Lehreinheiten zuvor gelesen und bereitliegen haben!
Grundsätzlicher Hinweis zur Arbeit mit den HTML-Lehreinheiten:
- Öffnen Sie auf Ihrem Rechner zwei Fenster, und legen Sie sich das
obige Lehrbuch griffbereit.
- Greifen Sie im ersten Fenster (HTML-Fenster) mit einem Browser auf das
zu bearbeitende C-Programm zu (siehe Inhaltsverzeichnis unten), und lassen
Sie sich die zugehörige Aufgabe und das Listing des Programms ausdrucken.
- Schauen Sie sich das ausgedruckte Listing des C-Programms an und -- zum
besseren Verständnis -- parallel dazu im HTML-Fenster das
zugehörige Flussdiagramm mit seinen Erläuterungen.
- Starten Sie nun, nachdem Ihnen die Struktur des Programms vertraut ist,
im zweiten Fenster (C-Fenster) das kompilierte C-Programm, und bearbeiten
Sie die Ihnen ausgedruckt vorliegende Aufgabenstellung.
- Wechseln Sie, wann immer Sie Schwierigkeiten mit der eigenen Lösung
haben, vom C-Fenster in das HTML-Fenster, und schlagen Sie dort in der
protokollierten Lösung nach.
- Lesen Sie nach der Lösung der konkreten Anwendungsaufgabe im
HTML-Fenster die jeweilige Zusammenfassung, in der noch einmal das
Wesentliche des bearbeiteten C-Programms auf den Punkt gebracht wird.
Das Ziel des obigen Vorgehens sollte sein, dass Sie nach Abschluss des
HTML-basierten Trainings so gut mit den Netzsimulationen vertraut sind,
dass Sie auch eigene Anwendungen ausprobieren und die C-Programme
weiterentwickeln können. Um sich im Rückblick jeweils zu
vergewissern, ob dieses Ziel auch erreicht wurde, bietet es sich an, nach
Abschluss der Arbeit mit einem Netztyp anhand der unten angegebenen
Lehrziele das eigene Wissen nochmals kritisch zu hinterfragen.
Inhaltsverzeichnis
Lehrziele
Sie sollten nach Studium dieser HTML-Lehreinheit wissen,
- wie man ein dreischichtiges Feed-Forward-Netz mit
Backpropagation-Lernregel (kurz: Backpropagation-Netz)
prinzipiell implementieren kann,
- dass man ein Backpropagation-Netz nur mit stetig differenzierbaren
Transferfunktionen arbeiten lassen kann und dass man neben
den Startgewichten und -schwellwerten auch noch die sogenannte
Lernrate lambda und den Stauchungsparameter beta frei
wählen kann.
- dass das Training eines Backpropagation-Netzes alles andere als
einfach ist und die richtige Wahl der Anzahl der verborgenen Neuronen,
der Lernrate, des Stauchungsparameters und gegebenenfalls der
Startgewichte und -schwellwerte sehr viel Erfahrung und Intuition verlangt,
- dass die "guten" Backpropagation-Netze die Fähigkeit des
Generalisierens
besitzen und diese Eigenschaft wesentlichen Anteil am Erfolg formaler
neuronaler Netze hat.
- wie man ein hyperbolisches Sigma-Pi-Netz prinzipiell implementieren kann,
- dass das speziell implementierte hyperbolische
Sigma-Pi-Interpolationsnetz
die Vorteile hat, stets perfekt auf den Trainingsdaten zu arbeiten,
keine voreinzustellenden Parameter benötigt, in "Echtzeit"
(besser: nichtrekursiv) lernt und
ausführt sowie überzeugend generalisiert,
allerdings die Nachteile in Kauf genommen werden müssen, dass
regulär verteilte Trainingsdaten sowie eine große
Anzahl verborgener Neuronen vorhanden sein müssen.
Burkhard Lenze
Im Februar 2009