Überblick Michael Hanke Sebastian Krüger Institut für Psychologie Martin-Luther-Universität Halle-Wittenberg Forschungskolloquium, SS 2004
Überblick Fragen 1 Was sind neuronale Netze? 2 Was ist TIKAPP?
Überblick Fragen 1 Was sind neuronale Netze? 2 Was ist TIKAPP?
Überblick Fragen 1 Was sind neuronale Netze? 1 Bestandteile neuronaler Netzwerke 2 Informationsverarbeitung in neuronalen Netzwerken 2 Was ist TIKAPP? 1 Aufbau des Simulators 2 Beispielsimulationen 3
Überblick Fragen 1 Was sind neuronale Netze? 1 Bestandteile neuronaler Netzwerke 2 Informationsverarbeitung in neuronalen Netzwerken 2 Was ist TIKAPP? 1 Aufbau des Simulators 2 Beispielsimulationen 3
Überblick Fragen 1 Was sind neuronale Netze? 1 Bestandteile neuronaler Netzwerke 2 Informationsverarbeitung in neuronalen Netzwerken 2 Was ist TIKAPP? 1 Aufbau des Simulators 2 Beispielsimulationen 3
Überblick Fragen 1 Was sind neuronale Netze? 1 Bestandteile neuronaler Netzwerke 2 Informationsverarbeitung in neuronalen Netzwerken 2 Was ist TIKAPP? 1 Aufbau des Simulators 2 Beispielsimulationen 3
Überblick Fragen 1 Was sind neuronale Netze? 1 Bestandteile neuronaler Netzwerke 2 Informationsverarbeitung in neuronalen Netzwerken 2 Was ist TIKAPP? 1 Aufbau des Simulators 2 Beispielsimulationen 3
Was sind neuronale Netze? Bestandteile neuronaler Netzwerke Informationsverarbeitung Neuronale Netze sind informationsverarbeitende Systeme, die aus einer großen Anzahl einfacher Einheiten bestehen, die sich Informationen in Form der Aktivierung der Zellen über gerichtete Verbindungen zusenden (Zell, 1994).
Ein Neuron Grundlagen neuronaler Netze Bestandteile neuronaler Netzwerke Informationsverarbeitung ca. 10 Mrd. Neuronen im menschlichen Hirn jedes Neuron bis zu 1000 Input- und Outputverbindungen
Ein künstliches Neuron Bestandteile neuronaler Netzwerke Informationsverarbeitung McCulloch & Pitts (1943) Neuron als logische Einheit Summation des Inputs Neuron feuert bei Überschreitung einer Schwelle Allgemeiner: Output = f output (f aktivierung ( inputs))
Ein künstliches Neuron Bestandteile neuronaler Netzwerke Informationsverarbeitung McCulloch & Pitts (1943) Neuron als logische Einheit Summation des Inputs Neuron feuert bei Überschreitung einer Schwelle Allgemeiner: Output = f output (f aktivierung ( inputs))
Ein künstliches Neuron Bestandteile neuronaler Netzwerke Informationsverarbeitung McCulloch & Pitts (1943) Neuron als logische Einheit Summation des Inputs Neuron feuert bei Überschreitung einer Schwelle Allgemeiner: Output = f output (f aktivierung ( inputs)) Input Aktivierung Output
Verbindungen und Gewichte Bestandteile neuronaler Netzwerke Informationsverarbeitung wij net i ai oi net j a j o j Weiterleitung der Aktivität über gewichtete Verbindungen Gewichtung des Inputs net j = o i w ij
Organisation in Schichten Bestandteile neuronaler Netzwerke Informationsverarbeitung Schichten (layer) Input, Hidden, Output Verschaltung feed forward, recurrent
Lernen Grundlagen neuronaler Netze Bestandteile neuronaler Netzwerke Informationsverarbeitung Donald O. Hebb (1949): Wenn Zelle j eine Eingabe von Zelle i erhält und beide gleichzeitig stark aktiviert sind, dann erhöhe das Gewicht w ij (die Stärke der Verbindung von i nach j). Lernarten Änderung der Verbindungsgewichte Hinzufügen oder Entfernen von Neuronen überwachtes vs. unüberwachtes Lernen
Lernen Grundlagen neuronaler Netze Bestandteile neuronaler Netzwerke Informationsverarbeitung Donald O. Hebb (1949): Wenn Zelle j eine Eingabe von Zelle i erhält und beide gleichzeitig stark aktiviert sind, dann erhöhe das Gewicht w ij (die Stärke der Verbindung von i nach j). Lernarten Änderung der Verbindungsgewichte Hinzufügen oder Entfernen von Neuronen überwachtes vs. unüberwachtes Lernen
Beispiele für neuronale Netzwerke Bestandteile neuronaler Netzwerke Informationsverarbeitung Interaktives Modell zur visuellen Worterkennung (McClelland & Rumelhart, 1981) SPINET (Cohen, Grossberg und Wyse, 1995) Selbstorganisation von Feature-Detektoren (Linsker, 1988)
Beispiele für neuronale Netzwerke Bestandteile neuronaler Netzwerke Informationsverarbeitung Interaktives Modell zur visuellen Worterkennung (McClelland & Rumelhart, 1981) SPINET (Cohen, Grossberg und Wyse, 1995) Selbstorganisation von Feature-Detektoren (Linsker, 1988)
Beispiele für neuronale Netzwerke Bestandteile neuronaler Netzwerke Informationsverarbeitung Interaktives Modell zur visuellen Worterkennung (McClelland & Rumelhart, 1981) SPINET (Cohen, Grossberg und Wyse, 1995) Selbstorganisation von Feature-Detektoren (Linsker, 1988)
Eigenschaften neuronaler Netzwerke Bestandteile neuronaler Netzwerke Informationsverarbeitung Positive Lernfähigkeit Parallelität Robustheit gegen verrauschte Daten Verteilte Wissenrepräsentation Assoziative Speicherung von Informationen Negative Wissenserwerb ist langsam Keine Introspektion möglich Sequentielles logisches Schließen ist schwer
Eigenschaften neuronaler Netzwerke Bestandteile neuronaler Netzwerke Informationsverarbeitung Positive Lernfähigkeit Parallelität Robustheit gegen verrauschte Daten Verteilte Wissenrepräsentation Assoziative Speicherung von Informationen Negative Wissenserwerb ist langsam Keine Introspektion möglich Sequentielles logisches Schließen ist schwer
Themen Grundlagen neuronaler Netze Was ist TIKAPP? Beispiele 1 Was sind neuronale Netze? 1 Bestandteile neuronaler Netzwerke 2 Informationsverarbeitung in neuronalen Netzwerken 2 Was ist TIKAPP? 1 Aufbau des Simulators 2 Beispielsimulationen 3
Was ist TIKAPP? Grundlagen neuronaler Netze Was ist TIKAPP? Beispiele TIKAPP ist ein Simulator für modulare neuronale Netze
Was ist TIKAPP? Grundlagen neuronaler Netze Was ist TIKAPP? Beispiele TIKAPP ist ein Simulator für modulare neuronale Netze
Was ist TIKAPP? Beispiele Warum selbst einen Simulator schreiben? Beispiele für existerende Simulatoren Stuttgart Neural Network Simulator (Zell et al.) PDP++ (O Reilly, Dawson and McClelland) GENESIS (Gemeinschaftsprojekt) Was ist bei TIKAPP anders? Gewöhnliches Benutzerinterface Modularität Flexibilität Dokumentation
Was ist TIKAPP? Beispiele Warum selbst einen Simulator schreiben? Beispiele für existerende Simulatoren Stuttgart Neural Network Simulator (Zell et al.) PDP++ (O Reilly, Dawson and McClelland) GENESIS (Gemeinschaftsprojekt) Was ist bei TIKAPP anders? Gewöhnliches Benutzerinterface Modularität Flexibilität Dokumentation
Programmstruktur Grundlagen neuronaler Netze Was ist TIKAPP? Beispiele 3D Viewer Graphical Interface Kernel I/O <xml type= vector > 0,1,0,1,0 1,0,1,0,1,0,1 1,0,1,0,0,0,1,0,0,3,0,3 0,3,0,0,1,0,1,0,0,1,0,1,0 2,9,9,2,1,0,0,0,1,0,0,1 </xml> Console Interface
Wie benutzt man TIKAPP? Was ist TIKAPP? Beispiele Beispiele Neuronale Encodierung einstelliger Zahlen Eindimensionale Repräsentation eines 2D-Raumes Ereignisbezogene Repräsentation eines Eingaberaumes
Encoder für einstellige Zahlen Was ist TIKAPP? Beispiele Idee: Repräsentation von Mustern durch unterschiedliche Kodierungen Netzwerk 1(+1) Layer feed forward, Lernen mit Backpropagation Input Ziffern von 0 bis 9 in Form von Bildern (7x10 Pixel) Output Repräsentation dieser Muster point-value thermometer
Backprop-Netzwerke Was ist TIKAPP? Beispiele gehört zu den überwachten Lernverfahren für jedes Trainingsmuster liegt ein Soll-Outputwert (Target) vor feed-forward Architektur Neuronenmodell Input Aktivierung Output Input: net j = (o i w ij ) Aktivierung: act j = 1 1+e net j Output: out j = act j
Der Backprop-Algorithmus Was ist TIKAPP? Beispiele Input Hidden Output Algorithmus 1 Vorwärts-Propagierung der Eingabemuster 2 Berechnung der Fehlerwerte 3 Rückwärts-Propagierung der Fehlerwerte 4 Gewichtsänderung
Der Backprop-Algorithmus Was ist TIKAPP? Beispiele Input Hidden Output O 1 H 1 I 1 I 2 Algorithmus 1 Vorwärts-Propagierung der Eingabemuster 2 Berechnung der Fehlerwerte 3 Rückwärts-Propagierung der Fehlerwerte 4 Gewichtsänderung
Der Backprop-Algorithmus Was ist TIKAPP? Beispiele Input Hidden Output ( O 1, T 1 ) H 1 I 1 I 2 Algorithmus 1 Vorwärts-Propagierung der Eingabemuster 2 Berechnung der Fehlerwerte 3 Rückwärts-Propagierung der Fehlerwerte 4 Gewichtsänderung
Der Backprop-Algorithmus Was ist TIKAPP? Beispiele Input Hidden Output ( O 1, T 1 ) H 1 I 1 I 2 Algorithmus 1 Vorwärts-Propagierung der Eingabemuster 2 Berechnung der Fehlerwerte 3 Rückwärts-Propagierung der Fehlerwerte 4 Gewichtsänderung
Der Backprop-Algorithmus Was ist TIKAPP? Beispiele Input Hidden Output ( O 1, T 1 ) H 1 I 1 I 2 Algorithmus 1 Vorwärts-Propagierung der Eingabemuster 2 Berechnung der Fehlerwerte 3 Rückwärts-Propagierung der Fehlerwerte 4 Gewichtsänderung Formel w jk = η o k (1 o k ) (t k o k ) o j
Live Demonstration Was ist TIKAPP? Beispiele
Dimensionsreduktion Was ist TIKAPP? Beispiele Idee: Repräsentation von zweidimensinalen Eingabemustern durch ein eindimensionales Neuronengitter Netzwerk 1(+1) Layer feed forward, Lernen mit Kohonen Algorithmus Input zufällige Koordinaten aus T-förmigen Fläche Output Repräsentation des Eingaberaumes
Was ist TIKAPP? Beispiele Selbstorganisierende Karten (SOM) Die Gewichtsvektoren der Neuronen werden im Raum der n-dimensionalen Eingabevektoren so verteilt, dass sie ihn möglichst gut abdecken. elastisches Gitter topologieerhaltende Abbildung
Kohonen-Algorithmus Was ist TIKAPP? Beispiele Input Kohonen Algorithmus 1 Differenz von Input- und Gewichtsvektor für jedes Neuron berechnen 2 Neuron mit minimaler Differenz bestimmen 3 Gewichtsänderung durch gewichtete Distanzfunktion
Kohonen-Algorithmus Was ist TIKAPP? Beispiele Input Kohonen W P 1 P 2 Algorithmus 1 Differenz von Input- und Gewichtsvektor für jedes Neuron berechnen 2 Neuron mit minimaler Differenz bestimmen 3 Gewichtsänderung durch gewichtete Distanzfunktion
Kohonen-Algorithmus Was ist TIKAPP? Beispiele P E = P - W W Input Kohonen W P 1 P 2 Algorithmus 1 Differenz von Input- und Gewichtsvektor für jedes Neuron berechnen 2 Neuron mit minimaler Differenz bestimmen 3 Gewichtsänderung durch gewichtete Distanzfunktion
Kohonen-Algorithmus Was ist TIKAPP? Beispiele Algorithmus Input Kohonen W P 1 P 2 C 1 Differenz von Input- und Gewichtsvektor für jedes Neuron berechnen 2 Neuron mit minimaler Differenz bestimmen 3 Gewichtsänderung durch gewichtete Distanzfunktion Formel c = arg min j ( P ) W j
Kohonen-Algorithmus Was ist TIKAPP? Beispiele Algorithmus Input Kohonen W P 1 P 2 C 1 Differenz von Input- und Gewichtsvektor für jedes Neuron berechnen 2 Neuron mit minimaler Differenz bestimmen 3 Gewichtsänderung durch gewichtete Distanzfunktion Formel W j = η h cj [ P Wj ]
Live Demonstration Was ist TIKAPP? Beispiele Kein 2. Beispiel
Was ist TIKAPP? Beispiele Ereignisbezogene Repräsentation eines Eingaberaumes Idee: Repräsentation von zweidimensinalen Eingabemustern durch ein 2D-Neuronengitter Netzwerk 1(+1) Layer feed forward, Lernen mit Kohonen Algorithmus Input zufällige Koordinaten aus quadratischer Fläche erhöhte Ereignisdichte im Zentrum Output Repräsentation des Eingaberaumes unter Abdeckung der gesamten Fläche Neuronen pro Fläche sind proportinal zur Ereignisdichte
Live Demonstration Was ist TIKAPP? Beispiele
Themen Grundlagen neuronaler Netze Technische Details & Lizenz Entwicklungsrichtung Mitmachen 1 Was sind neuronale Netze? 1 Bestandteile neuronaler Netzwerke 2 Informationsverarbeitung in neuronalen Netzwerken 2 Was ist TIKAPP? 1 Aufbau des Simulators 2 Beispielsimulationen 3
Was kostet TIKAPP? Technische Details & Lizenz Entwicklungsrichtung Mitmachen
Was kostet TIKAPP? Technische Details & Lizenz Entwicklungsrichtung Mitmachen TIKAPP ist Freie Software. Es steht komplett unter der GNU Public License (GPL). Daher kann der Quellcode (oder Teile davon) von jederman: eingesehen, verändert und für eigene Projekte verwendet werden, solange alle Änderungen bei einer eventuellen Veröffentlichung erneut unter die GPL gestellt und offen gelegt werden.
Hardware- & Softwareplattformen Technische Details & Lizenz Entwicklungsrichtung Mitmachen TIKAPP benutzt Qt als Toolkit und läuft daher prinzipiell auf allen Plattformen für die Qt verfügbar ist: Linux Windows (95/98, NT4, 2000 und XP) Mac OS X diverse Unix-Distributionen
Ziel Grundlagen neuronaler Netze Technische Details & Lizenz Entwicklungsrichtung Mitmachen Das Entwicklungsziel ist ein möglichst vielseitiger Simulator, der gleichzeitig einfach genug für die Lehre und komplex genug für die Forschung sein kann.
Entwickung Grundlagen neuronaler Netze Technische Details & Lizenz Entwicklungsrichtung Mitmachen Was gibt es? Simulatorkern Backprop-, Kohonen, Filter-Module CSV-, Bild- und Audio-Musterquellen 3D-Betrachter Was kommt noch? Modulebaukasten Linsker- und Recurrent-Backprop-Module verschiedene Analyse-Tools völlig unerwartete andere Dinge
Entwickung Grundlagen neuronaler Netze Technische Details & Lizenz Entwicklungsrichtung Mitmachen Was gibt es? Simulatorkern Backprop-, Kohonen, Filter-Module CSV-, Bild- und Audio-Musterquellen 3D-Betrachter Was kommt noch? Modulebaukasten Linsker- und Recurrent-Backprop-Module verschiedene Analyse-Tools völlig unerwartete andere Dinge
Entwickung Grundlagen neuronaler Netze Technische Details & Lizenz Entwicklungsrichtung Mitmachen Was gibt es? Simulatorkern Backprop-, Kohonen, Filter-Module CSV-, Bild- und Audio-Musterquellen 3D-Betrachter Was kommt noch? Modulebaukasten Linsker- und Recurrent-Backprop-Module verschiedene Analyse-Tools völlig unerwartete andere Dinge
Entwickung Grundlagen neuronaler Netze Technische Details & Lizenz Entwicklungsrichtung Mitmachen Was gibt es? Simulatorkern Backprop-, Kohonen, Filter-Module CSV-, Bild- und Audio-Musterquellen 3D-Betrachter Was kommt noch? Modulebaukasten Linsker- und Recurrent-Backprop-Module verschiedene Analyse-Tools völlig unerwartete andere Dinge
Entwickung Grundlagen neuronaler Netze Technische Details & Lizenz Entwicklungsrichtung Mitmachen Was gibt es? Simulatorkern Backprop-, Kohonen, Filter-Module CSV-, Bild- und Audio-Musterquellen 3D-Betrachter Was kommt noch? Modulebaukasten Linsker- und Recurrent-Backprop-Module verschiedene Analyse-Tools völlig unerwartete andere Dinge
Entwickung Grundlagen neuronaler Netze Technische Details & Lizenz Entwicklungsrichtung Mitmachen Was gibt es? Simulatorkern Backprop-, Kohonen, Filter-Module CSV-, Bild- und Audio-Musterquellen 3D-Betrachter Was kommt noch? Modulebaukasten Linsker- und Recurrent-Backprop-Module verschiedene Analyse-Tools völlig unerwartete andere Dinge
Wie kann man da mitmachen? Technische Details & Lizenz Entwicklungsrichtung Mitmachen Anwenden (Vorschläge machen, Fehler finden,...) Programmieren (Bug Fixing, Netzwerk-Modelle, IO-Filter,...) Dokumentieren (Manual, API) Übersetzen
Technische Details & Lizenz Entwicklungsrichtung Mitmachen Vielen Dank für Ihre Aufmerksamkeit. http://www.tikapp.org