kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor...

19
Dipl.-Inform. Martin Lösch Labor Wissensrepräsentation kurze Wiederholung der letzten Stunde: Neuronale Netze Dipl.-Inform. Martin Lösch [email protected] (0721) – 608 45944

Transcript of kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor...

Page 1: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor Wissensrepräsentation

kurze Wiederholung der letzten Stunde: Neuronale Netze

Dipl.-Inform. Martin Lösch

[email protected] (0721) – 608 45944

Page 2: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Übersicht •  Neuronale Netze

–  Motivation –  Perzeptron

•  Grundlagen für praktische Übungen

•  Aufgaben der letzten Stunde

2

Page 3: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

NEURONALE NETZE

3

Page 4: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Motivation •  menschliches Gehirn und PC-Rechner komplementär in

ihren Stärken und Schwächen •  Rechner sollen Vorteile des menschlichen Gehirns

ebenfalls nutzen –  hohe Parallelisierung –  Robustheit –  etc.

•  Gehirn besteht aus einzelnen Gehirnzellen (Neuronen), die durch Vernetzung erst Macht gewinnen

4

Page 5: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Aufbau Perzeptron •  einzelne künstliche Nervenzelle •  verarbeitet Eingabesignale zu einzelnem Ausgabesignal •  Aufbau:

5

. . .

x1

xn

x0=1 w1

x2 w2

wn

w0

Σ

o = { 1 wixi ≥θi=1

n

∑−1 sonst

x – Eingabevektor t – Target (Soll-Ausgabe)

w – Gewichtsvektor o – Output (Ist-Ausgabe)

Bias – Trick

x0 =1w0 = −θ

Page 6: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Perzeptron verstehen •  geometrische Interpretation: Trennhyperebene (in R2:

Gerade) •  Gewichte definieren genaue Lage der Ebene (Gewichte =

Normale der Ebene) •  Gewichtete Summe = Skalarprodukt aus Eingaben und

Gewichtsvektor

6

p1 • Gewichtsvektor > 0p2 • Gewichtsvektor > 0n1 • Gewichtsvektor < 0n2 • Gewichtsvektor < 0

Page 7: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Lernen - Geometrische Interpretation

Hilfsmenge′ N = ′ x | ′ x = −x,∀x ∈ N{ }

Neues Lernproblemxw > 0 ,∀x ∈ ′ N ∪ P Im Beispiel: alle xi aus P

Page 8: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Perzeptron – Lernalgorithmus

Start: Gegeben Lerndatenmenge P ∪ N Der Gewichtsvektor w(0) wird zufällig generiert. Setze t:=0.

Testen: Ein Punkt x in P ∪ N wird zufällig gewählt. Falls x ∈ P und w(t)⋅x > 0 gehe zu Testen Falls x ∈ P und w(t)⋅x ≤ 0 gehe zu Addieren Falls x ∈ N und w(t)⋅x < 0 gehe zu Testen Falls x ∈ N und w(t)⋅x ≥ 0 gehe zu Subtrahieren

Addieren: Setze w(t+1) = w(t)+x. Setze t:= t+1. Gehe zu Testen.

Subtrahieren: Setze w(t+1) = w(t)-x. Setze t:=t+1. Gehe zu Testen.

Page 9: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

AUFGABEN AUS LETZTER STUNDE

9

Page 10: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Aufgabe 1: Einrichtung •  Einrichtung der Library für die weitere Verwendung

–  Download –  Entpacken –  in Visual C++ geeignet einbinden

•  von allen erfolgreich beendet?

10

Page 11: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Aufgabe 2: Perzeptronen (1) a)  Verwende die Klasse Perceptron der Flood-Library, um

von Hand einen logischen AND-Operator zu programmieren (2 Eingänge, 1 Ausgang, 1&1=1, 1&0=0, 0&1=0, 0&0=0).

•  von allen erfolgreich beendet? •  mögliche Lösung:

11

AndOp = new FL::Perceptron(2); FL::Vector<double> weights(2); AndOp.set_activation_function(FL::Perceptron::Threshold); … AndOp->set_bias(-0.75); weights[0] = 0.5; weights[1] = 0.5; AndOp->set_synaptic_weights(weights);

FL::Vector<double> inputs(2); inputs[0] = INPUT1; inputs[1] = INPUT2; double outputsignal = AndOp->calculate_output(inputs);

Page 12: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Aufgabe 2: Perzeptronen (2) •  Wie kommt man zu den Parametern?

–  Ausprobieren

