1 / 90

Künstliche Neuronale Netze

Künstliche Neuronale Netze. Stefan Hartmann Forschungszentrum caesar. Gehirn. Computer. Anz. Recheneinheiten. 10 11. 10 9. Art Recheneinheiten. Neuronen. Transistoren. Art der Berechnung. Massiv parallel. i.d.R. seriell. Datenspeicherung. assoziativ. adressbasiert. Schaltzeit.

willem
Télécharger la présentation

Künstliche Neuronale Netze

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Künstliche Neuronale Netze Stefan Hartmann Forschungszentrum caesar

  2. Gehirn Computer Anz. Recheneinheiten 1011 109 Art Recheneinheiten Neuronen Transistoren Art der Berechnung Massiv parallel i.d.R. seriell Datenspeicherung assoziativ adressbasiert Schaltzeit 10-3s 10-9s Theoretische Schaltvorgänge 1013s-1 1018s-1 Tatsächliche Schaltvorgänge 1012s-1 1010s-1

  3. Warum Neuronale Netze? • Neuronale Netze sind eine von der Natur inspirierte Methode, Computer lernfähig zu machen. • Sie können Vorgänge im menschlichen Gehirn simulieren. • Anwendungen Neuronaler Netze (u.a.):- Mustererkennung, z.B. Sprach- und Schrifterkennung- Optimierung von Vorgängen, etwa in der Industrie- Künstliche Intelligenz

  4. Ein einfaches Anwendungsbeispiel 1. Das folgende Neuronale Netz soll Ziffern von 0 bis 9 erkennen. Dafür wird zunächst das Eingabefeld in 8x15 Elemente aufgeteilt: 2. Die geschriebene Ziffer wird in eine Folge von Nullen und Einsen umgewandelt, wobei 0 für leere und 1 für übermalte Rasterpunkte steht: 3. Nach erfolgreichem Training schafft es das abgebildete Neuronale Netz, geschriebene Ziffern zu erkennen und diese als Output y auszugeben.

  5. Vorteile gegenüber klassischen Rechenmethoden: • Lernfähigkeit • Generalisierungsfähigkeit • Fehlertoleranz (etwa bei verrauschten Daten) • Parallelität

  6. Geschichtlicher Überblick • 1943:Warren McCulloch und Walter Pitts beschreiben und definieren eine Art erster neuronaler Netzwerke. • 1949: Formulierung der Hebb‘schen Lernregel (nach Donald O.Hebb) • 1957-1958: Entwicklung des Perzeptrons durch Frank Rosenblatt • 1969:Marvin Minsky und Seymour Papert untersuchen das Perzeptron mathematisch und zeigen dessen Grenzen, etwa beim XOR-Problem, auf. • 1982: Beschreibung der ersten selbstorganisierenden Netze (nach biologischem Vorbild) durch Teuvo Kohonen und Publikation eines richtungweisenden Artikels von John Hopfield, indem die ersten Hopfield-Netze (nach physikalischen Vorbild) beschrieben werden • 1986: Das Lernverfahren Backpropagation für mehrschichtige Perzeptrons wird entwickelt. Anfänge Donald O.Hebb Ernüchterung Renaissance John Hopfield

  7. Die Struktur Neuronaler Netze Ein Neuronales Netz kann mathematisch alsgerichteter Graph aufgefasst werden, das bedeutet: • Es besteht aus einer Menge von Eckpunkten X, • die durch eine Menge von Kanten („Pfeile“) H verbunden sind, die je zwei Eckpunkte gerichtet verbinden. Input Output Die sog.Knoten des Graphen (Eckpunkte, in denen mind. ein Pfeil aufhört und ein Pfeil anfängt) bilden die Grundlage für die Neuronen.

  8. Netztopologien FeedBack-Netze (rekurrente Netze): Verbindungen zwischen allen Schichten möglich FeedForward-Netze: Gerichtete Verbindungen nur von niedrigen zu höheren Schichten FB-Netz mit Lateral-verbindungen FF-Netz erster Ordnung FB-Netz mit direkter Rückkopp-lung FF-Netz zweiter Ordnung

  9. Das Neuron Biologisches Neuron Künstliches Neuron • Die gewichteten Ausgaben anderer Neuronen werden empfangen (Input) und (in der Regel) aufsummiert. • Es wird unter Berücksichtigung eines Schwellenwertes der Aktivierungs-zustand berechnet,… • ...von dem wiederum die Ausgabe (Output) des Neurons abhängt. • Dendriten empfangen Reize, die als Potentiale aufsummiert werden. • Überschreitet diese Summe ein Schwellenpotential, feuert das Neuron… • ...und leitet über das Axon ein Aktionspotential weiter, das über Synapsen an benachbarte Zellen übertragen wird.

  10. Die technische Realisierung des Neurons • i:Index des Neurons • e1,e2,...ek:Eingabewerte (Inputs) • wi,j: Faktor, mit dem die Verbindung von Neuron i zu Neuron j gewichtet wird, wi=(w1i,…,wki) • neti: Nettoinput des i-ten Neurons • ai: Aktivierung des i-ten Neurons • oi: Ausgabewert (Output) des i-ten Neurons, meist identisch zur Aktivierung

  11. Die Inputfunktion Die Input- oder Propagierungsfunktion berechnet aus dem Eingabevektor und dem Gewichtsvektor den Nettoinput des i-ten Neurons. Es gibt folgende Inputfunktionen: • Summe: • Maximalwert: • Produkt: • Minimalwert:

  12. Die Aktivierungsfunktion Mit der Aktivierungsfunktion (auch: Transferfunktion) wird aus dem Nettoinput der Aktivierungszustand des Neurons berechnet. Folgende Aktivierungsfunktionen sind üblich: • Lineare Aktivierungsfunktion: • Binäre Schwellenwertfunktion: • Fermi-Funktion (logistische Funktion): • Tangens hyperbolicus: Schwellenwert, häufig 0

  13. Lineare Aktivierungsfunktion Schwellenwertfunktion Fermi-Funktion Tangens hyperbolicus

  14. Die Outputfunktion • Die Outputfunktion berechnet aus der Aktivierung ai den Wert, der als Ausgabe an die nächste Neuronenschicht weitergegeben wird. • In den meisten Fällen ist die Outputfunktion die Identität, d.h. oi=ai . • Für binäre Ausgaben wird manchmal auch eine Schwellenwertfunktion verwendet:

  15. Aufgabe 1 Eingabewerte: x1=2; x2=1 Berechne den Output des gegebenen Neuronalen Netzes. (Die Nummerierung der Verbindungen gibt an, welche Komponente des Gewichtsvektors sie darstellen.) Welche Neuronen können parallel arbeiten, welche müssen aufeinander warten?

  16. Frage Wie könnte eurer Meinung nach ein Neuronales Netz trainiert werden? Welche Bestandteile des Netzes könnten im Lernprozess verändert werden?

  17. Lernmodi • In einer Trainingsphase werden Trainingsvektoren aus einer Trainingsmenge P vorgegeben, die das Netz lernt, indem es Gewichte und evtl. Schwellenwerte verändert. • In der Ausführungsphasewird das gelernte Wissen zur Lösung unbekannter Probleme eingesetzt.

  18. Frage Worauf muss man bei der Auswahl geeigneter Trainingsdaten achten?

  19. Das Panzerproblem der DARPA(Behörde des Verteidigungsministeriums der USA)

  20. Diese Fehler können bei einer ungeeigneten Trainingsmenge auftreten: Zu viele Trainingsbeispiele: das Netz hat „auswendig gelernt“ Zu wenig Trainingsbeispiele: keine richtige Klassifikation

  21. Die Trainingsmenge bei überwachtem Lernen • Bei überwachtem Lernen wird die Trainingsmenge häufig aufgeteilt in • eine Trainingsmenge, mit der wirklich trainiert wird • und eine Testmenge, mit der die Lernfortschritte getestet werden. Erst wenn das Netz sowohl auf den Trainings- wie auch auf den Testdaten gute Werte liefert, wird das Training beendet.

  22. Lernstrategien Unüberwachtes Lernen (unsupervised learning) • Dem Netz werden beim Training nur Eingabevektoren vorgegeben. • Das Netz erkennt selbstständig Klassen in der Datenmenge und passt seine Parameter an diese an (Autoadaption). Überwachtes Lernen (supervised learning) • Dem Netz werden beim Training Eingabe- und gewünschte Ausgabevektoren vorgegeben. • Das Netz lernt, bis dahin unbekannten Eingabevektoren plausible Ausgabevektoren zuzuordnen (Generalisierung).

  23. Die Hebb‘sche Lernregel „Wenn ein Axon der Zelle A [...] Zelle B erregt und wiederholt und dauerhaft zur Erzeugung von Aktionspotentialen in Zelle B beiträgt, so resultiert dies in Wachstumsprozessen oder metabolischen Veränderungen in einer oder in beiden Zellen, die bewirken, dass die Effizienz von Zelle A in Bezug auf die Erzeugung eines Aktionspotenzials in B größer wird.“ (Donald Olding Hebb, Psychologe, 1949) Das bedeutet: Je häufiger im Gehirn zwei Neuronen gleichzeitig aktiv sind, desto stärker wird die Verbindung (Synapse) zwischen ihnen.

  24. Die Hebb‘sche Lernregel 2 Bei künstlichen Neuronalen Netzen wird dieses Phänomen mathematisch mit folgender Formel simuliert: Gewichtsänderung von Neuron i nach j Lernrate Ein zweischichtiges Neuronales FeedForward-Netz, das nach der Hebb‘schen Lernregel arbeitet, wird auch linearer Assoziierer genannt.

  25. Satz Der lineare Assoziierer arbeitet auf den Trainingsdaten perfekt, falls die Eingabeneuronen ein orthonormales Vektorsystem bilden, d.h. falls sie die Länge 1 besitzen und senkrecht aufeinander stehen.

  26. Aufgabe 2 • Das Programm „LINASSOZ.C“ ist ein einfacher linearer Assoziierer mit zwei Neuronenschichten. Öffne das Programm und versuche, es nachzuvollziehen. • Die Unterprogramme lernen() und ausführen() fehlen noch. Ergänze sie so, dass das programmierte Neuronale Netz die Hebb‘sche Lernregel anwendet und beim Ausführen die korrekten Ausgabevektoren liefert! • Benutze danach das fertige Programm: Trainiere das Netz für n=2undm=1 mit den folgenden Daten und lasse dir das Netz anzeigen. • Lasse das Netz mit denselben Daten im Ausführmodus arbeiten. • Setze nun das Training mit folgender Assoziation fort: • Welche Ausgaben liefert das Netz im Ausführmodus zu den vier Trainingsvektoren? Warum?

  27. Die Fehlerfunktion Der spezifische Fehler für ein Trainingsbeispiel p ist wie folgt definiert: Summiert man den spezifischen Fehler aller Trainingsbeispiele auf, ergibt sich der Gesamtfehler: Mit W werden Outputneuronen bezeichnet; mit O die Menge derselben

  28. Die Delta-Regel Die Delta-Regel vergleicht den tatsächlichen Output eines Neurons und den Solloutput. Ziel ist es, durch mehrfache Anwendung die Netzausgabe in Richtung der erwarteten Ausgabe zu verschieben. Solloutput

  29. Fragen Warum kann die Delta-Regel nur auf FeedForward-Netze mit maximal 2 Neuronenschichten angewendet werden? Wie verändert sich das Gewicht in den folgenden Fällen? • Der beobachtete Output ist zu niedrig. • Der beobachtete Output ist zu hoch. • Der beobachtete Output ist genau richtig.

  30. Das (Singlelayer-)Perzeptron Ein Perzeptron ist ein zweischichtiges, überwacht lernendes Neuronales FeedForward-Netz.

  31. Der Aufbau des Perzeptrons Ein Perzeptron hat folgende Bestandteile: • Die Retina- eine Neuronenschicht, die nur der Datenaufnahme dient und statische Gewichte zur nächsten Schicht hat, • Die Eingabeschicht- bestehend aus Eingabeneuronen die ihren Input als Ausgabe weitergeben (sogenannten Identitätsneuronen) • Im Lernprozess veränderbare Gewichte zwischen Ein- und Ausgabeschicht • Die Ausgabeschicht- bestehend aus sog. Informationsverarbeitenden Neuronen (d.h. die Aktivierungsfunktion ist nicht die Identität) Retina Eingabeschicht Trainierbare Gewichte Ausgabeschicht

  32. Wie lernt ein Perzeptron? • Die Aktivierungsfunktion des Perzeptrons ist die binäre Schwellwertfunktion: • Während des Lernprozesses werden alle Trainingsvektoren an das Netz angelegt, und die Ausgaben mit den erwartetem Solloutput verglichen • Die Gewichte werden nach der Delta-Regel modifiziert. • Bewiesen ist das „Perzeptron-Konvergenz-Theorem“: Der Algorithmus konvergiert – das Perzeptron kann in endlicher Zeit all das lernen, was es überhaupt theoretisch abbilden kann. Schwellenwert

  33. Aufgabe 3 • Das Programm „PERCEPT1.C“ ist ein Perzeptron. Öffne das Programm und versuche, es nachzuvollziehen. • Die Unterprogramme lernen() und ausführen() sind unvollständig. Ergänze sie so, dass das Programm läuft (siehe Kommentare im Listing). • Benutze das fertige Programm: Trainiere das Netz für n=2undm=1 mit den folgenden Daten und lasse dir das Netz anzeigen. • Teste das Netz im Ausführmodus. • Trainiere das Netz weitere Male mit den gleichen Daten, ohne die Gewichte zu ändern und teste es danach im Ausführmodus. Was fällt auf?

  34. Das XOR-Problem • XOR steht für „exclusive or“ und bedeutet soviel wie „entweder oder“ • Ein Perzeptron kann diese Funktion nicht simulieren! 0 entspricht „falsch“, 1 entspricht „wahr“

  35. Beweis Angenommen, es gibt ein Perzeptron mit den Gewichten w1 und w2, welches die XOR-Funktion simuliert. Dann müsste gelten: Widerspruch!

  36. Lineare Separierbarkeit Bei dem Perzeptron (hier Eingabeneuronen iund j, Ausgabeneuron W) wird von einem Ausgabeneuron der Wert 1 ausgegeben, wenn gilt: (Für positives wi,W)

  37. Lineare Separierbarkeit 2 ei 1 0 0 1 ej Ein Single-Layer-Perzeptron kann nur linear separierbare Mengen klassifizieren. (bei n Eingabeneuronen nur Mengen, diedurch eine (n-1)-dimensionale Hyperebene trennbar sind)

  38. Aufgabe 4 Wie sehen die beiden Perzeptrons aus, die die AND-Funktion (das logische „Und“) bzw. die OR-Funktion (das logische „Oder“) simulieren können?

  39. Mehrschichtige Perzeptrons • Die sogenannten Multilayer-Perzeptrons (MLP) mit einer oder mehreren verdeckten Schichten können das XOR-Problem lösen. • Allerdings können MLPs nicht mehr mit der einfachen Delta-Regel trainiert werden!

  40. Backpropagation (BP) • Der Backpropagation-Algorithmus arbeitet mit der erweiterten Delta-Regel • Zuerst wird die hinterste Gewichtsschicht verändert, dann arbeitet sich BP weiter nach vorn

  41. Die erweiterte Delta-Regel • Die erweiterte Delta-Regel ist auf drei- oder mehrschichtige Neuronale FeedForward-Netze anwendbar:

  42. Gradientenabstieg Der Gradient stellt eine Verallgemeinerung der Ableitung für Funktionen mehrerer Variablen dar. Er ist ein Vektor, in dessen Komponenten die partiellen Ableitungen stehen, der in die Richtung des steilsten Anstieges zeigt und dessen Länge ein Maß für die Steilheit (Steigung) ist. Die Backpropagation ist ein Gradientenabstiegsverfahren, das entgegen der Richtung des Gradienten nach einem Minimum in der Fehlerfunktion sucht.

  43. Der BP-Algorithmus Die folgenden Schritte werden für jedes Trainingsmuster durchgeführt. Das Ganze wird wiederholt, bis der Gesamtfehler klein genug oder die maximal verfügbare Zeit überschritten ist: • Ein Trainingsmuster wird angelegt und der Output berechnet. • Der Fehler für dieses Muster wird berechnet. • Der Fehler wird von der Ausgabe- zur Eingabeschicht zurück propagiert und die Gewichte werden, beginnend mit der hintersten Schicht, nach der erweiterten Delta-Regel angepasst.

  44. Aufgabe 5 Nun geht es darum, ein Multilayer-Perzeptron mit einer versteckten Schicht zu trainieren. Öffne hierzu das Programm „BACKPROP1.C“. Versuche, die Struktur nachzuvollziehen. Trainiere das Netz für n=2, q=2, m=1, t=4, beta=1, lambda=0.5, s_max=1 und epsilon=0.0001 auf dem XOR-Problem. Lasse es dir danach anzeigen und führe es auf den XOR-Eingabevektoren aus. Beurteile die Resultate. Wiederhole die obigen Schritte, diesmal aber mit s_max=10000. Was fällt auf? Wie konnte das passieren???

  45. Probleme bei der Backpropagation Mögliche Fehler bei einem Gradientenabstieg: a) Finden schlechter Minima; b) Quasi-Stillstand bei kleinem Gradienten; c) Oszillation in Schluchten; d) Verlassen guter Minima

  46. Lösungsansatz 1: Der Momentum-Term Auf Plateaus wird beschleunigt, da der Gradient dort ständig das gleiche Vorzeichen hat. Auf zerklüfteten Flächen bremst der Momentum-Term den Gradientenabstieg, da sich das Vorzeichen der Gewichtsänderung ständig ändert.

  47. Lösungsansatz 2:Weight Decay Bei dieser von der Natur inspirierten Erweiterung des Fehlers werden zu große Gewichte bestraft: Das Netz hält die Gewichte klein, sodass das Lernen kontrollierter wird und die Fehlerfunktion weniger stark schwankt.

  48. Anwendungsbeispiel: Farbkonstanz Als Farbkonstanz wird das Phänomen bezeichnet, dass die Farbe eines Objektes bei unterschiedlicher Beleuchtung immer gleich wahrgenommen wird, auch wenn die Wellenlänge des reflektierten Lichtes variiert. Diese Erdbeeren werden von uns z.B. als rot statt eigentlich orange oder violett wahrgenommen.

  49. Erklärungsansatz • Das menschliche Gehirn bekommt als Eingabe die Wellenlängen des vom Objekt reflektierten Lichts und des Hintergrundlichts. • Vernetzte Neuronen (im visuellen Areal V4 des Kortex) verarbeiten diese Informationen. • Als Ausgabe liefern die Neuronen dann die subjektiv wahrgenommene Farbe, die sich von der tatsächlichen unterscheiden kann. Im Jahre 2004 wurde dieser Prozess im Gehirn mit Hilfe eines Neuronalen Netzes simuliert.

  50. Netzaufbau Input-Schicht: Sechs Eingabeneuronen, die in zwei Farbkanäle zu je drei Zapfen aufgeteilt sind • R-Zapfen für langwelliges (rotes) Licht • G-Zapfen für mittelwelliges (grünes) Licht • B-Zapfen für kurzwelliges (blaues) Licht Erste Hidden-Schicht:Statische Gewichte zur Input-Schicht, pro Farbkanal drei Gegenfarbenzellen • R-G: Aktivierung durch rotes, Hemmung durch grünes Licht • B-G: Aktivierung durch gelbes (Wellenlänge zwischen rot und grün), Hemmung durch blaues Licht • S-W: Aktivierung durch weißes Licht (Mischung von rot und grün) Zweite Hidden-Schicht:Trainierbare Gewichte zur vorigen Schicht, Zusammenführung der Farbkanäle Output-Schicht: Ebenfalls trainierbare Gewichte, Ausgabe soll die subjektiv empfundene Wellenlänge sein

More Related