Neuronale Netze

Werbung
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
Herunterladen