Neuronale Netze Folien, Aufgaben sind unter www.computer-networking.de\~glaeser zu finden.

Slides:



Advertisements
Ähnliche Präsentationen
Perceptrons and the perceptron learning rule
Advertisements

Eine dynamische Menge, die diese Operationen unterstützt,
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
4. Konzepte des Konnektionismus – Theorie Künstlich Neuronaler Netze
Zugehörigkeitsfunktion (Wahrheitsfunktion) m
Übersicht zu Verfahren des Soft Computing
Genetische Algorithmen für die Variogrammanpassung
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2012.
Simulated Annealing Marco Block & Miguel Domingo Seminar : Maschinelles Lernen und Markov KettenSommersemester 2002.
Neuronale Netze Von Kay-Patrick Wittbold.
Konkurrentes Lernen AS-1
Genetische Algorithmen
Genetische Algorithmen
Sortierverfahren Richard Göbel.
Neuronale Netze Inhalt des Vortrags:
Heuristiken Automatic Problem Solving Institut für Informatik
Algorithmentheorie 6 – Greedy-Verfahren
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Genetische Algorithmen
Berechnen Sie den Output Vektor wenn der Input Vektor (1,1,-1,-1) ist.
Entscheidungsunterstützungssysteme IWI Frankfurt 2003
Uebung 02 NN Properties b1b1 b2b2 b3b3 b4b4 b INPUTINPUT OUTPUTOUTPUT w 1o w 2o w 3o w 4o w 11 w 12 w 13 w 14 w 21 w 22 w 23 w 24.
Uebung 03 Perceptron Training INPUTINPUT b OUTPUTOUTPUT w1w1 w2w2.
Datenstrom (Propagation) Fehlerstrom (Backpropagation)
zur Vorlesung Neuronale Netzwerke
PowerPoint-Folien zur 8. Vorlesung „Bionik II / Biosensorik“
Willkommen zu Vorlesung
Neuronale Netze Romy Kuttner, Franco Haberland.
Die Vorlesung am 14. Mai (Tag nach Himmelfahrt) wird auf Montag, den 17. Mai verlegt! Zeit: 16 Uhr Ort: Kiste Nächste Woche!!!!
Wismar Business School
Kennlinie Lichtregelung in JavaNNS Version 1.1
2. Biologische Neuronen Schematischer Aufbau einer Nervenzelle
Kombination von Tröpfchen- und Schalenmodell
The Emergence of a Language in an Evolving Population of Neural Networks Angelo Cangelosi, Domenico Parisi.
Vorlesung KDD, Ludwig-Maximilians-Universität München, WS 2000/ Andere Paradigmen Inhalt dieses Kapitels 8.1 Induktive Logik-Programmierung.
Neuronale Netzwerke am Beispiel eines MLP
Neuronale Netze (Mitchell Kap. 4)
Neuronale Netze 2 (Mitchell Kap. 4)
Histogramm/empirische Verteilung Verteilungen
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Neuronale Netze Teil II.
Why connectionism? Backpropagation Netzwerke
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Adaptive Systeme-2 Grundlagen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Polynome und schnelle Fourier-Transformation
Neuronale Netze.
Neuronale Netze Nachtrag Perzeptron
Neuronale Netze (1) Isabel Schwende
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.

Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
ANN - Simulator Rainer Trummer Ferdinand Schober Christian Spielberger.
Vom Neuron bis zur Boltzmann Maschine Miguel Domingo & Marco Block Seminar : Maschinelles Lernen und Markov KettenSommersemester 2002.
Geoinformationssysteme
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Organisation Referate Materialien Dritter Termin Workshop 27.Oktober 2010 Projektseminar WS 09/10 Konnektionistische Sprachverarbeitung 1.
Emanuel Mistretta Lukas Schönbächler
 Präsentation transkript:

Neuronale Netze Folien, Aufgaben sind unter www.computer-networking.de\~glaeser zu finden.

Neuronale Netze Neuronale Netze A Nachbildung des Gehirns Gehirn = Viele Knoten, von denen viele untereinander verbunden / vernetzt sind durch elektrische Signale erregen sich die Knoten gegenseitig Erregungsstärke von A durch die anderen Knoten durch die Stärke der Verbindungen bestimmt Stärke der Verbindung = gespeicherte Information ! Oft genutzte Verbindungen werden starke Verbindungen = Lernen

Neuronale Netze Verwendung : Mustererkennung / Klassifikation Muster A Muster B Muster C ... Neuronales Netz verrauschtes Muster (Aktienkurs)

