Einführung in die Mathematik neuronaler Netze
C-Implementierungen
zweischichtiger Feed-Forward-Netze
In dieser ersten HTML-Lehreinheit werden C-Implementierungen
für den linearen Assoziierer und das Perceptron vorgestellt. Die
Programme sind so angelegt, dass es ohne Probleme möglich sein sollte,
die zuvor im Buch diskutierten theoretischen Grundlagen der Netzwerksimulationen
auch ohne spezielle Kenntnisse der Programmiersprache C in den Programmen
wiederzufinden und zu verstehen. In Hinblick auf die praktische
Anwendung der Simulationen geht es dann um folgende Fragen:
Wie reagiert der lineare Assoziierer auf nicht-orthonormale Eingaben,
gibt es sinnvolle Abbruchkriterien für das Perceptron, kann man
mit fast nicht linear separierbaren Datensätzen praktisch arbeiten,
welche Konsequenzen haben statistische Ausreißer?
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 einen linearen Assoziierer prinzipiell implementieren kann,
- dass man von einem linearen Assoziierer im Fall nicht-orthonormaler
Eingabe-Assoziationen im allgemeinen keine brauchbaren Ergebnisse
erwarten kann.
- wie man ein Perceptron prinzipiell implementieren kann,
- dass sich ein Perceptron bis auf die Lernregel und die Transferfunktion
im grundsätzlichen Aufbau nicht vom linearen Assoziierer unterscheidet.
- dass ein Perceptron in der praktischen Anwendung sehr problematisch
ist, da man im allgemeinen den zu lernenden Assoziationen nicht ansieht,
ob sie streng linear separierbar sind oder nicht,
- dass ein Perceptron sehr sensibel auf statistische Ausrutscher reagiert,
insbesondere natürlich dann, wenn durch sie die strenge lineare
Separierbarkeit verletzt wird.
Burkhard Lenze
Im Februar 2009