–  Grafisch überlegen (Gewichtsvektor = Normalenvektor)

–  Gleichungssystem aufstellen:

12

1 · w1 + 1 · w2 = w1 + w2 > θ

0 · w1 + 1 · w2 = w2 < θ

1 · w1 + 0 · w2 = w1 < θ

Page 13: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Aufgabe 2: Perzeptronen (3) b)  Erweitere die Lösung von Teilaufgabe a), so dass

–  der Benutzer die Anzahl der Eingaben auswählen kann und

–  neben dem AND-Operator auch ein OR-Operator realisiert wird.

•  alle erfolgreich? •  mögliche Lösung für AND:

13

AndOp = new FL::Perceptron(numberOfInputSignals); FL::Vector<double> weights(numberOfInputSignals); … double andInputWeight = 1.0 / numberOfInputSignals; double andThreshold = 1.0 – (andInputWeight / 2.0);

AndOp->set_bias(-andThreshold); for (int i=0; i<numberOfInputSignals; i++){

weights[i] = andInputWeight; } AndOp->set_synaptic_weights(weights);

Page 14: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Aufgabe 2: Perzeptronen (4) •  mögliche Lösung für AND:

•  mögliche Lösung für OR:

14

AndOp = new FL::Perceptron(numberOfInputSignals); FL::Vector<double> weights(numberOfInputSignals); … double andInputWeight = 1.0 / numberOfInputSignals; double andThreshold = 1.0 – (andInputWeight / 2.0);

AndOp->set_bias(-andThreshold); for (int i=0; i<numberOfInputSignals; i++){

weights[i] = andInputWeight; } AndOp->set_synaptic_weights(weights);

double orInputWeight = 1.0 / numberOfInputSignals; double orThreshold = orInputWeight / 2.0);

OrOp->set_bias(-orThreshold); for (int i=0; i<numberOfInputSignals; i++){

weights[i] = orInputWeight; } OrOp->set_synaptic_weights(weights);

Page 15: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

XOR-Aufgabe (Aufgabe 2: Perzeptronen)

c)  Für den Fall von genau 2 Eingängen: Realisiere einen XOR-Operator unter Einsatz mehrerer Perzeptronen.

Lösung: Mind. 2 Perzeptronen zur Erkennung von Teillösungen, mind. 1 Perzeptron zur Kombination der Teillösungen.

15

Page 16: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Aufgabe 2: Perzeptronen (5) c)  Für den Fall von genau 2 Eingängen: Realisiere einen

XOR-Operator unter Einsatz mehrerer Perzeptronen.

•  alle erfolgreich? •  mögliche Lösung:

16

FL::Perceptron xorUL(2), xorLR(2), xorOut(2);

double bias = -0.25; FL::Vector<double> xulWeights(2), xlrWeights(2), xoroutWeights(2);

xulWeights[0] = -0.5; xulWeights[1] = 0.5;

xlrWeights[0] = 0.5; xlrWeights[1] = -0.5;

xoroutWeights[0] = 0.5; xoroutWeights[1] = 0.5;

Page 17: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Aufgabe 3: Netz von Perzeptronen •  Die Verknüpfung mehrerer Perzeptronen

zu einem Netz erlaubt die Lösung auch komplexerer Probleme als nur die linear separierbaren.

•  Löse mit Hilfe eines Netzes von mehreren Perzeptronen das dargestellte Klassifika- tionsproblem (2 diskrete Eingänge, mögliche Werte: {0, 1, 2, 3}).

•  Aufbau der Lösung: 2 Eingaben, das eigentliche Netz von Perzeptronen, pro zu erkennender Klasse je ein Ausgabe-Perzeptron.

17

x1

x2 Aufgabe

Page 18: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor Wissensrepräsentation

Fragen?

18

Page 19: kurze Wiederholung der letzten Stunde: Neuronale Netze...Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze Perzeptron – Lernalgorithmus

Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze

Literatur •  Tom Mitchell: Machine Learning. McGraw-Hill, New York,

1997. •  M. Berthold, D.J. Hand: Intelligent Data Analysis. •  P. Rojas: Theorie der Neuronalen Netze – Eine

systematische Einführung. Springer Verlag, 1993. •  C. Bishop: Neural Networks for Pattern Recognition.

Oxford University Press, 1995. •  Vorlesung „Neuronale Netze 2006“: http://isl.ira.uka.de/ •  siehe auch Skriptum „Ein kleiner Überblick über

Neuronale Netze“: http://www.dkriesel.com/