Beruflich Dokumente
Kultur Dokumente
Neuronale Netze
1
Einführung (1)
Ein künstliches neuronales Netz ist vom Konzept her eine Realisierung
von miteinander verschalteten Grundbausteinen, sogenannter Neuro-
nen, welche in rudimentärer Form die Vorgänge im biologischen Vor-
bild, unserem Gehirn, nachahmen. Wichtige Eigenschaften sind:
• Lernfähigkeit,
• Parallelität,
• Verteilte Wissensrepräsentation,
• Hohe Fehlertoleranz,
• Assoziative Speicherung,
• Robustheit gegen Störungen oder verrauschten Daten,
2
Einführung (2)
3
Einführung (3)
4
Einführung (4)
5
Einführung (5)
Eingabe Ausgabe
X ω1j Übertragungs- Aktivierungs- Ausgabe-
1
funktion funktion funktion
Schwellwert
X ωnj
n
Gewichte
net
net i j
oi w i,j oj
a aj
i
Neuronale Netze waren für längere Zeit auf Grund der “Lernprobleme”
aus der Mode gekommen. Seit ca. 2005 erleben neuronale Netzwer-
ke eine Wiedergeburt, da sie bei herausfordernden Anwendungen oft
bessere Ergebnisse als konkurrierende Verfahren liefern.
7
Einführung (7)
o
z σ
x
a + b
x y dot
x y z
8
Einführung (8)
9
Einführung (9)
10
Einführung (10)
• Mit zwei tiefen Netzen, eins für die Vorhersage guter Züge und eins
für den Wert einer Stellung, ist es im März 2016 gelungen, einen
Go-Meister zu schlagen. Hardware: 1202 CPUs mit 176 GPUs.
• Facebook sagt, das neue System Deep Text versteht Texte ge-
nauso gut wie Menschen.
• Google Photo oder die Translater-App, auf Clustern trainiert, lau-
fen jetzt auf dem Smartphone.
• Immer mehr Firmen entwickeln Empathiemodule.
• Google hat gerade für Neuronale Netze eine Tensor Processing
Unit (TPU) entwickelt.
• In der MKL (Mathematical Kernel Library) von Intel gibt es jetzt
ein Modul DNN (Deep Neural Network).
11
Einführung (11)
12
Einführung (12)
Mathematisch heißt das, der Weg von der Eingabe eines Neurons zur
Eingabe des damit verbundenen Neurons wird durch sehr einfache
Funktionen beschrieben.
14
Mathematisches Modell (2)
oi = fout(ai ).
15
Mathematisches Modell (3)
Auf diese Weise werden die “Zustände” geändert, bis ein stabiler (und
hoffentlich erwünschter) Endzustand eintritt, welcher in gewisser Wei-
se das Ergebnis der Berechnungen eines neuronales Netzes darstellt.
16
Mathematisches Modell (4)
oj = fout(aj ) = aj
• Propagierungsfunktion lautet
X
netj = oiwi,j
i
oj = aj = fact(netj , Θj )
17
wobei für fact eine Stufenfunktion, der Tangens Hyperbolicus, die
logistische Funktion oder zur Zeit besonders die ReLU-Funktion
(rectified linear unit) populär sind.
Mathematisches Modell (5)
Stufenfunktion:
(
1 falls netj ≥ Θj
oj = fact (netj , Θj ) ==
0 sonst
Tangens Hyperbolicus
oi = tanh(c(neti − Θi)).
18
Mathematisches Modell (6)
Aktivierungsfunktionen
1.5 Stufenfunktion
Tangens Hyperbolicus
Logistische Funktion
1
0.5
output
-0.5
-1
1.4
1.2
1
0.8
x if x > 0
output
f (x) = 0.6
a otherwise 0.4
0.2
-0.2
-1.5 -1 -0.5 0 0.5 1 1.5
input
n4 0.5
Aus der folgenden Tabelle ist die Funktionsweise des Netzes ersicht-
lich:
o1 o2 net3 Θ3 o3 net4 Θ 4 o4
0 0 0 1.5 0 0 0.5 0
0 1 1 1.5 0 1 0.5 1
1 0 1 1.5 0 1 0.5 1
1 1 2 1.5 1 0 0.5 0
22
Mathematisches Modell (10)
n5 0.5
Beschränkt man sich auf
1 1
ebenenweise verbundene
feedforward-Netze, so wird
n3 0.5 n4 0.5
für die XOR-Funktion ein
weiterer verdeckter Knoten 1 -1 -1 1
benötigt.
n1 n2
23
Mathematisches Modell (11)
Eingabeschicht: o1, o2
Aktivierungsfunktion: tanh(x) n_o θ_ο
net1 = o1w11 + o2w21 + Θ1 w_1o w_2o
net2 = o1w12 + o2w22 + Θ2
o′1 = tanh(net1) ’
n_1 θ_1 ’
n_2 θ_2
o′2 = tanh(net2)
w_11 w_12 w_21 w_22
neto = o′1w1o + o′2w2o + Θo
oo = tanh(neto ) n_1 n_2
Ein neuronales Netz ist ein Graph mit Kanten und Knoten. Neuronen
bzw. Zellen sind aktive Knoten oder Berechnungseinheiten, die lokal
auf Eingaben reagieren und Ausgaben produzieren, die über die Kanten
weiter gegeben werden.
• Verbindungsmatrix w[Ebene][Ausgangsneuron][Eingangsneuron]
• Schwellwertmatrix Θ[Ebene][N euron]
• Eingangsmatrix net[[Ebene][N euron]
Oft kommt bei ein weiterer Index für das Eingabemuster hinzu.
25
Darstellung von neuronalen Netzen (2)
27
Darstellung von neuronalen Netzen (4)
6 7 6 7
3 4 5 3 4 5
28
Darstellung von neuronalen Netzen (5)
Eingabe
Ausgabe Eingabe z.B. Pixel
x ω11
1 eines Bildes (Ge-
o sicht, Zahl, Tier
1
x ...
i ω1i
o
m Ausgabe ein Neuron
x ω1n pro Name, pro Zahl,
n
Art des Tiers ...
30
Darstellung von neuronalen Netzen (7)
31
Lernen (1)
Wie werden gute Parameter bestimmt oder woher “weiß” ein Netz,
welches Neuron bei welchem Bild aktiv sein soll?
32
Lernen (2)
Lernverfahren
Meist wird die Modifikation der Stärke von Verbindungen wi,j verwen-
det, da diese Verfahren am einfachsten sind und die Entwicklung bzw.
das Löschen von Verbindungen mit eingeschlossen werden kann.
Hebbsche Lernregel
Die einfachste Lernregel, die heute noch Grundlage der meisten Lern-
regeln ist, wurde 1949 von Donald O.Hebb entwickelt.
Wenn Neuron j eine Eingabe von Neuron i erhält und beide gleichzei-
tig stark aktiviert sind, dann erhöhe das Gewicht wij , die Stärke der
Verbindung von i nach j.
∆wij = ηoiaj
Im folgenden werden wir uns aus Zeitgründen nur eine Art von Netz
mit einer Lernregel genauer ansehen, ein feedforward Netz in der Art
des multiplayer Perzeptrons mit der Backpropagation-Lernregel.
35
Perzeptron (2)
Aufbau:
• Ziel ist es, für ein gegebenes Bild p die Funktionen, die die Ausga-
be op des Netzes berechnen, so zu bestimmen, dass z.B. nur der
Knoten, der der dem Bild entsprechenden Ziffer zugeordnet ist,
einen Wert 1 hat und alle anderen Ausgabeknoten einen Wert 0
haben, was dann die gewünschten Ausgabewerte tp für dieses Bild
wären (es gibt auch andere Zuordnungen).
∗ http://yann.lecun.com/exdb/mnist/
37
Backpropagation-Regel (2)
• Ein Maß für die Abweichung des berechneten von dem gewünsch-
ten Ergebnis ist die Summe der quadratischen Abweichungen über
alle Bilder p und alle Ausgabeneuronen j: das Fehlerfunktional
P
X 1 nX
out 2
E= Ep Ep = op,j − tp,j
p=1 2 j
38
Backpropagation-Regel (3)
Definition (Ausgleichsproblem)
Gegeben sind n Wertepaare (xi, yi), i = 1, . . . , n mit xi 6= xj für i 6=
j. Gesucht ist eine stetige Funktion f , die in einem gewissen Sinne
bestmöglich die Wertepaare annähert, d.h. dass möglichst genau gilt:
f (xi ) ≈ yi für i = 1, . . . , n.
39
Backpropagation-Regel (4)
Definition (Fehlerfunktional)
Gegeben sei eine Menge F von stetigen Funktionen sowie n Wertepaa-
re (xi, yi), i = 1, . . . , n. Ein Element von f ∈ F heißt Ausgleichsfunktion
von F zu den gegebenen Wertepaaren, falls das Fehlerfunktional
n
(f (xi ) − yi)2
X
E(f ) =
i=1
für f minimal wird, d.h. E(f ) = min{E(g)|g ∈ F }. Die Menge F nennt
man auch die Menge der Ansatzfunktionen.
Pp
Ist die Funktion f (xi ) linear in den Parametern, also f (x) = k=1 ak gk (x),
so lässt sich das Minimum des Fehlerfunktionals über die Nullstelle der
Ableitungen von E(f ) durch Lösen einer linearen Gleichung für die Pa-
rameter ak bestimmen.
Jetzt:
41
Backpropagation-Regel (5)
Das Minimum kann nicht exakt bestimmt werden, sondern es wird ge-
sucht, in dem z.B. die Parameter entlang der negativen Steigung des
Fehlerfunktionals geändert wird ⇒ Backpropagation oder Gradienten-
abstiegsverfahren.
42
Backpropagation-Regel (6)
5
error
0
0 2 4 6 8 10 12 14 16
wi,j
Problem: Das funktioniert nur gut, wenn die Startwerte in der Nähe
eines guten Minimums sind.
43
Backpropagation-Regel (7)
Vor der Ableitung des Algorithmus ist eine Vereinheitlichung der No-
tation von Vorteil: Der Schwellwert-Wert eines Knotens wird interpre-
tiert als eine Verbindung zu dem Knoten von einem Konten mit dem
Ausgabewert 1 und einem Gewicht.
44
Backpropagation-Regel (8)
Eingabeschicht: o1, o2
Zur Berechnung der Ableitungen
net1 = o1w11 + o2w21 + w31
nochmal die Formal für das XOR-
net2 = o1w12 + o2w22 + w23
Problem mit 2 versteckten Kno-
o′1 = fact(net1)
ten (Schwellwerte werden Bias-
o′2 = fact(net2)
Konten und die Aktivierungsfunkti-
neto = o′1w1o + o′2w2o + w3o
on fact (x) = tanh(x) wird allgemein
oo = fact (neto )
geschrieben).
45
Backpropagation-Regel (8)
46
Backpropagation-Regel (8)
47
Backpropagation-Regel (9)
Für den ersten Faktor muss zwischen den Ebenen, in denen sich die
Knoten befinden, unterschieden werden.
1. j ist Index eines Ausgabeneurons. Dann gilt
∂Ep 1 ∂ nX out 2
− =− op,k − tp,k = (tpj − ooj ).
∂opj 2 ∂opj k
Der Gesamtfehler ist in diesem Fall
′
δpj = fact (netpj ) · (tpj − ooj )
48
Backpropagation-Regel (10)
49
Backpropagation-Regel (11)
( )
opj (1 − opj )(tpj − opj ) falls j Ausgabeneuron
δpj =
opj (1 − opj ) k δpk wjk falls j verdecktes Neuron
P
50
Backpropagation-Regel (12)
n1 n2 n3
W42
n4
W
74
n7
′
∆w4j = ηo4δj = ηo4(tj − oj ) ∗ f (netj ), j = 1, 2, 3
3
X ′
∆w74 = ηo7δ4 = ηo7(− δj w4j )f (net4)
j=1
51
Backpropagation-Regel (13)
52
Backpropagation-Regel (14)
∆pwij = ηopiδpj
3. Beginne mit der Prozedur von vorne, bis der Fehler (hoffentlich)
klein geworden ist, also die Eingaben gelernt wurden.
53
Backpropagation-Regel (15)
54
Backpropagation-Regel (16)
Probleme:
55
Backpropagation-Regel (17)
Noch zu beachten:
• Werden für jede Eingabe einzeln neue Gewichte berechnet, spricht
man von online-learning.
• Werden erst die Fehler für alle Eingaben aufsummeriert (so wie in
der Herleitung), heißt das batch-learning.
• Meist werden die Fehler für Blöcke von Eingaben und damit Kor-
rekturen für die Gewichte berechnet.
• Für die Initialisierung der Gewichte gibt es verschiedene Methoden,
am einfachsten sind gleichverteilte oder Gauß-verteilte Zufallszah-
len.
• Die Lernrate sollte kleiner werden mit kleiner werdendem Fehler.
• ... und vieles mehr.
56
CNN (1)
• Die meisten Daten liegen in “Gittern” vor (Bilder bei der Bilderken-
nung, 2 Dimensionen, Pixel, oder Töne bei der Spracherkennung,
diskrete Zeitabstände, Frequenzen, 1 Dimension)
57
CNN (2)
Idee:
a b c a b c a b c a b c a b c
58
CNN (3)
2 6 3 8
a b
1 5 5 5
c d 4 × 3 Eingangsbild,
3 7 1 2
ein 2 × 2 CNN-
Kernels mit den
Parametern a,b,c,d,
2*a+6*b+ 6*a+3*b+ 3*a+8*b+ die gelernt werden.
1*c+5*d 5*c+5*d 5*c+5*d
3 × 2 Ausgaben.
1*a+5*b+ 5*a+5*b+ 5*a+5*b+
3*c+7*d 7*c+1*d 1*c+2*d
59
CNN (4)
2 0 1 7 4 × 4 Eingangs-
bild, Max-Pooling
0 6 3 8 6 8
Schicht, Filter-
4 1 3 6 5 6 maske 2 und
Schrittgröße 2. 2 × 2
2 5 5 1 Ausgaben.
60
CNN (5)
Viele weitere Details sind für ein sinnvolles Netz notwendig, aber diese
Netze machen auch nichts anderes als eine Kurve an Daten
anzupassen.
61
Ausblick (1)
Verbesserungen:
“Intelligentere” Netze und Algorithmen + schnelle Hardware.
• weitere Formen von Faltungsnetzen / rekurrente Netze (mit Zeit-
abhängingkeit)/ Deep Belief Netze und viele mehr
• Stochastische Modelle
• Verbesserte Gradientenverfahren
• Genetische Algorithmen und anderes zur Netzverbesserung
• ...
• Graphikkarten
Es fehlen viele “Kleinigkeiten”, die als nächstes wichtig für eine aktu-
elle Anwendung, z.B. in der Objekterkennung wären, z.B.:
• Wie sind Faltungsnetze (CNN) in Detail aufgebaut?
• Welche Aktivierungsfunktion ist die geeignetste (LeakyReLU)?
• Welche Fehlerfunktion sollte gewählt werden (cross entropy)?
• Welchen Lernalgorithmus sollte man nehmen (Adam Algorithmus)?
• Was ist eine gute Initialisierung der Gewichte (Gauß-Verteilung)?
• Wie wird overfitting vermieden (Dropout/L2-Regularisierung/Batch-
Norm)?
• ...
Das Anpassen von Kurven an Daten ist nicht trivial, wenn nur
wenige Informationen über die Daten vorliegen, aber meist sehr
erfolgreich, wenn viele Daten zur Verfügung stehen!
63