oi = O(ai) oi = s( neti-q ) Neuronale Netze Nettoinput e1 w1i e2 oi Outputfunktion oi = O(ai) Output ... Neuronenfunktion oi = s( neti-q ) wni en Gewichte Input Stufenfunktion Schwellwert

{ Neuronale Netze Outputfunktion O O kann eine Stufenfunktion sein O Os(x) = 1 wenn x  0 0 wenn x < 0 1 x O kann eine Fermifunktion sein O 1 Of(x) = 1 / ( 1+exp(-x) ) x

Neuronale Netze Beschreibung von Netzwerktypen Topologie Lernregel Neuronenfunktion „Betriebsweisen“ der Netze Lernphase überwachtes Lernen e und o vorgegeben nicht - überwachtes Lernen nur e Ausführungsphase

Neuronale Netze Perzeptron e1 Topologie: o1 e2 o2 e3 einlagig = nur eine Neuronenschicht

{ Neuronale Netze Perzeptron Outputfunktion ist die Signumsfunktion: +1 wenn x  0 sgn(x) = -1 sonst Outputfunktion: oi = sgn(neti - q) Lernregel ( = wie komm‘ ich an die Gewichte ): Hebbsche Regel: Lernrate Soll Wert 0 < h  1

Neuronale Netze Was kann ein Perzeptron ? Klassifizierung anhand von Merkmalen Beispiel: Perzeptron mit zwei Eingängen (Merkmalen) e1 w1 o w2 e2

Neuronale Netze Was kann ein Perzeptron ? (Fortsetzung) o = sgn( w1 e1 + w2 e2 - q) => Unterscheidung in zwei Klassen möglich: o = -1 Klasse A o = +1 Klasse B e2 Grenze zwischen A und B: sgn „kippt um“ sgn(x) kippt um, wenn x = 0 e1 sgn( w1 e1 + w2 e2 - q) = 0 ergibt Geradengleichung: e2 = - w1/w2 e1 + q / w2

Neuronale Netze Was kann ein Perzeptron ? (Fortsetzung) ergibt Geradengleichung: e2 = - w1/w2 e1 + q / w2 Für alle Punkte (e1 ,e2) mit e2 kleiner als das e2 wie oben ausgerechnet, wird das Argument von sgn negativ, d.h. o = -1, d.h. Klasse A A B e1 e2

Neuronale Netze Was kann ein Perzeptron ? Das Perzeptron kann anhand von Merkmalen eine Unterscheidung in Klassen vornehmen Mit m Ausgangselementen können 2m Klassen unterschieden werden Was kann ein Perzeptron nicht ? n Merkmale bilden im n - dimensionalen Merkmalsraum eine n-1 dimensionale Ebene, die eine Zuordnung der Merkmalsteil- räume zu Klassen erlaubt. Da es sich immer um Ebenen handelt, spricht man von linear separierbaren Klassen, wenn sich die zugehörigen Merkmals- teilräume durch die Ebenen trennen lassen

Neuronale Netze Was kann ein einlagiges Perzeptron nicht ? e2 A e1 e2 B A e2 B B A A e1 e1 linear separierbar nicht linear separierbar nicht linear separierbar

Neuronale Netze Was kann ein Perzeptron nicht ? XOR Problem e2 (0,1) T (1,1) F nicht linear separierbar T F (0,0) (1,0) e1

Neuronale Netze Mehrlagige neuronale Netze wkl wij wjk e1 o1 e2 o2 ... ... eN oN j i l k Neuronenfunktion:

Neuronale Netze Mehrlagige Perzeptrons Mehrlagige Perzeptrons sind in der Lage hinreichend komplexe Merkmalsregionen zu bilden, mit denen beliebige Klassen von Eingabemustern klassifiziert werden können. Problem beim Lernen: für innere Lagen (hidden layers) kann kein Fehler zwischen gewünschtem und tatsächlichem Output angegeben werden

Neuronale Netze Mehrlagige Perzeptrons Lösung Backpropagation Algorithmus Outputfehler des mten Neurons Lernregel: wmn(t + 1) = wmn(t) + h dm xn m liegt weiter zum Ausgang hin ! h > 0

Backpropagation Algorithmus Neuronale Netze Backpropagation Algorithmus a) Alle Gewichte = zufällige Werte: -0.1 < wmn < 0.1 b) Anlegen Musterinput e, Messen von c) Bestimmen Fehler di der Output Schicht Ableitung von sF ! e) Bestimmen der Gewichte zwischen Output Schicht und innerer Schicht Rekursive Berechnung der Fehler dn der nächst inneren Schichten m läuft in der Schicht näher am Ausgang

