Neuronale Netze Von Deasy Sukarya & Tania Bellini Universität zu Köln Seminar: Künstliche Intelligenz II Dozent: Claes Neuefeind SS 2012 Einführung 2 Symbolische vs. Sub-symbolische KI Symbolische KI: Fokussierung auf Logik und Wissensdatenbanken Sub-symbolische KI: Fokussierung auf unbewusstes Verhalten und das Lernen Modellierung durch Neuronale Netze Gliederung 3 Exkurs: Das Biologische Vorbild Computer vs. menschliches Gehirn Geschichte Das Künstliche Neuronale Netz Eigenschaften Grundlagen Lernregeln Netztypen Für welche Probleme ist das neuronale Netz nicht geeignet ? Anwendungsbereich: Autismus (Kohonen-Netz) Praxis: Hopfield-Netz – Programmierung in Java Heute – Human-Brain-Project Exkurs: Das Biologische Vorbild 4 http://www.youtube.com/watch?v=FR4S1BqdFG4&feature =related Exkurs: Das Biologische Vorbild 5 Konnektionismus (neuronale Netze) Aufbau einer Nervenzelle Gehirn (Zentralnervensystem, Gehirnlappen, Felder, Sprachzentren und sprachrelevante Hirnregionen) Gedächtnis Exkurs: Das Biologische Vorbild 6 Exkurs: Das Biologische Vorbild 7 Exkurs: Das Biologische Vorbild 8 Exkurs: Das Biologische Vorbild 9 Exkurs: Das Biologische Vorbild 10 Exkurs: Das Biologische Vorbild 11 Computer vs. menschliches Gehirn 12 Computermetapher Menschlicher Geist Gehirn Software vs. Hardware Funktionalistischer Ansatz Computer vs. menschliches Gehirn 13 Geschichte 14 1943: McCulloch und Walter Pitts neuronale Netzwerke 1949: Donald O. Hebb Hebb´sche Regel 1951: Marvin Minsky Neurocomputer 1969: Marvin Minsky und Seymour Papert Perzeptron 1972: Teuvo Kohonen Assoziativspeicher 1973: Christoph von der Malsburg nichtlineares Neuronenmodell 1974: Paul Werbos Backpropagation- Verfahren 1982: John Hopfield Hopfield- Netze Geschichte 15 1943: McCulloch und Walter Pitts neuronale Netzwerke Geschichte 16 1949: Donald O. Hebb Hebb´sche Regel Geschichte 17 1951: Marvin Minsky Neurocomputer Geschichte 18 1951: Marvin Minsky Neurocomputer Geschichte 19 1969: Marvin Minsky und Seymour Papert Perzeptron Geschichte 20 1972: Teuvo Kohonen Assoziativspeicher Geschichte 21 1973: Christoph von der Malsburg nichtlineares Neuronenmodell Geschichte 22 1974: Paul Werbos Backpropagation- Verfahren Geschichte 23 1982: John Hopfield Hopfield- Netze Eigenschaften neuronaler Netze 24 Parallelverarbeitung Lernfähigkeit Generalisierung Fehlertoleranz Das künstliche neuronale Netz Grundlagen 25 Bestandteile des neuronalen Netzes Units (Oder: Knoten / Neuronen / Einheiten) Verbindungen zw. Units - Kanten /Links Arten von Units Input-Units: Erhalten Infos in Form von Zahlen von der Außenwelt Hidden-Units: Befinden sich zw. Input und Output Schicht Output-Units: Signale werden hier an die Außenwelt weitergeleitet Das künstliche neuronale Netz Grundlagen 26 Das künstliche neuronale Netz Grundlagen 27 Kanten Stärke der Verbindung zw. 2 Neuronen Gewicht Wichtig: Je größer der Absolutbetrag des Gewichts umso größer ist der Einfluss einer Unit auf die andere Gewichtsarten Positives Gewicht: Eine Unit übt auf eine andere Unit einen erregenden Einfluss aus Negatives Gewicht: Beeinflussung ist hemmend Gewicht von null: Kein Einfluss Das künstliche neuronale Netz Grundlagen – Funktionsweise der Units 28 Input Input Input N e t z i n p u t A k t i v i t ä t s l e v e l O u t p u t Das künstliche neuronale Netz Grundlagen – Funktionsweise der Units 29 1. Berechnung der Inputwerte inputij = aj wij Inputwert wird berechnet aus dem Outputwert der sendenden Unit mal dem Gewicht zw. beiden Units 2. Bildung eines Netzinputs Summe aller oben berechneten Inputwerte Das künstliche neuronale Netz Grundlagen – Funktionsweise der Units 30 3. Zuordnung des Netzinputs zu einem Aktivitätslevel Lineare Aktivierungsfunktion: Netzinput = Aktivitätslevel Binäre Schwellenwertfunktion: Falls Netzinput > 0, dann 1 ansonsten 0 Fermi-Funktion (logistische Funktion): Wertebereich von 0 bis +1 begrenzt Tangens hyperbolicus: Wertebereich zw. -1 und +1 Lineare Aktivierungsfunktion Schwellenwertfunktion Fermi-Funktion Tangens hyperbolicus 31 Das künstliche neuronale Netz Grundlagen – Funktionsweise der Units 32 4. Erzeugung eines Outputs Aus Aktivitätslevel wird mit der Outputfunktion die Ausgabe berechnet Meistens Identitätsfunktion Aktivitätslevel = Output Für binäre Ausgabe: Schwellenwertfunktion Das künstliche neuronale Netz Grundlagen – Trainingsphase 33 Supervised learning: Korrekter Output zu Input wird vorgegeben Reinforcement learning: Angabe, ob die Ausgabe richtig oder falsch war Unsupervised learning: Kein Output vorgegeben, das Netz orientiert sich an der Ähnlichkeit der eingegebenen inputwerte und modifiziert die Gewichte von selbst Das künstliche neuronale Netz Grundlagen – Testphase 34 Überprüft, ob das Netz was gelernt hat Dazu werden neue Inputs präsentiert, um anschließend zu schauen, welchen Output das netz berechnet hat Das künstliche neuronale Netz Lernregeln 35 Hebb- Regel Veränderung des Gewichts zwischen zwei Einheiten, wenn beide Units gleichzeitig aktiv sind. Delta- Regel Vergleich zwischen dem gewünschten und dem tatsächlichen Output. Backpropagation Modifizierung der Gewichte zu den Hidden- Units. Competitive Learning unsupervised Das künstliche neuronale Netz Lernregeln - Zusammenfassung Hebb-Regel Kernkonzept Art der Lernregel Biologische Plausibilität? Netztypen, die auf diese Lernregel zurückgreifen (u.a.) Vorteile Nachteile Delta-Regel Backpropagation Competitive Learning Gleichzeitige Aktivierung Vergleich: gewünscht vs. Backward-pass beobachtet; "The winner takes it all." Als supervised, unsupervised und reinforcement learning möglich Supervised learning Supervised learning Unsupervised learning Teilweise Eher nicht Eher nicht Teilweise Kompetitive Netze; Pattern Associator; Auto Pattern Associator; Auto Simple Recurrent konzeptuell auch in Associator Associator Networks, Jordan Netze Kohonennetzen Auch bei Netzen mit Hidden-Units einsetzbar; Einfachheit, biologische Einfachheit, relativ leicht Unsupervised learning; größere Mächtigkeit im Plausibilität zu implementieren biologische Plausibilität Ver-gleich zur DeltaRegel In der "klassischen" Form: Überlaufen der Werte der Gewichte und geringe Mächtigkeit des Systems Nicht bei Netzen mit Hidden-Units einsetzbar; Fragwürdige biologische fragwürdige bio-logische Plausibilität; lokale Plausibilität; geringe Minima Mächtigkeit des Systems 36 Tabelle von Rey, Günter: Neuronale Netze (2008) Einzelne Output-Unit kann alle Inputmuster "an sich reißen" --> keine Kategorisierung mehr Das künstliche neuronale Netz Netztypen – FeedForward-Netze 37 Vorwärtsgerichtete Verbindungen zu anderen Schichten z.B. Kohonennetze, Patternassociator Das künstliche neuronale Netz Netztypen - FeedBack-Netze 38 Direkte Rückkopplungen Indirekte Rückkopplungen Seitliche Rückkopplungen Das künstliche neuronale Netz Netztypen – Pattern Associator 39 Erkennt Muster z.B Gesichter Lernt Assoziationen zw. verschiedenen Reizpaaren zu bilden Keine Hidden-Units Trainingsphase mit der HebbRegel oder Delta-Regel Art der Lernregel: Supervised learning Das künstliche neuronale Netz Netztypen – Simple Recurrent Networks 40 Kontext-Einheiten fungieren als Zwischenspeicher Enthalten indirekt Teilinfos aus den vorangegangenen Zeitpunkten Anwendungsbereich: Prognosen, Simulation des menschl. Verhalten o. ä. Trainingsphase: Backpropagation-Algorithmus Art der Lernregel: Supervised learning Das künstliche neuronale Netz Netztypen – Kompetitive Netze 41 Trainingsphase in 3 Schritten 1. Erregung 2. Wettbewerb 3. Gewichtsmodifikation Anwendungen: u.a. Musterklassifikation Trainingsphase: Competitive learning Art der Lernregel: Unsupervised learning Das künstliche neuronale Netz Netztypen - Zusammenfassung Pattern Associator Rekurrente Netze Kompetitive Netze Kernkonzept Assoziationen zwischen verschiedenen Reizpaaren bilden Rückkopplungen zu derselben oder einer vorherigen Schicht 1. Erregung 2. Wettbewerb 3. Gewichtsmodifikation Lernregel Hebb-Regel; Delta-Regel Backpropagation Competitive Learning Rückkopplungen? Nein Ja Nein Hidden-Units? Nein Können vorhanden sein Können vorhanden sein Art der Lernregel? Supervised learning Supervised learning Unsupervised learning Vorteile Einfachheit Entdeckung zeitlich codierter Informationen Biologische Plausibilität Nachteile Keine Hidden-Units --> biologisch eher unplausibel "Überlaufen" der Aktivität "Erstarken" einzelner Output-Units verhindert "sinnvolle" Kategorisierung 42 Tabelle von Rey, Günter: Neuronale Netze (2008) Für welche Probleme sind neuronale Netze nicht geeignet? 43 Keine Änderung der Programmlogik Probleme, die den genauen Lösungsweg zeigen sollen Probleme, die man als Flussdiagramm darstellen kann Neuronale Netze sind sehr langsame Lerner! Anwendungsbereich Autismus 44 Film „Rain Man“ Autist Symptome von Autismus Einsamkeit, Kommunikationsdefizite, rituelle Handlungen Kohonennetze „unsupervised learning“ Netzaufbau Gustafsson und Paplinski(2004) Fazit Guter Ansatz der Simulation mit Hilfe neuronaler Netze für die Erforschung autistischer Symptome? Anwendungsbereich Autismus - Kohonennetz 45 Praxis: Hopfield-Netz – Programmierung in Java 46 Klasse: Feedback-Netz Mit allen Neuronen verbunden, außer mit sich selbst Lernregel: Hebb-Regel Anwendungen: Mustererkennung & Wiedergabe Praxis: Hopfield-Netz – Programmierung in Java Ausgangslage 47 4 Neuronen Geringfügige Änderungen am trainierten Muster müssen trotzdem das trainierte Muster wiedergeben Für Java-Programm: Muster aus boolean-Werten Input und Output: boolean Praxis: Hopfield-Netz – Programmierung in Java Klassen 48 HopfieldNetwork In der Klasse werden die Hauptaufgaben durchgeführt, d. h . das Präsentieren und Trainieren der Werte ConsoleHopfield Diese Klasse ist die konkrete Anwendung (Konsolenanwendung) des Netzwerks und benutzt die Methoden der Klasse HopfieldNetwork Matrix Die Klasse konstruiert die Gewichtsmatrix . MatrixMath Mit der MatrixMath Klasse können mathematische Operationen durchgeführt werden mit 2 oder mehr Matrizen Wandelt die boolean-Werte für die Berechnung in bipolare Werte um d. h. true = 1 und false = -1 BiPolarUtil Praxis: Hopfield-Netz – Programmierung in Java Quellcode 49 http://www.heatonresearch.com/dload/IntroNeuralJava ExampesEdition2.zip In beliebige Java IDE (z.B. Eclipse oder NetBeans) importieren Packages: […].ch3.console […].neural.hopfield […].neural.matrix Heute Human-Brain-Projekt 50 Arbeit an künstliche Version des Gehirns Modellierung des Gehirns Blue- Brain- Project: Modellierung eines Rattenhirns Heute Human-Brain-Projekt 51 www.spiegel.de/wissenschaft/mensch/ Heute Human-Brain-Projekt 52 Heute Human-Brain-Projekt 53 Heute Human-Brain-Projekt 54 Heute Human-Brain-Projekt 55 Quellen 56 Jeff Heaton: An Introduction to Neural Networks with Java. 2nd edition. Heaton Research, 2008. www.heatonresearch.com Vorlesung: Kognitionslinguistik (2011) Günter D. Rey/Karl F. Wender, Neuronale Netze. Eine Einführung in die Grundlagen, Anwendungen und Datenauswertung. Huber Verlag, 2008. Georg Dorffner: Konnektionismus. Teubner, Stuttgart 1991 Detlef P. Zaun: Künstliche neuronale Netze und Computerlinguistik. Niemeyer Verlag, 1999. http://cs.unimuenster.de/Studieren/Scripten/Lippe/wwwnnscript/ge.html http://www.spiegel.de/wissenschaft/mensch/0,1518,761995,00.h tml http://www.youtube.com/watch?v=FR4S1BqdFG4&feature=relat ed