Sie sind auf Seite 1von 64

10.

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)

Der Preis für diese Eigenschaften ist:

• Wissenserwerb ist nur durch “Lernen” möglich.


• Logisches (sequenzielles) Schließen ist schwer.
• Sie sind oft langsam und nicht immer erfolgreich beim Lernen.

Aus diesem Grunde werden Neuronale Netze nur dort angewandt, wo


genügend Zeit für ein Lernen zur Verfügung steht. Sie stehen in Kon-
kurrenz z.B. zu Vektorraum-Modellen oder probabilistischen Modellen.

Es gibt viele fertige Softwarepakete für Neuronale Netze, siehe z.B.


Liste unter http://de.wikipedia.org/wiki/Künstliches_neuronales_Netz

3
Einführung (3)

Ein Neuronales Netz


besteht aus verbundenen
Neuronen
(ca. 1010 − 1011 Neuro-
nen bei einem Menschen
mit ca. 1014 − 1015
Verbindungen).

Abbildung aus Wikipedia: https:// de.wikipedia.org/wiki/Neuronales Netz

4
Einführung (4)

Ein Neuron hat

• Dendriten, die die Eingaben einsammeln

• Soma, der Zellkörper

• Axon, welches die Ausgabe der Zelle weiterleitet, sich verzweigt


und mit den Dendriten nachfolgender Neuronen über Synapsen in
Kontakt tritt.

• Synapsen schütten Neurotransmitter aus, die anregend oder dämp-


fend wirken.

5
Einführung (5)

Ein Modell eines Neurons:

Eingabe Ausgabe
X ω1j Übertragungs- Aktivierungs- Ausgabe-
1
funktion funktion funktion

X ωij f prop net f act aj f out o j


i j

Schwellwert
X ωnj
n

Gewichte

Die Ausgabe führt zur Ausschüttung von Neurotransmittern und damit


zu einer Eingabe der nachfolgenden Zellen bzw. Neuronen.

In den Aktivitäten der Neuronen ist die Information codiert.


6
Einführung (6)

Vereinfacht: Ein Neuron i mit n Eingängen (Dendriten) bekommt


einen Gesamtinput von neti und erhält damit einem Aktivitätswert
ai .

Daraus folgt ein Ausgangswert oi (Axon), der über eine synaptische


Koppelung wi,j an das Neuron j koppelt.

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)

Eine andere Sichtweise auf Neuronale Netze besteht darin, dass es


sich schlicht und einfach um eine Darstellung eines Rechengraphen
handelt, bei dem sich auf bestimmte Operationen beschränkt wurde,
die anschließend nicht explizit notiert wurden.

Zwei Beispiele von Rechengraphen

o
z σ
x
a + b
x y dot

x y z
8
Einführung (8)

1. “Klassische” künstliche Neuronale Netze

• Grundlage sind biologische Neuronen, jedoch in einer starken


Vereinfachung, so dass sie mathematisch einfach und schnell
zu behandeln sind.
• Heute werden sogenannte tiefe Netze (deep neural networks)
verwendet, bei denen Neuronen über viele Schichten verbunden
sind (siehe z.B. www.deeplearning.net/).
• Sie werden z.B. von Google, Apple, Facebook, NSA, BND und
vielen anderen verwendet z.B. zur Bild- und Spracherkennung,
in der Robotik, für Optimierungsprobleme usw.
• Fast täglich gibt es neue Meldungen über neue Anwendungen.

9
Einführung (9)

Anwendungsgebiete nach Wikipedia (Stand 2016):


• Regelung und Analyse von komplexen Prozessen
• Frühwarnsysteme
• Optimierung
• Zeitreihenanalyse (Wetter, Aktien etc.)
• Sprachgenerierung
• Bildverarbeitung und Mustererkennung
* Schrifterkennung (OCR), Spracherkennung, Data-Mining
• Informatik: Bei Robotik, virtuellen Agenten und KI-Modulen in
Spielen und Simulationen.
• Medizinische Diagnostik, Epidemiologie und Biometrie
• Klangsynthese
• Strukturgleichungsmodell zum Modellieren von sozialen oder be-
triebswirtschaftlichen Zusammenhängen