Bei der Berechnung der „Deltas“ für jedes Neuron einer Schicht müssen in einem Iterationsschritt zuerst die neuen Gewichte berechnet werden, und dann erst mit den neuen Gewichten die Deltas

Neuronale Netze Fermi Funktion Ableitung der Fermi Funktion

a b c wba11 netc1 = ob1* wcb11+ ob2* wcb12 1 wcb11 1 c1 = sFermi‘(netc1) *(osoll- oc1) wba21 1  wcb11= h * c1 * ob1 wcb12 wba12  wcb12= h * c1 * ob2 2 2 wba22 b1= sFermi‘(netb1) *c1 * wcb11 b2= sFermi‘(netb2) *c1 * wcb12 ob1=sFermi(oa1 * wba11 + oa2 * wba12)  wba11= h * b1*oa1 ob2=sFermi(oa1 * wba21 + oa2 * wba22) a1= sFermi‘(neta1) * (b1 * wba11+ b2 * wba21) oc1= sFermi( ob1* wcb11+ ob2* wcb12)

Genetischer Algorithmus Vermeidung von lokalen Minima Error Gewicht Maximum lokales Minimum globales Minimum

1. Erzeugung einer Population sind die Gewichte alle Gewichte = Vektor beliebige, zufällige Werte ...

2. Selektion aus dem Pool werden zufällig zwei Paar geholt. Von jedem Paar wird der Vektor mit dem geringeren error ausgewählt also bleiben 2 Vektoren übrig = Elternpaar -“has been proven to be extremly useful for speeding up the convegence of the genetic search process“

3. Kreuzung (Crossover) 2 Elternvektoren brüten 2 Kindvektoren aus (bei jeder Kombination findet eine Kreuzung nur mit einer festen Wahrscheinlichkeit p statt) Wenn Kreuzung stattfindet, dann mit einer 1/3 Wahrscheinlichkeit nach jeweils einer der folgenden 3 Methoden:

Shuffle Crossover: nach einer Binomialverteilung wird eine Zahl k von zu vertauschenden Gewichten in dem Vektorenpaar bestimmt. Dann werden zufällig k Gewichte vertauscht w = mittlere Wahrscheinlichkeit das zwei Gewichte vertauscht werden (freier Parameter) Häufigkeit von k k i = Index des Gewichts im Vektor p = Zahl Gewichte im Vektor

P p=0,9 p=0,1 p=0,5 Anzahl Täusche

b) Arithmetic Crossover: Für das Vektorpaar wird eine Zufallszahl w zwischen 0 und 1 gezogen Die beiden Kinder sind Linearkombination der Eltern mit w als Wichtung: 1. Kind: w i,k + (1-w) j,k 2. Kind: (1-w) i,k + w j,k

c) Single-point Crossover: Für das Vektorpaar wird ein Integer I gezogen [1, p-1] die Vektorkoeffizienten unterhalb von I werden getauscht

3. Mutation Generationen G = 1,2,..., G* Wahrscheinlichkeit, das ein Vektor mutiert wird: 0,15 + 0,33/G Mutation:

G = aktuelle Generation, G* = maximale Generation r1 und r2 zufällig aus gleichverteiltem Intervall [0,1] s zufällig von standard normalverteilung b = 2 steuert den Grad von nicht Uniformität der Mutation erlaubt stärker lokalisierte Suche bei höheren Generationen

Demo zur Mutation s = findgen(100.)/100. sigma = 0.5 gauss = exp (-s^2/sigma^2) plot, s, gauss,XTitle = "s", YTitle = "wahrscheinlichkeit" s = 0.2 r2 = 0.8 G = FINDGEN(100) GStern = 100. b = 1. mutation = s * (1.-r2^((1.-G/GStern)^b)) plot, G, mutation, XTitle = " generation", YTitle = " delta Gewicht "

4. Auswahlturnier Innerhalb der „Familie“ (2 Vektoren und 2 Kinder) überleben die 2 mit dem geringsten Error -> kommen in die nächste Generation Die Eltern wandern in den Pool zurück (sie können wieder ausgewählt werden) Der obige Prozess ab 2. (Selektion) wird wiederholt bis die neue Generation mit N* Vektoren bevölkert ist

