kurze wiederholung der letzten stunde: neuronale netze...dipl.-inform. martin lösch labor...
Post on 11-May-2021
1 Views
Preview:
TRANSCRIPT
Dipl.-Inform. Martin Lösch Labor Wissensrepräsentation
kurze Wiederholung der letzten Stunde: Neuronale Netze
Dipl.-Inform. Martin Lösch
martin.loesch@kit.edu (0721) – 608 45944
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
Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze
NEURONALE NETZE
3
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
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 = −θ
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
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
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.
Dipl.-Inform. Martin Lösch Labor „Wissensbasierte Systeme“ Wiederholung Neuronale Netze
AUFGABEN AUS LETZTER STUNDE
9
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
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);
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 < θ
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);
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);
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
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;
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
Dipl.-Inform. Martin Lösch Labor Wissensrepräsentation
Fragen?
18
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/
top related