10
Einführung (10)

Weitere aktuelle Anwendungsbeispiele (2016)

• 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)

2. Neuronale Netze, nahe an der Biologie

Größtes Beispiel in der EU: Das Human Brain Project


https://www.humanbrainproject.eu/de

• Gestartet in 2013, Fördersumme 1,2 Milliarden Euro


• 6 Segmente: Neuroinformatik, Medizinische Informatik, Gehirn-
simulation, Supercomputing, Neuronales Rechnen und Neuro-
robotik.
• Beispiel BrainScaleS-System, Heidelberg. 20 Silizium-Wafer mit
je knapp 200.000 Neuronen, ca. 58 Millionen Synapsen.

12
Einführung (12)

• Beispiel SpiNNaker-Projekt, Manchester. 1.036.800 Arm9-Kerne


Jeder Kern simuliert Neuronen und 6 Synapsen.
http://apt.cs.manchester.ac.uk/projects/SpiNNaker/

In Betriebnahme 11.2018. Par-


allele Kommunikationsarchitektur,
dem Gehirns nachgebildet. Der
Computer verteilt Millionen kleiner
Informationspakete gleichzeitig.

Unabhängig von diesem Projekt gibt es jede Menge “kleine” Arbeiten,


z.B. unsere hier.
Im folgenden werden diese Projekte nicht weiter betrachtet.
13
Mathematisches Modell (1)

Mathematisches Modell von neuronalen Netzen

Die klassischen künstlichen Neuronalen Netze vereinfachen das biolo-


gische Vorbild so stark, dass

• viele biologische Eigenschaften verloren gehen,

• aber die Grundidee erhalten bleibt und

• eine “schnelle” Berechnung möglich ist.

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)

Ein künstliches neuronales Netz besteht aus folgenden Komponenten

1. Neuronen mit einem Aktivierungszustand ai(t) zum Zeitpunkt t.

2. Eine Aktivierungsfunktion fact, die angibt, wie sich die Aktivierung


in Abhängigkeit der alten Aktivierung ai (t), des Inputs neti und
eines Schwellwerts Θi mit der Zeit ändert.

ai(t + 1) = fact (ai(t), neti(t), Θi).

3. Eine Ausgabefunktion fout, die aus der Aktivierung des Neurons


den Output berechnet

oi = fout(ai ).

15
Mathematisches Modell (3)

4. Ein Verbindungsnetzwerk mit den Koppelungen wi,j (Gewichtsma-


trix).

5. Eine Propagierungsfunktion, die angibt, wie sich die Netzeingabe


aus den Ausgaben der anderen Neuronen berechnet, meist einfach
X
netj (t) = oi(t)wi,j
i

6. Eine Lernregel, die angibt, wie aus einer vorgegebenen Eingabe


eine gewünschte Ausgabe produziert wird. Dies erfolgt meist über
eine Modifikation der Stärke der Verbindungen als Ergebnis wie-
derholter Präsentation von Trainingsmustern.

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)

In vielen Anwendungen wird die Zeitabhängigkeit, z.B. bei der Ob-


jekterkennung weggelassen und es werden ganz einfache Funktionen
verwendet:

• Die Ausgabefunktion ist einfach

oj = fout(aj ) = aj

• Propagierungsfunktion lautet
X
netj = oiwi,j
i

• Die Ausgabe berechnet sich dann über

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)).

Logistische Funktion oder Sigmoidfunktion

oi = 1/(1 + exp(−c(neti − Θi)))

Die Konstante c beeinflusst die Steigung der Funktionen.

18
Mathematisches Modell (6)

Aktivierungsfunktionen

1.5 Stufenfunktion
Tangens Hyperbolicus
Logistische Funktion
1

0.5
output

