Neuronale Netze Universität zu Köln SS 2010 Seminar: Künstliche Intelligenz II Dozent: Stephan Schwiebert Referenten: Aida Moradi, Anne Fleischer Datum: 23. 06. 2010
Was sind Neuronale Netze? ein Netzwerk aus vielen kleinen Einheiten miteinander verknüpft sind adaptiv, d.h. sie lernen jede Einheit erledigt simple Aufgaben aber insgesamt komplexe Aufgabe
Wie kam es überhaupt zu diesem Begriff? 1943 W.S. McCulloch und W. Pitts anfänglich hauptsächlicher Einsatz in Bereichen wie Medizin, Psychologie... Anstieg seit Mitte der 80er Jahre Einsatz auch in anderen Fachbereichen, wie Wirtschaft...
Zusammenhang zum Gehirn... Biologische Motivation zwei Gründe für Übertragung einiger biologischen Prinzipien in die Informatik: Mit Hilfe der Computer lassen sich biologische Effekte so näher untersuchen. Mit Hilfe der aus der Biologie übertragenen Funktionsweise lassen sich Methoden implementieren, die ganz neue Funktionen von Computern ermöglichen.
WIE IST EIN GEHIRN AUFGEBAUT?
WAS GENAU IST NUN EIN NEURONALES NETZ?
Neuronen (Units) 3 verschiedenen Arten von Neuronen: Input-Units: Units, die von der Außenwelt Signale (Reize, Muster) empfangen können. Hidden-Units: Units, die sich zwischen Input- und Output-Units befinden und eine interne Repräsentation der Außenwelt beinhalten. Output-Units: Units, die Signale an die Außenwelt weitergeben.
Verbindungen zwischen Units Die Stärke der Verbindung zwischen zwei Neuronen wird durch ein Gewicht ausgedrückt. Je größer der Absolutbetrag des Gewichtes ist, desto größer ist der Einfluss einer Unit auf eine andere Unit.
Wissen und Lernen Das Wissen eines neuronalen Netzes ist in seinen Gewichten gespeichert. Lernen wird bei neuronalen Netzen zumeist als Gewichtsveränderungen zwischen den Einheiten definiert. Wie die Gewichtsveränderung genau erfolgt ist abhängig von der verwendeten Lernregel.
Aktivierung Sender- Unit j Sender- Output a j Gewicht W j,i Netzinput Aktivierungs- Funktion g Empfänger- Unit i Aktivierungs- Level = Output Output a i Σ j a i = g( W j,i a j )
Aktivierungsfunktionen Binäre / Schwellenwert- Aktivierungsfunktion Sigmoid-Funktion / Logistische Funktion
Lernen Neuronale Netze können lernen Lernen = Gewichte der Verbindungen ändern 3 Arten von Lernen: Überwachtes Lernen Unüberwachtes Lernen Bestärkendes Lernen Lernregeln bestimmen wie die Gewichte zwischen den Neuronen modifiziert werden
Überwachtes Lernen Lernen durch externen Lehrer Vorgegebene Input-Output-patterns Vom Netz berechneter Output wird mit eigentlich korrektem Output verglichen Aufgrund der Differenz werden Gewichte modifiziert (durch Lernregeln) Trainings-Korpus wird mehrmals durchlaufen Fehlerrate minimieren
Lernregeln des überwachten Lernens Delta-Regel: Nur bei Netzen ohne Hidden Units Vergleich der berechneten Aktivität einer empfangenden Unit mit der gewünschten Berechnete Aktivität zu niedrig Erhöhung der Gewichte zur Unit Berechnete Aktivität zu hoch Verringerung der Gewichte zur Unit Aktivitätslevel gleich keine Änderung Δw ij = ε (a i (gewünscht) a i (beobachtet)) a j
Lernregeln des überwachten Lernens Backpropagation: Netz berechnet Output Vergleich mit gewünschtem Output Fehlerterm Fehlerterme werden rückwärts durch das Netz propagiert Veränderung der Gewichte durch Lernregel bei der der Fehlerterm eine Rolle spielt
Unüberwachtes Lernen Ohne vorgegebene Input-Output-Patterns Nur Input-Muster Netz versucht eigenständig Ähnlichkeiten der Input-Muster zu identifizieren Kategorien-Bildung (Musterklassen) Bsp: Self-Organizing Maps (Kohonen-Netze)
Bestärkendes Lernen Netz berechnet Output dem Netz wird mitgeteilt, ob Output korrekt oder inkorrekt war Netz erfährt nicht die Abweichung Wird eher selten benutzt
Arten von Netzen mit oder ohne hidden Units Feed-Forward-Netze Rekurrente Netze (Rückkopplungen) total vernetzt oder teilvernetzt
Perzeptron Sehr einfaches Netz Nur Input und Output-Schicht Kann z.b. boolsche Funktionen simulieren, wie OR und AND Kann nicht die XOR-Funktion simulieren nicht linear trennbar OR XOR 1 1 1 0 1 1
Rekurrente Netze unmittelbare Rückkopplung Laterale Rückkopplung Aktivierung kann dadurch verstärkt oder abgeschwächt werden Garantie, dass nur eine einzige Unit pro Schicht aktiviert wird
Attraktoren-Netze Bei rekurrenten Netzen Attraktoren = stabile (Output-)Zustände Netz erhält Input berechnet zwar Output aber arbeitet (durch Rückkopplungen) solange zyklisch weiter bis stabiler Zustand erreicht ist Input fällt in sogenannte Attraktor-Basins Je weiter der Output vom Attraktor entfernt ist desto mehr Zyklen braucht das Netz um stabilen Zustand zu erreichen
Attraktoren-Netze Nutzen: Normalerweise haben neuronale Netze die Eigenschaft ähnliche Outputmuster zu ähnlichen Inputmustern zu berechnen Durch Hinzunahme von Attraktoren sind auch arbiträre mappings möglich
Hopfield-Netze Einschichtig (Input = Output) komplett vernetzt in beide Richtungen aber keine direkten feedback-verbindungen Binäre Aktivierung Units beeinflussen sich ständig gegenseitig Bei Aktivierung arbeitet Netz weiter bis Ruhezustand erreicht ist
Hopfield-Netze Ruhezustand bedeutet: keine Änderungen der Aktivierungszustände der Units Hopfield-Netze können sich zum Bsp. Muster merken beschädigte Muster können dann wiederhergestellt werden
Beispiele Bsp. Für Netze, die konzipiert werden, um das Verhalten im menschlichen Gehirn zu erforschen Netze, die lesen lernen Problemstellung: Nutzen: Verschiedene Phoneme für gleiche Buchstaben Ausnahmen (z.b. brave, save, cave vs. have) Netze können beschädigt werden um z.b. Dyslexie zu erforschen Erforschung von Lernstufen
NETtalk NETtalk Entwickelt von Sejnowski und Rosenberg 1987 lernt Lesen berechnet ein Phonem für ein Graphem 203 input units (7x29) 80 hidden units 26 output units
NETtalk
NETtalk Aktivierungsfunktion: sigmoid Lernregel: Backpropagation Ergebnis: Relativ gutes Ergebnis für die Wörter im Trainings-Korpus auch bei Ausnahmen Konnte einigermaßen generalisieren Simulierte einige menschliche Eigenschaften (nach Beschädigung lernte das Netz schneller wieder als anfänglich menschliches Verhalten ähnlich)
Handschriften-Erkennung Beispiel für rein anwendungsorientierten Einsatz neuronaler Netze Input-Units 7 als Pixel
Einsatzbereich neuronaler Netze in vielen Bereichen häufig nur Teile eines komplexen Systems Neuronale Netze werden eingesetzt in : Bildverarbeitung Schrifterkennung Spracherkennung Robotersteuerung Regelungsaufgaben (z.b. Waschmaschine)...
Fazit rein anwendungs-orientierte neuronale Netze: Können Probleme lösen, die andere Systeme nicht lösen können Sind schwierig und aufwendig zu implementieren Können oft keine 100%ige Korrektheit garantieren
Fazit Neuronale Netze, die versuchen menschliches Verhalten zu simulieren: Simulieren menschliches Verhalten schon recht gut können Einsicht in die Verarbeitungsweise des menschlichen Gehirns geben, da NNs auf den grundliegenden Prinzipien des Gehirns basieren Aber: NNs sind immer in Größe beschränkt und können nie das ganze Spektrum des menschlichen Verhaltens erfassen (z.b. gehören zum Lesen auch Aspekte der Semantik oder phonologische Vorkenntnisse)
Fazit Implementation ist oft biologisch nicht plausibel (z.b. backpropagation) Bleibt trotzdem nur Simulation selbst wenn Ergebnisse von Mensch und Netz gleich Art und Weise wie die Ergebnisse erreicht werden, können sich stark unterscheiden
Vielen Dank für die Aufmerksamkeit!
Quellen http://www.neuronalesnetz.de/ http://wwwmath.unimuenster.de/softcomputing/lehre/material/wwwnnscript/startseite.html www.grundstudium.info/neuro/ de.wikipedia.org/wiki/neuronales_netz Russel, Stuard & Peter Norvig: Künstliche Intelligenz. Ein Moderner Ansatz benutzt. Pearson Studium, 2., Überarbeitete Auflage 2004. Sejnowski, T. J. & Rosenberg, C. R.: Parallel Networks that learn to pronounce English Text. In: Complex Systems 1, S. 145-168. 1987. http://cnl.salk.edu/parallelnetspronounce/parallelnetspronounce- TJSejnowski.pdf Software: Membrain www.membrain-nn.de/