Inhaltsverzeichnis
Ein kleiner Überblick über Neuronale Netze
Download des Manuskriptes - Zeta2-Version
Die Dateinamen können sich jederzeit ändern – bitte verlinkt nur auf diese Unterseite hier, nicht auf die Dateien an sich.
Originalversion? EBookReader-Version?
Die Originalversion ist zweispaltig im gewohnten Layout und Design. Die eBookReader-optimierte Version ist einspaltig. Zusätzlich wurden Kopfzeilen, Fußzeilen und Randbemerkungen entfernt.
Für den Druck und das Lesen am Rechner ist die eBookReader-Version aufgrund der deutlich erhöhten Seitenanzahl, des weniger schönen Layouts und des Fehlens der Komfortmerkmale eher unattraktiv. Auf eBookReadern wird die Lesbarkeit so allerdings ganz nachhaltig verbessert und das Blättern reduziert.
Die eBookReader-Version wird ab jetzt bei jedem Release aus den Originalinhalten mitgeneriert. Anders als für die Originalversion sieht mein Release-Workflow aber keine zusätzliche typographische und Designoptimierung für sie vor. Das ist nämlich der einzige Schritt, den ich nicht automatisieren kann und der, wenn man es ordentlich machen will, auch etwas Zeit kostet. Was die Ästhetik und Typographie angeht, erwartet bei der eBookReader-Version also keinen Support
Für Leser
Gebt Feedback!
Dieses Manuskript hat durch seine Leser schon sehr viel an Nutzen gewonnen, wie auch an den vielen Helfernamen im Vorwort ersichtlich ist. Wenn ihr mir Feedback zum Script gebt, seid sicher, dass ich mich freue, und es auf die eine oder andere Weise in die jeweils nächste Edition mit einfließt. Also: Wenn ihr irgendwelche Beschwerden, Fehlerberichtigungen, Vorschläge oder einfach Lob habt, nehmt sofort hier Kontakt auf.
Nutzungsbestimmungen
Von der Epsilon-Edition an ist das Manuskript unter Creative Commons Attribution-No Derivative Works 3.0 Unported License lizensiert, bis auf einige wenige Kleinteile, die liberaleren Lizenzen unterstehen (siehe Vorwort und Verweise im Text selbst). Natürlich berührt die Lizenz nicht den Source Code des Manuskripts, der (zunächst) nicht veröffentlicht wird.
Zielsetzung des Manuskripts
Ziel der Arbeit ist, dass jemand, der sich erst einmal in dem Fachgebiet umsehen oder eine Seminararbeit über ein bestimmtes Paradigma Neuronaler Netze schreiben will, sich nicht sofort ein Buch für 50 Euro kaufen muss. Trotzdem ist es wichtig festzustellen, dass das Script im Entstehen begriffen ist und auch noch einige Gliederungsprinzipien umgestellt werden.
Zitieren dieser Arbeit
Dass es keinen offiziellen Verleger gibt, muss bei einer Referenzierung im wissenschaftlichen Sinne natürlich beachtet werden. Damit International die gleiche Referenz kursiert, schlage ich vor, zunächst folgende Referenz zu verwenden:
David Kriesel, 2007, Ein kleiner Überblick über Neuronale Netze, erhältlich auf http://www.dkriesel.com
Diese betrifft die Deutsche Version. Auf der Englischen Version dieser Seite steht die entsprechende englische Referenz. Bitte referenziert immer unter angabe der URL, da sie bis jetzt das einzige wirkliche Identifikationsmittel des Manuskripts ist. Den Editionsnamen habe ich aus beiden Referenzen absichtlich weggelassen, da er sich hin und wieder ändert und Google Scholar und Citeseer damit Probleme haben. Hier noch ein BibTeX Entry:
@Book{ Kriesel2007NeuralNetworks, author = { David Kriesel }, title = { Ein kleiner \"{U}berblick \"{u}ber Neuronale Netze }, year = { 2007 }, url = { erh\"{a}ltlich auf http://www.dkriesel.com } }
Auch hier gibt es wieder die englische Version auf der englischen Übersetzung dieser Seite.
Roadmap
Damit das Manuskript eine „runde Sache“ wird, ist noch etwas zu tun. Prinzipiell wünsche ich mir, dem Manuskript noch folgendes hinzuzufügen (diese Roadmap wird nicht bei jedem Release aktualisiert, also können einige Punkte schon erledigt sein):
- Implementierungsfragen und SNIPE: Seit der Entstehung des Scriptes ist in Form von SNIPE ein hochleistungsfähiges Framework Neuronaler Netze entstanden. Dies soll auf eine Linie mit dem Script gebracht werden: Überall im Script sollen sich Anmerkungen finden wie „Dieses Feature ist so-und-so in SNIPE implementiert“. Hierzu soll sich auch noch ein ausführliches Kapitel gesellen, wie man Neuronale Netze effizient implementiert. So kann das Script die Referenzdokumentation von SNIPE werden, und SNIPE die Referenzimplementierung zum Script.
- Evolution Neuronaler Netze: Es soll (auch im Hinblick auf SNIPE) noch ein großes Kapitel geschrieben werden, wie man Neuronale Netze evolviert, also mit inklusive Topologie und Gewichtswerten einfach evolutionär wachsen lässt, was natürlich auch mit rekurrenten Netzen funktioniert. Dieses Kapitel ist fast fertig.
- Praxistipps: In Kapitel 4 und 5 fehlt mir noch eine ganze Reihe Praxistipps (z.B. wie man zu lernende Daten am besten aufbereitet, sowie weitere Praxistipps speziell zu MLPs mit zugehörigen Referenzen.
- Kleinere Sachen: Ein Kurzabschnitt über Resilient Propagation und einige Algorithmen mehr würden sich in Kapitel 5 gut machen. Das Kapitel über rekurrente Multilayerperceptronartige Netze soll sinnvoll vertieft und vergrößert werden. Prinzipiell nenne ich im Manuskript einige Sachverhalte, die noch referenziert werden müssen. Ein kleines Kapitel über Echo-State-Networks wäre nett.
Das wars im groben … es ist also noch ein bisschen zu tun, bis ich das Manuskript „fertig“ nenne. Allerdings nicht soviel, wie schon getan wurde. Definitiv aber wird das nicht in einem einzigen Release passieren.
Letzte Releases
Klicken Sie auf einen Nachrichtentitel, um mehr zu erfahren. Versionsinformationen von Delta-Version und früher finden sich direkt unter den Überschriften. Die Newsmeldungen zu alten Versionen habe ich mittlerweile entfernt.
Was sind Neuronale Netze und was steht im Script?
Neuronale Netze sind ein von der Natur inspirierter Mechanismus, der es Computern ermöglicht, ähnlich wie ein Gehirn zu lernen - der Computer kann so, wenn er die Lösung für ein Problem kennt, korrekte Lösungen für ähnliche Probleme finden und vieles mehr.
Das Script gliedert sich in verschiedene Teile, welche sich wiederum in Kapitel gliedern. Hier eine kurze Inhaltsangabe dieser Abschnitte:
Teil I: Von der Biologie zur Formalisierung - Motivation, Philosophie, Geschichte und Realisierung Neuronaler Modelle
Einleitung, Motivation und Geschichte
Wie kann man dem Computer etwas beibringen? Entweder, in dem man ein starres Progamm schreibt - oder, indem man ihm das Lernen ermöglicht. Lebende Wesen haben keinen Programmierer, der ihnen ein Programm für ihre Fähigkeiten schreibt, welches nur ausgeführt werden muss. Sie lernen - ohne Vorkenntnisse durch Eindrücke von außen - selber und kommen damit zu besseren Problemlösungen als jeder Computer. Kann man solches Verhalten auch bei Maschinen wie Computern erreichen? Können wir solche Kognition von der Biologie adaptieren? Geschichte, Entwicklung, Niedergang und Wiederauferstehung eines großen Ansatzes, Probleme zu lösen.
Biologische Neuronale Netze
Wie lösen Biologische Systeme Probleme? Wie funktioniert ein System von Neuronen? Wie kann man dessen Funktionalität erfassen? Wozu sind verschieden große Mengen von Neuronen imstande? Ein kleiner Überblick über die große Komplexität einfacher Bausteine Neuronaler Informationsverarbeitung - und deren Vereinfacherung, um sie technisch adaptieren zu können. Achtung: Dieses Kapitel ist in der Betaversion des Scriptes nicht enthalten.
Bausteine technischer Neuronaler Netze
Formale Definitionen und umgangssprachliche Erklärungen der Bestandteile, die die technischen Adaptionen der biologischen Neuronalen Netze ausmachen. Erste Beschreibungen, wie man diese Bestandteile zu einem Neuronalen Netz zusammensetzen kann.
Gedanken zum Training Neuronaler Netze
Ansätze und Gedanken, auf welche Arten Maschinen etwas beizubringen ist. Korrigiert man Neuronale Netze? Bestärkt man sie nur? Lässt man sie gar ganz alleine ohne Hilfe lernen? Gedanken darüber, was wir während des Lernvorganges überhaupt verändern möchten, wie wir es verändern, über Fehlermessung und wann wir mit den Lernen fertig sind.
Teil II: Überwacht lernende Netzparadigmen
Das Perceptron
Der Klassiker unter den Neuronalen Netzen. Wenn von einem Neuronalen Netz gesprochen wird, ist meistens ein Perceptron oder eine Variation davon gemeint. Perceptrons sind mehrschichtige Netze ohne Rückkopplung, mit festen Eingabe- und Ausgabeschichten. Beschreibung des Perceptrons, seiner Grenzen und seiner Erweiterungen, welche die Grenzen umgehen sollen. Herleitung von Verfahren, es lernen zu lassen, und Diskussion über deren Probleme.
Radiale Basisfunktionen
RBF-Netze nähern Funktionen an, indem sie Gaußglocken strecken, stauchen und anschließend räumlich versetzt aufsummieren. Beschreibung ihrer Funktion und ihres Lernvorganges, Gegenüberstellung mit Multilayerperceptrons.
Rückgekoppelte Multilayerperceptrons
Gedanken über Netze, welche eigene interne Zustände besitzen. Ansätze des Lernens mit derartigen Netzen, Skizzierung ihrer Dynamik.
Hopfieldnetze
In einen magnetischen Feld übt jedes Teilchen Kraft auf jedes andere Teilchen aus, so dass sich die Teilchen insgesamt so ausrichten, wie es am energetisch günstigsten für sie ist. Wir kopieren diesen Mechanismus der Natur, um verrauschte Eingaben zu ihren richtigen Vorbildern zu korrigieren.
Learning Vector Quantisation
Learning Vector Quantisation ist ein Lernverfahren mit dem Ziel, in vordefinierte Klassen unterteilte Trainingsmengen von Vektoren durch wenige Repräsentanten-Vektoren möglichst gut wiederzugeben. Ist dies geschafft, so ist eine einfache Zuordnung bis dato unbekannter Vektoren in eine dieser Klassen möglich.
Teil III: Unüberwacht lernende Netzparadigmen
Self Organizing Feature Maps
Ein Paradigma unüberwacht lernender Neuronaler Netze, welches einen Eingaberaum durch seine feste Topologie kartographiert und so selbstständig nach Ähnlichkeiten sucht. Funktion, Lernverfahren, Variationen und Neuronales Gas.
Adaptive Resonance Theory
Kurze Beschreibung eines Ansatzes Neuronaler Netze, der ermöglichen soll, zur Laufzeit Information hinzuzulernen.
TEIL IV: Exkurse, Anhänge und Register
Clusteranalyse und Regional and Online Learnable Fields
Das Grimmsche Wörterbuch beschreibt das heute ausgestorbene deutsche Wort „`Kluster“' mit „`was dicht und dick zusammensitzet“'. In der statistischen Clusteranalyse wird die Gruppenbildung innerhalb von Punktwolken untersucht. Vorstellung einiger Verfahren, Vergleich ihrer Vor- und Nachteile. Betrachtung eines lernenden Clusteringverfahrens auf Basis Neuronaler Netze. Ein Regional and Online Learnable Field modelliert aus einer Punktwolke mit womöglich sehr vielen Punkten eine vergleichsweise kleine Menge von für die Punktwolke repräsentativen Neuronen.
Neuronale Netze zur Vorhersage
Betrachtung einer Anwendung Neuronaler Netze: Ein Blick in die Zukunft von Zeitreihen.
Reinforcement Learning
Was, wenn keine Trainingsbeispiele existieren, man aber trotzdem beurteilen kann, wie gut man gelernt hat, ein Problem zu lösen? Betrachten wir ein Lernparadigma, welches zwischen überwachtem und unüberwachtem Lernen anzusiedeln ist.