-0.5

-1

-1 -0.5 0 0.5 1 1.5 2 2.5 3


input

Hier wurde c = 5 und Θ = 1 verwendet. Meist wird aber c = 1 gesetzt.


19
Mathematisches Modell (7)

Die ReLU-Funktion, oder ‘leaky ReLU-Funktion ist einfach

Aktivierungsfunktion Leaky ReLU

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

Hier wurde a = 0.02 und Θ = 0 verwendet. Die Funktion ist absolut


“unbiologisch”, aber sie funktioniert häufig sehr gut, z.B. bei Netzen
zur Objekterkennung, und ist extrem schnell zu berechnen!
20
Mathematisches Modell (8)

Beispiel: Ein nettes kleines bekanntes Netz mit wenigen Verbindungen


und welches im Kopf nachzurechnen ist, ist das XOR-Netzwerk mit 4
Neuronen.

n4 0.5

-2 Die Neuronen beinhalten die


1 n3 1.5 1 Schwellwerte, die Verbindun-
gen sind mit den Gewichten
1 1 beschriftet.
n1 n2

Als Aktivitätsfunktion bzw. für die Ausgabe wird eine Stufenfunktion


gewählt
21
Mathematisches Modell (9)

Weiterhin wird die standardmäßige Propagierungsfunktion verwendet


