Ein kleiner Überblick über Neuronale Netze

Hier gibt es mein Manuskript „Ein kleiner Überblick über Neuronale Netze“ auf Deutsch und Englisch. Wer mir dafür einen halben Kaffee oder so ausgeben will, klicke rechts auf den Flattr-Button :-)

Als erstes stehen die Downloadlinks, um es euch Benutzern nicht unnötig schwer zu machen. Anschließend folgen weitere Informationen zu Versionen, Nutzung, dieser Seite, der Entstehung und dem Inhalt des Scriptes.

Download

Skriptum „Ein kleiner Überblick über Neuronale Netze“. Folgende Versionen stehen zur Auswahl:
  • Deutsche Version, 6.4MB, 256 Seiten
  • Englische Version, 6.3MB, 244 Seiten
  • SNIPE ist die Referenzimplementierung für Neuronale Netze zu diesem Manuskript (JAVA) und könnte auch von Interesse sein.

Manuskripte sind jeweils Zeta-Version, PDF

Bei manchen Browsern kann es passieren, dass Downloads nicht geladen werden. In diesem Fall auf den Link rechtsklicken und „speichern unter“ auswählen!

Bitte verlinkt nur auf diese Unterseite hier, nicht auf die Dateien an sich. Erstens macht es Sinn, diese Zusammenfassungsseite zu sehen, bevor man direkt die Datei lädt, und zum zweiten kann sich der Dateiname gerade in der Entwicklungszeit jederzeit ändern!

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, her damit – entweder per Mail an mich, oder in den neuen Diskussionsteil am Fuß dieser Seite.

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.

Über diese Seite und die Entstehung der Arbeit

Diese Seite widmet sich meiner Arbeit „Ein kleiner Überblick über Neuronale Netze“, welche einmal eine erweiterte Seminararbeit von knapp vierzig Seiten war und dann erstaunliche Downloadzahlen erreicht hat.

Inspiriert von der großen Resonanz in Mail und Wort, und in Kenntnis der Tatsache, dass es leider wenig kostenlose deutsche Literatur zu Neuronalen Netzen gibt, habe ich mich entschlossen, dieses kleine Skriptum komplett neu aufzusetzen und zu illustrieren - mit dem Ziel, einen einfachen, anschaulichen, fundierten und trotzdem unterhaltsamen Einstieg in die gängigen Arten Neuronaler Netze zu bieten.

Das ursprüngliche 40-Seiten-Skriptum wurde ganz wesentlich erweitert: Vorhandenen Kapiteln wurden Herleitungen angefügt, Neue Kapitel wurden geschrieben, 17 Korrekturleser (Vorkorrektur) und eine zweite Hauptkorrekturrunde halfen mir, Fehler auszumerzen. Trotzdem ist es wichtig festzustellen, dass das Script im Entstehen begriffen ist und auch noch einige Gliederungsprinzipien umgestellt werden.

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. Natürlich habe ich auch weiterhin versucht, meinen „Hypertext auf Papier“ mit Randbemerkungen und anderen Features fortzusetzen.

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, Zeta-Version },
       year =   { 2007 }, 
       note =   { erh\"{a}ltlich auf http://www.dkriesel.com } 
     }

Auch hier gibt es wieder die englische Version auf der englischen Übersetzung dieser Seite.

Was kommt als nächstes?

Damit das Manuskript eine „runde Sache“ wird, ist noch etwas zu tun. Prinzipiell wünsche ich mir, dem Manuskript noch folgendes hinzuzufügen:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Neuigkeiten

Mit Beginn der Epsilonversion wurden die Versionsinformationen durch News-Artikel veröffentlicht, deren Überschriften automatisch unter diesem Absatz eingefügt werden. Klicken Sie auf einen Nachrichtentitel, um mehr zu erfahren. Versionsinformationen von Delta-Version und früher finden sich direkt unter den Überschriften.

2011-10-21: Neues Release "Ein kleiner Überblick über Neuronale Netze": Zeta-Version

2010-11-20: "Ein kleiner Überblick über Neuronale Netze": Englische Version wird gründlich überarbeitet!

2010-10-13: "Ein kleiner Überblick über Neuronale Netze" in der Epsilon2-Version erschienen

2009-10-11: "Ein kleiner Überblick über Neuronale Netze" in der Epsilonversion erschienen

2009-05-27: "Ein kleiner Überblick über Neuronale Netze" nun bilingual

Neues in der Delta-Version

  • Viele Anmerkungen von Lesern befolgt, die viele winzige Inkonsistenzen und Fehlerchen berichtigt haben.
  • Layout verbessert, Kleinigkeiten an Abbildungen geändert.
  • Kleinere Änderungen an der Gesamtgliederung
  • Übersetzung ins Englische fertiggestellt (Herzlichen Dank hierfür an Beate Kuhl!!)

Neues in der Gamma-Version

  • Hauptkorrektur. Jede Menge Rechtschreibfehler und Satzbaufehler bereinigt.
  • Übersetzung ins Englische: Im Moment bei ca. 50%, dauert etwas länger als gedacht. Aber in Arbeit :-)
  • In der Gamma2-Version sind ein paar Formulierungen überarbeitet / erweitert, die beim Übersetzen aufgefallen sind.

Neues in der Beta-Version

  • Vorkorrektur. Viele kleine Sachfehlerchen bereinigt (z.B. fehlende Indizes) und Abschnitte erweitert. Ein gutes Beispiel hierfür ist die Backpropagationherleitung.
  • Neues Kapitel über ART-Netze.
  • Gliederung überarbeitet: ART-Netze und Reinforcement Learning haben nun einen eigenen Part.
  • Literaturstellen eingearbeitet.
  • Rechtschreibfehler und Ausdrucksschwächen und restliche Kapitel kommen in der nächsten Version hinzu.

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.

~~DISCUSSION~~

Linkbacks

Artificial Life · D. Kriesel , 2011/05/20 19:09 (Pingback)
[...] Neuronale Netze [...]
 
[...] Neuronale Netze [...]
 
[...] Download wie immer hier. [...]
 
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf del.icio.us
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Digg
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Furl
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Reddit
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Ask
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Google
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Netscape
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf StumbleUpon
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Technorati
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Live Bookmarks
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Yahoo! Myweb
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Newsvine
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Yahoo! Bookmarks
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Twitter
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf myAOL
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Slashdot
  • Bookmark "Ein kleiner Überblick über Neuronale Netze" auf Mister Wong
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki