Stephan Ruttloff 1. 2. 3. 4. 5. 6. Neuronale Netzwerke Lernen in neuronalen Netzen Überblick und Klassifizierung von Modellen Eigenschaften von neuronalen Netzen Verwendungsweise Quellen Was sind neuronale Netzwerke? • Mathematische Modelle, die sich an der Funktionsweise des Gehirns orientieren • Ein Netz besteht aus vielen kleinen Einheiten, den Neuronen • Neuronen sind gewichtet miteinander verbunden • Das „Wissen“ eines neuronalen Netzwerkes findet sich in den einzelnen Verbindungsgewichten der Neuronen wieder • Frühe neuronale Netze wurden als eigenständige elektronische Geräte aufgebaut • Heute werden sie hauptsächlich als Simulationen umgesetzt Eingänge Gewichtete Kante Ausgang Neuron Neuron Biologisches Neuron Künstliches Neuron netj Aktivierungsfunktion f Ausgabe oj Ausgabe Eingaben oi Eingabefunktion • Neuronen verarbeiten Eingangssignale und erzeugen Ausgangswerte • Innerhalb des Neurons werden gewichtete Signale zur Netzaktivität (neti) aufsummiert • Die Netzaktivität eines Neurons i ist gleich der Summe der Gewichte mal der Eingangssignale oj für alle Eingänge in das Neuron i, angefangen beim Ausgang des Neurons j=1 und endet bei j=n • einfachste Aktivierungsfunktion ist die Identität, also genau die Summe der gewichteten Eingangswerte • in komplizierteren Modelle benutzt die Aktivierungsfunktion auch den vorhergehenden Aktivitätszustand des Neurons, so dass das Neuron sich selbst erregen kann • Manchmal ist die Aktivierungsfunktion auch stochastisch, enthält also einen Zufallsfaktor • Jedes Neuron hat einen individuellen Aktivierungswert, der als ai(t) geschrieben wird, wobei a für Aktivierung steht, i das Neuron bezeichnet und (t) einen bestimmten Zeitpunkt darstellt • Die Aktivierungsfunktion spezifiziert, was das Neuron mit dem Signal tut, nachdem die Gewichtungen ihre Wirkung gezeigt haben • In meisten Modellen kann Aktivierungswert beliebiger Betrag in einem beschränkten Bereich kontinuierlicher Werte sein, einschließlich gebrochener Zahlen • In anderen Modellen ist Aktivierungswert gebunden und diskret, kann also keinen gebrochenen Wert annehmen • Gebräuchliche Werte sind -1 (für inaktiv) und +1 (für aktiv) • Manche Modelle haben keine Grenzen des Wertebereichs, wobei man von einem unbeschränkten und kontinuierlichen Aktivierungswert spricht • Einfachste Aktivierungsfunktion • Summe der gewichteten Eingangswerte • Alles-oder-Nichts-Funktion • Ist der Aktivierungswert größer als ein festgelegter Betrag, gibt das Neuron eine 1 aus, ansonsten eine 0 • Aktivität des Neurons muss ein bestimmtes Niveau erreichen um einen Beitrag zum Gesamtzustand des Netzes zu leisten • Besonders nützliche nichtlineare Funktion • Sättigungsfunktion • oberhalb eines bestimmten Maximalwertes hat eine stärkere Erregung keine zusätzliche Wirkung mehr • Obere und untere Sättigungsgrenze, sowie proportionalen Bereich dazwischen m Ausgänge veränderlich gewichtete Kanten n Eingänge Neuronen Verarbeitungsrichtung • Neuronen weisen vielfache Verknüpfungen untereinander auf • „Wissen“ eines Neurons auf die Querverbindungen verteilt • Neuronen können prinzipiell frei miteinander verbunden sein, sind jedoch meist in Schichten organisiert m Ausgänge n Eingänge Eingangsschicht verborgene Schicht Ausgangsschicht • Neuronen können an drei verschiedenen Positionen in einem Netz vorkommen: der Eingangsschicht, der Ausgangsschicht und einer verborgenen Schicht m Ausgänge n Eingänge • Eingangsneuronen „empfangen“ Daten aus der äußeren Welt • Daten können von anderen Programmen, aus Dateien, etc. stammen m Ausgänge n Eingänge • Alle Neuronen zwischen den Ein- und Ausgangsschichten • Ein- und Ausgangsdaten bleiben unsichtbar, da sie nur mit anderen Neuronen und nicht mit der Außenwelt verbunden sind m Ausgänge n Eingänge • Ausgangsneuronen senden Informationen an uns oder an einen anderen Empfänger, wie zum Beispiel eine mechanische Steuerung • Eine Verbindung ist eine einzelne Nachrichtenstrecke, die von einem sendenden zu einem empfangenden Neuron führt • Es gibt zwei Arten von Verbindungen: erregende und hemmende • Erregende Verbindungen neigen dazu, ein Neuron zum feuern zu veranlassen • Hemmende Verbindungen neigen dazu, ein Neuron am feuern zu hindern • Weist die Struktur eines Netzwerkes hemmende Verbindungen von einem Neuron zu allen übrigen der selben Schicht auf, nennt man dies laterale Hemmung Rückkoppelung Ausgänge Eingänge Laterale Hemmung • Rückkoppelung bezeichnet eine Verbindung vom Ausgang einer Schicht zum Eingang einer früheren, oder zu derselben Schicht Wie „lernt“ ein künstliches neuronales Netz • Bei einem Lernvorgang oder auch Training eines neuronalen Netzes können Neuronen entfernt bzw. hinzugefügt oder die Aktivierungsfunktion verändert werden • Meistens versteht man unter lernen allerdings das Verändern der Gewichtung der Kanten (Verbindungsstärke w) • Man unterscheidet zwischen drei Arten des Lernens: • Überwachtes Lernen (supervised learning) • Unüberwachtes Lernen (unsupervised learning) • Verstärkendes Lernen (reinforcement learning) • Außerdem unterscheidet man zwischen verschiedenen Lernregeln • Dem Netz wird zu jedem Eingabemuster I ein Zielmuster t präsentiert • Beim Lernen werden die Verbindungsgewichte so angepasst, dass die Ausgabe des Netzes eher dem Zielmuster t entspricht • Nachdem man dem Netz wiederholt eine ausreichende Anzahl verschiedener Paare von Ein- und Ausgabewerten präsentiert hat, kann es selbständig auf unbekannte Fragen „antworten“ (Generalisierung) • In Netzen ohne verborgene Schicht kann man die DeltaLernregel verwenden: • Beruht auf dem Vergleich zwischen gewünschter und tatsächlicher Ausgabe • Es können drei Möglichkeiten auftreten: • Die Ausgabe ist zu niedrig: Gewichte zu positiv sendenden Neuronen werden erhöht und Gewichte zu negativ sendenden Neuronen gesenkt • Die Ausgabe ist zu hoch: Gewichte zu positiv sendenden Neuronen werden gesenkt und Gewichte zu negativ sendenden Neuronen erhöht • Die Ausgabe stimmt mit der gewünschten Ausgabe überein: Es werden keine Veränderungen vorgenommen • Dabei geschieht die Gewichtsveränderung proportional zur Größe des Fehlers • • • • I ist das Eingabemuster o ist die Ausgabe des Neuronalen Netzes t ist das Zielmuster Da o nicht mit t übereinstimmt müssen die Gewichte entsprechend angepasst werden • Dem Netz wird lediglich eine Menge von Eingabemustern präsentiert • Kann ein solches Netz etwas nützliches lernen? • Ja, denn durch eine geeignete Lernregel findet es Zusammenhänge und Ähnlichkeiten in der Eingabemenge • Das Lernverfahren nutzt also statistische Eigenschaften in den Daten zur Generierung von Ausgabemustern • In Netzen ohne verborgene Schicht kann man die Hebb‘sche Lernregel verwenden: Donald E. Hebb • Große biologische Plausibilität • Das Gewicht zwischen zwei Neuronen wird dann verändert, wenn beide Neuronen gleichzeitig aktiv sind • Die Größe der Gewichtsveränderung hängt dabei von drei Werten ab: • Dem Aktivitätslevel (bzw. der Ausgabe) des sendenden Neurons • Dem Aktivitätslevel (bzw. der Ausgabe) des empfangenden Neurons • Einem vorher festgelegten Parameter (der Lernschrittweite ) 0,1 0,1 0,4 0,4 0,7 0,2 0,2 0,9 0,9 Vorher 0,7 Nachher • Die hervorgehobenen Verbindungen stellen hier eine Verstärkung des Verbindungsgewichts dar Bewertung (erwartet/unerwartet) • Ordnet sich zwischen überwachtem und unüberwachtem Lernen ein • Anstelle eines konkreten Zielmusters tritt hier eine Belohnung bzw. Bestrafung • Das Modell lernt dann, wenn es einen Unterschied zwischen angestrebter und tatsächlich erreichter Belohnung gibt • Die Fehlerrückführung (oder auch Backpropagation) kann im Gegensatz zu den bisher vorgestellten Lernregeln auch für neuronale Netze mit verborgenen Schichten angewendet werden • Gehört zur Gruppe der überwachten Lernverfahren • Stellt eine Verallgemeinerung der Delta-Lernregel für mehrschichtige neuronale Netze dar • Verläuft in drei Phasen: • Eingabemuster wird angelegt und vorwärts durch das Netz geschickt • Die Ausgabe wird mit der gewünschten Ausgabe verglichen, wobei die Differenz als Fehler des Netzes erachtet wird • Der Fehler wird nun von der Aus- zur Eingabeschicht zurück propagiert und die Gewichte entsprechend angepasst Welche Netztypen gibt es? • Der Pattern Associator ist ein Netztyp, der Muster erkennen kann, die er zuvor gelernt hat • Besteht lediglich aus Input- und Output-Schicht • In der Trainingsphase kann die Delta-Lernregel oder die Hebb‘sche Regel angewendet werden • Generalisierung • Ähnliche Reize werden zur selben Reizgruppe kategorisiert (verschiedene Hunderassen gehören der Reizgruppe „Hunde“ an) • Problem: ähnliche Reize unterschiedlicher Kategorien werden in der selben Kategorie zusammengefasst („Übergeneralisierung). Beispielsweise ist es falsch Forellen, Delphine, Barsche und Heringe der Kategorie „Fisch“ zuzuordnen • Toleranz gegenüber internen Schäden • Trotz innerer Schäden (z.B. durch Verlust von Neuronen) kann das Netzwerk oftmals noch richtigen Output produzieren • Toleranz gegenüber externen Schäden • Trotz fehlerhaftem oder unvollständigem Input gelingt es dem neuronalen Netz, das Muster zu identifizieren (etwa wenn Teile eines Gesichts verdeckt sind) • Sind durch Rückkoppelungen von Neuronen einer Schicht zu Neuronen derselben oder einer vorhergehenden Schicht gekennzeichnet • Sinn dieser Rückkoppelungen ist es meist, zeitlich codierte Informationen in den Daten zu entdecken • Rekurrente Netze lassen sich wiederum in vier Gruppen unterteilen: • • • • Neuronale Netze mit direkten Rückkoppelungen (direct feedback) Neuronale Netze mit indirekten Rückkoppelungen (indirect feedback) Neuronale Netze mit seitlichen Rückkoppelungen (lateral feedback) Neuronale Netze mit vollständigen Verbindungen • Hier existieren Verbindungen vom Ausgang eines Neurons zum Eingang des selben Neurons • Somit wird die Aktivität des Neurons zum Eingang des selben Neurons • Hier existieren Verbindungen vom Ausgang eines Neurons zum Eingang eines Neurons der vorangegangenen Schicht • Somit wird die Aktivität des Neurons zur vorhergehenden Schicht zurückgeschickt • Hier existieren Verbindungen vom Ausgang eines Neurons zum Eingang eines Neurons in der selben Schicht • Diese Netze besitzen Verbindungen zwischen sämtlichen Neuronen • Prognose über die Zukunft treffen • Grundsätzlich können rekurrente Netze Vorhersagen über die Zukunft machen, z.B. die nächste Eingabe einer Sequenz prognostizieren • Simulation von menschlichen Verhaltenssequenzen • Rekurrente Netze können menschliche Verhaltensweisen simulieren, z.B. die Steuerung der Motorik, vor allem der Sprache • Neuronale Netze mit einer Input- und einer Output-Schicht (wie Pattern Associator) • Kompetitive Netze sind unüberwacht • Training kompetitiver Netze erfolgt in 3 Phasen • Erregung • Wettbewerb • Veränderung der Gewichte • Problem: Die Gewichte zu einem einzigen oder einigen wenigen Ausgangsneuronen kann so groß werden, dass sie unabhängig vom Eingangsmuster „gewinnen“. Daher kann es sinnvoll sein den Gesamtbetrag der Gewichte einer Schicht auf einen konstanten wert festzulegen • Filtern von Redundanzen • Vorgeschaltetes Netz für andere Netztypen • Man kann ein kompetitives Netz vor einen Pattern Associator schalten um seine Arbeitsweise zu verbessern • Musterklassifikation • Ähnlich wie beim Pattern Associator, jedoch mit unüberwachtem Lernen (etwa zur Buchstabenerkennung) • „Kohonen“ geht auf den finnischen Ingenieur Teuvo Kohonen zurück • Auch als Self-Organizing Maps (SOMs) bezeichnet • Training durch unüberwachtes Lernen • Kohonennetze können in selbstorganisierender Weise lernen, Karten von einem Inputraum zu erstellen • Man kann auch sagen dass Kohonennetze den Inputraum clustern Teuvo Kohonen 2-dimensionale Output-Schicht Input-Schicht • Kohonennetze bestehen üblicherweise aus zwei Schichten (einer Inputund einer Output-Schicht) • Von jedem Input-Neuron führen Verbindungen zu sämtlichen OutputNeuronen • Häufig ist die Output-Schicht 2-dimensional aufgebaut, wobei die Distanz zwischen den einzelnen Output-Neuronen eine wichtige Rolle spielt • Startwert festlegen • Gewichte werden zufällig generiert • Lernkonstante, Radius, Nachbarschaftsfunktion und maximale Anzahl der Durchläufe werden festgelegt • Auswahl eines Eingabemusters • Aktivitätsberechnung und Auswahl • Aktivität der Output-Neuronen wird berechnet • Neuron mit Maximalem Ausgang wird ausgewählt (das ist jenes Neuron, welches dem Eingabemuster am ähnlichsten ist) • Gewichtsmodifikation • Gewichte des ausgewählten Neurons werden so angepasst, dass es dem Eingabemuster ein wenig ähnlicher wird • Das Selbe geschieht (in abgeschwächter Form) für seine Nachbarn • Der Lernparameter wird reduziert • Der Radius für die Nachbarschaft wird eingegrenzt • Danach geht es wieder mit dem ersten Schritt weiter • Abbruch • Wenn maximale Anzahl der Durchläufe erreicht ist • Zähler • Anzahl der Durchläufe • Radius der Nachbarschaft • Größe der bei Gewichtsanpassungen berücksichtigten Nachbarschaft • Lernparameter • Bestimmt, wie stark die Gewichte verändert werden • Matrixgröße • Anzahl der Output-Neuronen • Form der Nachbarschaftsfunktion • Bestimmt, in welcher Weise benachbarte Neuronen von den Gewichtsveränderungen betroffen sind (die Stärke der Gewichtsveränderung kann mit zunehmender Distanz z.B. linear oder exponentiell abnehmen) • Art und Weise, wie Parameter im Lerndurchgang verändert werden • Dimension des Kohonennetzes • 2-, 3-, …, n-Dimensional • Inverse Kinematik • Z.B. bei mechanischen Armen bei Robotern im 2-dimensionalen Raum • Kohonennetze können kürzesten Weg zwischen 2 Punkten finden, auch wenn sich auf dem direkten Weg Hindernisse befinden (vorausgesetzt, die Hindernisse verändern ihre Position nicht) • Transformation von n-dimensionalen Figuren in 2- oder 3dimensionale Figuren ohne dabei kritische Informationen zu verlieren • Spracherkennung, Unterschriftenerkennung, Gesichtserkennung • Also verschiedene Formen der Mustererkennung • Problem des Handlungsreisenden Pattern Associator Rekurrente Netze Kompetitive Netze Kohonennetze Kernkonzept Assoziationen zwischen Reizpaaren bilden Rückkoppelung Erregung, Wettbewerb, Gewichtsmodifika tion Wie kompetitive Netze, nur mit mehrdimensionale r Output-Schicht Lernregel Hebb, Delta Fehlerrückführung Competitive Learning Competitive Learning Rückkoppelung Nein Ja Nein Nein Verborgene Schicht Nein Möglich Möglich In der Regel nicht Art der Lernregel Überwacht Überwacht Unüberwacht Unüberwacht Vorteile Einfachheit Entdecken zeitlich codierter Informationen Biologisch plausibel Biologisch plausibel Nachteile Kein verborgene Schicht „Überlaufen“ der Aktivität Einzelne OutputNeuronen werden zu stark Viele Parameter Welche besonderen Eigenschaften haben neuronale Netze? • • • • • • • Parallelverarbeitung Verteilte Speicherung Zum Teil biologische Plausibilität Toleranz gegenüber internen Schäden Toleranz gegenüber externen Fehlern Generalisation/Kategorienbildung Output der zentralen Tendenz bzw. des Prototypen der Kategorie • Inhaltsabruf • Hohe Lernfähigkeit • Große Anzahl an Freiheitsgraden • Parallelverarbeitung • Ein neuronales Netz kann die notwendigen Berechnungen nicht nacheinander, sondern gleichzeitig ausführen • Beachte: Parallelverarbeitung ist bei der Simulation am PC eher theoretischer Natur • Verteilte Speicherung • Speicherung von Informationen in neuronalen Netzen verteilt • Informationen (z.B. das Alter einer Person) sind über das gesamte Netz oder zumindest über einen Teil davon gelagert • Genauer: das Wissen ist in den vielen verschiedenen Gewichten zusammen abgespeichert • Zum Teil biologische Plausibilität • Aufgrund der Parallelverarbeitung und verteilten Speicherung bieten neuronale Netze eine gewisse Nähe zum menschlichen Gehirn • Mit Hilfe neuronaler Netzsimulationen kann menschliches Verhalten oftmals sehr gut simuliert werden • Toleranz gegenüber internen Schäden • Trotz interner Schäden (z.B. durch das Fehlen einzelner Neuronen) liefert das neuronale Netz oftmals den richtigen Output • Toleranz gegenüber externen Fehlern • Auch bei unvollständigem oder fehlerhaftem Input liefert das Netz häufig den richtigen Output • Output der zentralen Tendenz bzw. des Prototypen der Kategorie • Bezieht sich auf den erzeugten Output des Netzes • Formt häufig bei mehreren gelernten Inputvektoren einen gemeinsamen Outputvektor aus, den man als Prototyp einer Kategorie auffassen kann • Typisch menschliche Eigenschaft • Inhaltsabruf • Zum Abrufen einer Information muss man dem Netz lediglich Inhalte präsentieren, die mit dem gesuchten Inhalt in Verbindung stehen • z.B. reicht es dem Netz Informationen über das Aussehen, den Wohnort, etc. zu präsentieren, um den Namen zu erfahren an den man sich gerade nicht mehr erinnert • Hohe Lernfähigkeit • Neuronale Netze haben im Gegensatz zu herkömmlichen statistischen Methoden keine Probleme Zusammenhänge nonlinearer Art oder Interaktionseffekte zwischen mehreren Variablen zu erfassen • In diesem Zusammenhang spricht man auch vom Erlernen beliebiger Abbildungen • Große Anzahl an Freiheitsgraden • Es existieren zahlreiche Parameter, die die Arbeitsweise von neuronelen Netzen beeinflussen können • Bedingt durch die hohe Lernfähigkeit und erfassung nonlinearer Zusammenhänge • Dies kann allerdings auch zu Probleme führen • Große Anzahl an Freiheitsgraden • Viele frei variierbare Parameter ermöglichen die Simulation jeder menschlichen Verhaltensweise • Allerdings kann dies dazu führen dass neuronale Netze, welche menschliches Verhalten erklären sollen, durch Variation verschiedener Parameter nicht wiederlegbar sind (man spricht hier auch von einer Immunisierungsstrategie) • Trifft nur auf neuronale Netze zu, welche menschliches Verhalten erklären sollen • Neuronale Netze, die konkrete Anwendungsprobleme lösen sollen, sind von diesem Kritikpunkt nicht betroffen • Fragwürdige biologische Plausibilität • Bezieht sich ebenfalls nur auf Netze zur Erklärung der funktionsweise des menschlichen Gehirns • Viele Netze wiedersprechen biologischen Grundannahmen und sind zur Erklärung nur bedingt geeignet • Beispiel: Rückwärtsausbreitung bei der Backpropagation-Lernregel • Großer Rechenaufwand • Herkömmliche Methoden besitzen oftmals geringeren Rechenaufwand und erzeugen genaueren Output • Trifft nur auf neuronale Netze zu die ein konkretes Anwendungsproblem lösen sollen http://www.neuronalesnetz.de/nnbilder/large/cm_ei genschaften_large.gif Konstruktion eines neuronalen Netzes • Bei der Konstruktion eines neuronalen Netzes geht man in folgenden Schritten vor: 1. 2. 3. 4. 5. 6. 7. Anzahl und Typ der benötigten Neuronen festlegen Verbindungen zwischen Neuronen festlegen Gewichte der Kanten initialisieren Eine Menge an Beispielpaaren auswählen (Eingabe- und Zielmuster) Reihenfolge festlegen, in welcher die Eingaben dem Netz dargeboten werden Für jedes Beispiel Differenz zwischen tatsächlicher und gewünschter Ausgabe ausrechnen Gewichte der Kanten anpassen (Lernalgorithmus) • Neuronale Netze neigen meist dazu, die Trainingsdaten auswendig zu lernen. Um dieses „overfitting“ zu vermeiden wird folgende einfache Strategie verfolgt: • Den Fehler Bestimmen • Das Training beenden, wenn der Fehler nicht weiter fällt • Ein vergleich von Netzen kann hier mittels eines Testdatensatzes erfolgen, welcher dem Netz unbekannt ist (Leave-k-out) • http://de.wikipedia.org/wiki/Neuronales_Netz • http://cs.unimuenster.de/Studieren/Scripten/Lippe/wwwnnscript/startseite.html • http://www.neuronalesnetz.de/ • http://www.grundstudium.info/neuro/Neuronale_Netze.php • http://www-user.tu-chemnitz.de/~stj/lehre/ki09_10.pdf • Lawrence, Jeanette: Neuronale Netze • Mainzer, Klaus: KI – Künstliche Intelligenz • Patterson, Dan: Künstliche Neuronale Netze 2. Auflage • Lämmel, Uwe; Cleve, Jürgen: Künstliche Intelligenz • Luger, Georg F.: Künstliche Intelligenz