X
netj = oiwi,j
i
also gilt
(
1 falls i oi wi,j ≥ Θj .
P
oj =
0 sonst

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

Eine kleine Übungsaufgabe: Wie sieht die zugehörige Tabelle von


Eingabe zur Ausgabe aus?

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

Insgesamt ergibt sich die Funktion


oo = tanh( ( tanh(o1w11 + o2w21 + Θ1 ) w1o +
( tanh(o1w12 + o2w22 + Θ2 ) w2o + Θo
Aufgabe des “Lernens”: Bestimmung der 9 Parameter w11, w12, w21, w22,
w1o, w2o, Θ1, Θ2, Θo, so dass sich für alle möglichen Werten o1, o2 die
gewünschten oo ergeben.
24
Darstellung von neuronalen Netzen (1)

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.

Eine andere Darstellung besteht aus Matrizen oder allgemeiner aus


Feldern mit mehreren Indices oder Tensoren:

• Verbindungsmatrix w[Ebene][Ausgangsneuron][Eingangsneuron]
• Schwellwertmatrix Θ[Ebene][N euron]
• Eingangsmatrix net[[Ebene][N euron]

Rechnungen erfolgen durch Neuberechnung der Ausgabematrix


o[Ebene][N euron].

Oft kommt bei ein weiterer Index für das Eingabemuster hinzu.
25
Darstellung von neuronalen Netzen (2)

Tensoren: Tensoren sind Größen aus der linearen Algebra, um Objekte


aus der linearen Algebra in ein einheitliches Schema einzuordnen.
Tensoren haben Indizes. Die Anzahl der Indizes gibt den Rang oder
die Stufe des Tensors an.

• Tensoren nullter Stufe sind Skalare


• Tensoren erster Stufe sind Vektoren
• Tensoren zweiter Stufe sind Matrizen

Neuronale Netze werden durch Tensoren beschrieben, deshalb nennt


Google seine Softwarebibliothek Tensorflow und seinen Spezialpro-
zessor Tensorprozessor.

Arten von Verbindungsnetzwerken: Je nach Netztopologie und der


Art der Verarbeitung der Aktivitätswerte werden verschiedene neuro-
nale Netze unterschieden.
26
Darstellung von neuronalen Netzen (3)

Eine Einteilung nach Rückkopplung:

1. Netze ohne Rückkopplung (feedforward-Netze),


• Ebenenweise verbundene feedforward-Netze
• Allgemeine feedforward-Netze

2. Netze mit Rückkopplung,


• Netze mit direkter Rückkopplung (direct feedback, zurück zu
Eingabeknoten),
• Netze mit indirekter Rückkopplung (indirect feedback, zurück
zu Zwischenknoten),
• Netze mit Rückkopplung innerhalb einer Schicht (lateral feed-
back),
• Vollständig verbundene Netze (lateral feedback).

27
Darstellung von neuronalen Netzen (4)

2 Beispiel-Topologien und ihre Verbindungsmatrizen:

6 7 6 7

3 4 5 3 4 5

feedforward, vollständig verbunden,


ebenenweise ohne direkte
1 2 1 2 Rückkopplung
verbunden

28
Darstellung von neuronalen Netzen (5)

Zwei zur Zeit häufig angewendete Architekturen

• Feedforward Networks (FFN), meist in der Form sogenannter Mul-


tilayer Perceptrons (MLP) oder in der Form von Convolution Neural
Networks (CNN) (Faltungsnetze, überlappende Teilbereiche), z.B.
in der Bildverarbeitung.

• Rekurrent Neuronal Networks (RNN), also solche mit Rückwärts-


verbindungen, z.B. in der Form von Long Short Term Memory
Networks (LSTM) für handgeschriebene Texte oder in der Spra-
cherkennung.

Diese Architekturen und deren Anwendung werden in den letzten Jah-


ren fast überall diskutiert, z.B. seit ein paar Jahren auch in Zeitschrif-
ten wie C’t
29
Darstellung von neuronalen Netzen (6)

Beispiel eines feedforward Netzes, ein multiplayer Perceptron für eine


Klassifizierung:

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)

Das Schöne an einem solchen Netz ist folgendes:


Wenn die Parameter, also die Gewichte wi,j und die Schwellwerte Θi
gut bestimmt wurden, gilt:

• kleine Änderungen des Netzes (Verbindungen defekt)

• oder kleine Eingabeänderungen (Bild verrauscht)

→ kleine Änderung der Ausgabewerte

→ Bild wird höchst wahrscheinlich trotzdem erkannt,


da das gleiche Neuron den größten Wert haben wird.

31
Lernen (1)

Wie werden gute Parameter bestimmt oder woher “weiß” ein Netz,
welches Neuron bei welchem Bild aktiv sein soll?

Mögliche Arten des Lernens

1. Entwicklung neuer Verbindungen


2. Löschen existierender Verbindungen
3. Modifikation der Stärke von Verbindungen
4. Modifikation der Schwellwerte der Neuronen
5. Modifikation der Aktivierungs-, Propagierungs- oder Ausgabefunk-
tion
6. Entwicklung neuer Neuronen
7. Löschen von Neuronen

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.

Prinzipiell werden 3 Arten von Lernverfahren unterschieden:

1. Überwachtes Lernen, bei dem einem Netzwerk zu einem Input ein


gewünschter Output gegeben wird, nach dem es sich einstellt.
2. Bestärkendes Lernen, bei dem zu einem Input die Information, ob
der Output richtig oder falsch ist, in das Netz zurückgegeben wird.
3. Unüberwachtes Lernen, bei dem sich das Netz selbst organisiert.

Am häufigsten ist das überwachte Lernen. Von den verschiedenen


Lernmethoden wird hier nur das klassische Backpropagation-Verfahren
vorgestellt.
33
Lernen (3)

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

Die Konstante η wird als Lernrate bezeichnet. Verallgemeinert lautet


die Hebbsche Regel
∆wij = ηh(oi, wij )g(aj , tj )

tj ist die erwartete Aktivierung (teaching input), ein Parameter der


Funktion g. Fast alle Lernregeln sind Spezialisierungen der Funktionen
h und g.
34
Perzeptron (1)

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.

Ursprung hat das Perzeptron aus


Ausgabeneuron
der Analogie zum Auge, bei dem (Lenkung)

die Retina die Input-Neuronen


beinhaltet, von der über eine Zwi-
schenschicht eine Klassifikation der
einzelnen Bilder in der Ausgabe-
schicht erfolgt.
Dementsprechend werden solche
Netze z.B. in der Steuerung auto- Eingabeneuronen (Straßenbild+entfernungen)
nomer Fahrzeuge eingesetzt.

35
Perzeptron (2)

Aufbau:

• Es gibt eine Input-Schicht


• Es gibt keine, eine oder mehrere verborgene Schichten (hidden
layer)
• Es gibt eine Ausgabe-Schicht
• Die Kanten verbinden die Schichten eine nach der anderen in der
gleichen Richtung untereinander, d.h. die Informationen aller Kno-
ten der Input-Schicht laufen in die selbe Richtung, nicht zurück
und nicht zwischen den Knoten einer Schicht.

In einigen Fällen wird der Begriff Perzeptron enger als feedforward-


Netz mit keiner oder einer verborgenen Schicht verwendet.
36
Backpropagation-Regel (1)

• Gegeben sind Eingabewerte, z.B. der MNIST-Datensatz∗ mit 60000


Bilder der Größe 28x28 Pixel, auf denen handgeschriebene Ziffern
abgebildet sind, ein Standard-Benchmark für Neuronale Netze.

• Das ergeben 784 Eingabeknoten und 10 Ausgabeknoten, für jede


Ziffer einer.

• 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

• Die Funktionen, die die Ausgaben op,j berechnen, hängen von


den Gewichten der Verbindungen zwischen den Knoten und den
Schwellwerten der einzelnen Knoten ab.

• Backpropagation ist ein Gradientenabstiegsverfahren, bei dem


die Gewichte und Schwellwerte so geändert werden, dass das
Fehlerfunktional (oder die Energiefunktion) minimiert wird.

38
Backpropagation-Regel (3)

Numerik bei mir: lineare Ausgleichsrechnung

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)

Numerik bei mir: lineare Ausgleichsrechnung


Statistik, 3. Semester: Methode der kleinsten Quadrate

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.

Es werden also die Parameter der Funktion f (x) so bestimmt, so dass


die Funktion möglichst dicht an den Punkten liegt.
40
Backpropagation-Regel (4)

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:

• Jedem x-Wert entspricht einem Satz von Eingabewerten bzw. ein


Eingabe-”Pattern” inp,i mit i ≤ 1 ≤ nin Werten.
• Jedem y-Wert entspricht einem Satz von Ausgabewerten bzw.
Ausgabe-”Pattern” tp,j mit j ≤ 1 ≤ nout Werten.
• Die Ausgleichsfunktion f (x) ist jetzt ein Satz von nicht-linearen
Funktionen in einer Anzahl von Parameter, z.B. in den Gewichten
des neuronalen Netzes: fi,j (inp,i, wi,j ) = op,j .

41
Backpropagation-Regel (5)

• Dann lautet das Fehlerfunktional, die Summe der quadratischen


Abweichungen anstatt
n
Ei = (f (xi ) − yi)2
X
E= Ei
i=1
jetzt
X 1 nX
out  2
E= Ep Ep = op,j − tp,j
p 2 j

• Gesucht in dem nicht-linearen Ausgleichsproblem: das Minimum


von E als Funktion der nicht-linearen Parameter.
• Hinweis: Häufig werden auch andere Fehlerfunktion verwendet.

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)

Fehlerfunktion fuer ein Gewicht wi,j


8

5
error

0
0 2 4 6 8 10 12 14 16
wi,j

Die Aufgabe ist es ein möglichst gutes Minimum zu finden.

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.

Mit wn+1,j = −Θj und on+1 = 1 gilt


n
X n+1
X
oiwi,j − Θj = oiwi,j ≡ netj (t)
i=1 i=1

44
Backpropagation-Regel (8)

Der Backpropagation-Algorithmus ändert die Gewichte wi,j von einem


Knoten i zu einem Knoten j entlang des negativen Gradienten der
Fehlerfunktion, bis diese (hoffentlich) minimal ist.
X ∂Ep
∆wij = −η .
p ∂wij

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)

Zerlege die Ableitung des Fehlerfunktionals nach den Gewichten in


einzelne Schritte:

Ableitung nach den Gewichten zur Ausgabeschicht: Der Fehler hängt


ab oo, das wiederum von neto, das wiederum von wio ab.

Ableitung nach den Gewichten zur verdeckten Schicht: Der Fehler


hängt ab oo, das wiederum von neto , das wiederum von o1, o2, das
wiederum von net1, net2 und das von wi1

Verwende die Kettenregel, zuerst für den letzten Schritt:


∂Ep ∂Ep ∂netpj
= .
∂wij ∂netpj ∂wij

46
Backpropagation-Regel (8)

Der erste Faktor wird als Fehlersignal bezeichnet


∂Ep
δpj = −
∂netpj
und der zweite Faktor ist
∂netpj ∂ X
= opk wkj = opi.
∂wij ∂wij k
Die Änderung der Gewichte berechnet sich dann durch
X
∆wij = η opiδpj
p
Bei der Berechnung von δpj geht die konkrete Aktivierungsfunktion
ein, also wie das Neuron j den Input in einen Output verwandelt.
∂Ep ∂Ep ∂opj ∂Ep ∂fact(netpj ) ∂Ep ′
δpj = − =− =− =− f (netpj ).
∂netpj ∂opj ∂netpj ∂opj ∂netpj ∂opj act

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 )

2. j ist Index eines Neurons der verdeckten Ebenen. Die Fehlerfunk-


tion hängt von den Output oj indirekt über die Zwischenzellen k
ab, denn der Output oj geht in den Input netpk von allen Knoten
k eine Schicht “höher” ein.

48
Backpropagation-Regel (10)

∂Ep X ∂Ep ∂netpk


− = −
∂opj k
∂netpk ∂opj
 
X ∂ X X
=  δpk opiwik =
 δpk wjk
k
∂opj i k
Das bedeutet, dass man den Gesamtfehler des Neurons j für ein Muster
p aus den gewichteten Fehlern δpk aller Nachfolgezellen k und der
Gewichte der Verbindungen von j zu diesen k berechnen kann.
′ X
δpj = fact (netpj ) · δpk wjk
k
Zusammengefasst

X ′  (tpj − ooj ) falls j Ausgabeneuron
∆wi,j = η op,ifact (netpj ) · P
p k δpk wjk falls j verdecktes Neuron

49
Backpropagation-Regel (11)

Meist wird als Aktivierungsfunktion die logistische Funktion verwendet


mit der Ableitung
d d 1
flog (x) = −x
= flog (x) · (1 − flog (x))
dx dx 1 + e

Damit ergibt sich eine vereinfachte Formel für den Backpropagation


Algorithmus
∆pwij = ηopiδpj
mit dem Fehlersignal

( )
opj (1 − opj )(tpj − opj ) falls j Ausgabeneuron
δpj =
opj (1 − opj ) k δpk wjk falls j verdecktes Neuron
P

50
Backpropagation-Regel (12)

Beispiel: Netz mit 3 Ausgabeknoten n1, n2 und n3

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)

Das Verfahren zusammengefasst

1. Berechne bei einem gegebenem Input den Output oder “Propa-


gierung” ein Signales über die Schichten:
• Die Ausgaben der Neuronen i (oder die Werte der Inputneu-
ron i) einer Schicht werden an die Eingaben der Knoten j der
nächsten Schicht weitergeleitet über
n+1
X
netj (t) = oiwi,j
i=1
• Die Knoten j berechnen die Ausgabe, die eventuell an die nächs-
te Schicht weiter geleitet wird, über
oj = fact (netj )
• Ist man an der Ausgabeschicht angekommen, überprüfe, ob das
Eingabesignal erkannt wird, also berechne den Fehler bzw. das
Fehlerfunktional.

52
Backpropagation-Regel (14)

2. Ist der Fehler zu groß, führe eine Rückpropagierung durch.

• Berechne das Fehlersignal, von der Ausgabeschicht beginnend


rückwärts bis zur Eingabeschicht.

• Berechne die Korrektur der Gewichte gemäß

∆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)

Das Beispiel vom Anfang:


oo = tanh( ( tanh(o1w11 + o2w21 + Θ1 ) w1o +
( tanh(o1w12 + o2w22 + Θ2 ) w2o + Θo

• Ableitung der Aktivierungsfunktion: tanh′ = (1 − tanh2)


• “Fehler” bei der Ausgabe: to − oo
• Fehlersignal am Ausgabeknoten no: δo = (1 − o2
o )(to − oo )

• Korrektur der Gewichte vom verdeckten Konten ni zum Ausgabe-


knoten no: ∆wi,o = ηoiδo
• “Fehler” beim verdeckten Knoten nj : δowj,o
• Fehlersignal am verdeckten Knoten nj : δj = (1 − o2
j )δo wj,o
• Korrektur der Gewichte vom Eingangkonten ni zum verdeckten
Knoten nj : ∆wi,j = ηoiδj

54
Backpropagation-Regel (16)

Probleme:

a) Bei zu kleinen Lernraten geht der


Algorithmus nicht über das lokale Mi-
nimum hinaus.

b) Kleine Gradienten wie bei Plateaus


sorgen für eine erhebliche Mehrzahl an
notwendigen Iterationsschritten.

c) Ungeeignete Wahl einer Lernrate


bei zu großen Gradienten bewirkt Os-
zillation des Lernprozesses

d) oder unter Umständen ein Über-


springen des globalen Minimums hin
zu einem lokalen.

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)

Neben den Multilayer Perceptrons sind heute die meist verwendeten


Netze Faltungsnetze bzw. Convolution Neural Networks (CNN).

• 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)

• Die Daten sind “translationsinvariant”, d.h. eine Katze unten rechts


im Bild muss genauso erkannt werden wie oben links im Bild.

• Ein Gesamtbild setzt sich aus lauter benachbarten Einzelteilen zu-


sammen, mehrere “benachbarte” Töne werden zu einem Wort,
mehrere benachbarte Ausschnitte eines Bildes werden zu einem
Objekt.

57
CNN (2)

Idee:

• Betrachte nicht von einem Punkt (Neuron) Verbindungen zu allen


anderen (Neuronen der darüber liegenden Schicht), sondern nur
lokale Gruppen.

• Verwende die gleiche Gewichtsmatrix von allen Punkten aus (Fal-


tung)

a b c a b c a b c a b c a b c

58
CNN (3)

Die Gewichtsmatrizen werden als Filter oder Kernel bezeichnet und es


werden mehrere unterschiedliche Filter verwendet, die jeweils zu einer
eigenen darüber liegenden Schicht führen.

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)

• Werden mehrere dieser Faltungsschichten hintereinander gehängt,


vergrößert sich der Bereich immer weiter, der Einfluss auf das
Ergebnis hat.

• Nützlich ist es sogenannte Pooling-Schichten zu verwenden, die die


Ergebnisse von benachbarten Neuronen zusammenfassen, z.B. den
Mittelwert oder den maximalen Wert nehmen und weiter leiten.

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)

Am Ende gibt es dann

• bei einem Klassifizierungsproblem für jedes Objekt ein Output-


Neuron

• oder z.B. bei einem Segmentierungsproblem, also welches Pixel


eines Bildes gehört zu welchem Objekt für jedes Pixel so viele
Output-Neuronen, wie es Klassen gibt.

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

Frage: Was lernt das Netz?


Ansatz: Rückverfolgung des Gelernten über die Schichten.
Bei diesen Versuchen hat Google direkt eine neue Kunstrichtung ins
Leben gerufen: Inceptionism∗
∗ Computer-Halluzinationen, Spektrum der Wissenschaft, 12/2015, Brian Hayes.
62
Ausblick (2)

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

Das könnte Ihnen auch gefallen