Vorgehen: Bilden einer Population Pärchenbildung / Crossover Mutation der Kinder Selektion innerhalb der Familie Nächste Generation Elitism

5. Elitism = Elitedenken Wenn der beste Vektor der alten Generation besser ist, als der beste Vektor der neuen Generation, darf er den schlechtesten Vektor der neuen Generation ersetzen

Simulated Annealing Vermeidung von lokalen Minima Error Gewichte Maximum lokales Minimum globales Minimum

Analogie mit Abkühlen Festkörper langsames Abkühlen schnelles Abkühlen lokales Energieminimum globales Energieminimum

„Statt immer bergab zu gehen, versuche den größten Teil der Zeit bergab zu gehen“ Anzahl der Iterationen: Lösungsvektor und Errormetrik initialisieren:

Errormetrik = Zahl der Beispiele = output Vektor von Beobachtung i = Soll - output Vektor von Beobachtung i

Temperaturbestimmung: T(j) j

Lösungsvektor zufällig „stören“ (perturbate) ist KEIN Vektor sondern ein double Fehlerwert zu Metropolis Verhältnis: f > 0 = nur vorgeschlagen, = akzeptiert

Akzeptierte neuen Vektor - wenn - oder wenn P(j) ist gleichverteilte Zufallszahl zwischen 0 und 1 (mit mit T quer als „ausreichend“ großer von j unabhängiger Konstante würde das System sogar mit Sicherheit das globale Minimum finden – aber zu langsam)

j M(j) Wahrscheinlichkeit für Zurückweisung Wahrscheinlichkeit für Akzeptieren j

Warum Faktor f ? hängt von Anzahl der Output Knoten ab M(j) M(j) j

mit mit T quer als „ausreichend“ großer von j unabhängiger Konstante würde das System sogar mit Sicherheit das globale Minimum finden – aber zu langsam

errorMetric = 20 M = exp(- errorMetric /T) PLOT, j, M, thick = 4 errorMetric = 40 OPLOT, j, M, thick = 4,color =4 TEK_COLOR Tquer = 100 j = FINDGEN(100)+1 T = Tquer / (1+ALOG(j)) PLOT, j, T, color = 3, thick=4 Tgg = Tquer / ALOG(1+ j) OPLOT, j, Tgg, color = 4 errorMetric = 20 M = exp(- errorMetric /T) PLOT, j, M, thick = 4 Mgg = exp(- errorMetric /Tgg) OPLOT, j, Mgg, color = 4

{ oi = O(ai) Neuronale Netze „Winner takes all“ Ansätze für die Output Funktion: oi = O(ai) einfach: oi = s( neti -q ) { O‘(ai) wenn ai = max(...,ak ,...) Winner takes it all: oi = 0 sonst

Neuronale Netze Adaline (adaptive linear neuron) Abwandlung der Perzeptron Lernregel: n ist die Anzahl Eingänge (und Gewichte) des iten Neurons statt (ist - output) wird (ist - Aktivierung) benutzt: (Delta Regel: ) Lineare Transferfunktion: s = 1

Neuronale Netze Adaline Vorteile: es lernen auch jene Elemente weiter, deren Output schon den richtigen Wert liefern => „Festigung“ der erworbenen Fähigkeiten, denn Elemente mit Aktivitäten dicht am Schwellwert werden so verändert, daß sie stabilere Entscheidungen liefern (d.h. weiter vom Schwellwert entfernt).

w11 e21 e11 w1 o1 w21 w12 o2 w2 e12 w22 e22 e21= SFermi(nettoInput); nettoInput = e12*w21+e11*w11 wneu= wold + eta * delta * e delta = osoll-oist w12 neu = w12 alt + eta * delta22 *e22 delta22 = (delta1 * w1 +delta2*w2)* S‘(e22)

e1 e2 o 0,7 1 0,1 0,3 w1 nettoInputNew = nettoInput = e1w1+e2w2 e1 o = S(nettoInput) 0,07+0,07 = 0,14 S(0,14) = 0 nettoInputNew = -0,7*0,14+ 0,7*0,1=0,028 e1 o w2 e2 wneu= wold + eta * delta * e delta = osoll-oist w1 = 0,1; w2 = 0,1 w1neu = 0,1 + 0,2*1*(-1)*0,7 = 0,1-0, 14=-0, 04 e1 e2 o 0,7 1 0,1 0,3

Eingangs neuron Ausgangs neuron Gewicht w