Sie sind auf Seite 1von 31

Technische Universität

München

Fakultät für Informatik


Forschungs- und Lehreinheit Informatik IX

Neuronale Netze

Proseminar

Sören Jentzsch

Betreuer: Dominik Jain


Lars Kunze
Abgabetermin: 13. Januar 2010
Inhaltsverzeichnis

1 Einleitung 2

2 Künstliche neuronale Netze 4


2.1 Das künstliche Neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Propagierungsfunktion . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 Aktivierungsfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 Ausgabefunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Das Neuron als Logikgatter . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Klassen von neuronalen Netzen . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 FeedForward-Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Recurrent-Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Überwachtes Einlernen von FeedForward-Netzen 15


3.1 Überwachtes Lernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Gradientenbasierte Optimierungsverfahren . . . . . . . . . . . . . . . . . . 16
3.3 Delta-Regel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Backpropagation of Error . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Anwendungsgebiete 25

5 Zusammenfassung und Ausblick 27

Literaturverzeichnis 30

1
Kapitel 1

Einleitung

Das Studium künstlicher neuronaler Netze ist durch ihre erfolgreiche Arbeit in biolo-
gischen Systemen, insbesondere dem Gehirn, motiviert. Während ihre Einzelteile, die
Neuronen, relativ einfach beschrieben werden können, entwickeln sie in ihrer Gesamtheit
ein hochkomplexes, paralleles System, welches in der Lage ist, effektiv und hochgradig
effizient zu lernen. Neuronale Netze kann man als eine der bekanntesten und effektivsten
Formen von Lernsystemen bezeichnen.
Ihre Fähigkeit ist es, sich Problemen vertraut zu machen und, nach ausreichendem Trai-
ning, auch bis dato unbekannte Probleme derselben Klasse lösen zu können. Dieser Aspekt
wird auch als Generalisierungsfähigkeit bezeichnet. Ziel des Zusammenwirkens von Neuro-
nen ist also das Lösen von Problemen, die nicht explizit durch einen Algorithmus berech-
net werden können, sondern deren Lösung durch Beispiele beschrieben wird. So ist es mit
neuronalen Netzen beispielsweise möglich, verrauschte Eingaben zu tolerieren. Konkrete
Anwendungsgebiete werden wir uns am Ende dieser Arbeit anschauen.
Die Geschichte der künstlichen neuronalen Netze beginnt etwa 1943, als Warren Mc-
Culloch und Walter Pitts eine Art neurologisches Netz beschrieben haben, mit dem es
möglich war, arithmetische und logische Funktionen zu berechnen. Seitdem hat sich die
Forschung natürlich weiterentwickelt, 1985 wurde etwa das Lernverfahren Backpropagati-
on of Error als Verallgemeinerung der Delta-Regel entwickelt, welches wir in dieser Arbeit
ausführlich behandeln wollen.
In dem Kapitel Künstliche neuronale Netze“ werden wir uns mit den Grundlagen

künstlicher neuronaler Netze auseinandersetzen. Dazu zählt zunächst das einzelne Neu-
ron und ein einfaches Anwendungsbeispiel, um diese Neuronen dann am Ende zu einem
neuronalen Netz zusammenzusetzen.
Anschließend beschäftigen wir uns in dem Kapitel Überwachtes Einlernen von

FeedForward-Netzen“ mit dem überwachten Lernen und seine Anwendung auf

2
KAPITEL 1. EINLEITUNG 3

FeedForward-Netzen. Dabei werden wir uns die Delta-Regel und als Verallgemeinerung
Backpropagation of Error als Lernverfahren bzw. Lernalgorithmen anschauen, mit Hilfe
derer wir unseren neuronalen Netzen eine Funktion beibringen können.
Kapitel 2

Künstliche neuronale Netze

Wir wollen uns zunächst mit den Grundbausteinen der künstlichen neuronalen Netze,
den künstlichen Neuronen, auseinandersetzen. Anschließend werden wir uns anschauen,
wie ein einzelnes Neuron in der Praxis funktioniert und eine einfache boolesche Funktion
realisiert. Am Ende dieses Kapitels schalten wir dann einzelne Neurone zu Netzwerken
zusammen und stellen die verschiedenen Klassen von neuronalen Netzen mitsamt ihren
Eigenschaften vor.

2.1 Das künstliche Neuron

Das künstliche Neuron (ab sofort kurz Neuron genannt) bildet den Grundbaustein, aus
dem die künstlichen neuronalen Netze aufgebaut sind. Abbildung 2.1 zeigt den Aufbau
eines Neurons und seine einzelnen Elemente, auf die wir im Folgenden eingehen wollen.
Zu einem Neuron führt eine gewisse Anzahl an Eingabe-Verknüpfungen mit jeweils unter-
schiedlicher Gewichtung, wobei wir nach internen Berechnungen als Ausgabe genau einen
Wert erhalten, der mittels Verknüpfungen wiederum als Eingabe für weitere Neuronen
dienen kann. Wir gehen in unserer formalen Definition eines Neurons j von n Eingängen
mit Eingabe ai und Gewichtung Wi,j für 0 ≤ i ≤ n aus. Ein Spezialfall bildet das Bias-
Gewicht W0,j mit konstanter Eingabe a0 = −1, das, wie wir später sehen werden, die
Aufgabe eines Schwellwertes für das Neuron j erfüllt, ab dem dieses aktiv wird.
Betrachten wir nun die innere Funktionsweise bzw. das Verhalten eines Neurons j, welches
auf dem Weg zu der Berechnung seiner Ausgabe aj drei Funktionen anwendet.

4
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 5

Abbildung 2.1: Schematische Darstellung eines Neurons mit seinen Elementen, eingebettet
in ein Netz von Eingabe- und Ausgabeverknüpfungen

2.1.1 Propagierungsfunktion

Die Propagierungsfunktion1 berechnet aus gegebenen Eingaben ai und deren Gewich-


tungen Wi,j eine sogenannte skalare Netzeingabe netj . Durchgesetzt hat sich hier die
gewichtete Summe, mittels der wir wie folgt die Netzeingabe bestimmen:
n
X
netj = (ai · Wi,j ) (2.1)
i=0

Die gewichtete Summe berechnet sich also mittels Multiplikation einer jeden Eingabe mit
seiner Gewichtung und die Aufsummierung dieser Ergebnisse.

2.1.2 Aktivierungsfunktion

Mit Hilfe der berechneten Netzeingabe netj und einer Aktivierungsfunktion g wird nun
der Aktivierungszustand aj = g(netj ), kurz Aktivierung genannt, des Neurons berechnet.
Bevor wir uns konkrete Aktivierungsfunktionen anschauen können, müssen wir zunächst
das Modell des Neurons weiter konkretisieren.
Solange nichts anderes erwähnt wird, lassen wir ab sofort nur Aktivierungen im Intervall
[0, 1] zu2 . Unsere Aktivierungsfunktion muss also so konstruiert werden, dass sie alle
reellwertige Zahlen netj auf das Intervall [0, 1] abbildet.
1
Die Propagierungsfunktion wird oftmals auch als Eingabe- oder Übertragungsfunktion bezeichnet.
2
Weitere übliche Bereiche für die Aktivierung eines Neurons wäre [−1, 1] oder gar eine binäre Akti-
vierung, also entweder 0 oder 1.
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 6

Des Weiteren wollen wir für jedes Neuron einen individuellen Schwellwert festlegen. Ent-
spricht die reale Netzeingabe eines Neurons mindestens diesem Wert, so nennen wir das
Neuron aktiviert. Laut [Kri07] markiert der Schwellwert ganz einfach die Stelle der größten
Steigung der Aktivierungsfunktion. Das bereits konstruierte Bias-Gewicht W0,j mit kon-
stanter Eingabe a0 = −1 wird diese Funktion als Schwellwert für ein Neuron übernehmen3 .
Dies können wir anhand der Gleichung 2.2 sehen, wobei ausgehend von der Gleichung 2.1
lediglich das Bias-Gewicht herausgezogen wurde.
n
X
netj = (ai · Wi,j ) − W0,j (2.2)
|{z}
i=1
| {z } Schwellwert
reale Eingabe

Der Schwellwert ist somit neben den realen Eingaben schon in unserer Netzeingabe
berücksichtigt, sodass wir uns lediglich eine Aktivierungsfunktion g bauen müssen, bei
der sich an der Stelle 0 der Schwellwert befindet, da ab diesem Wert netj positiv ist, die
realen Eingaben also den Schwellwert überschreiten.
Nun können wir uns mit zwei typischen Aktivierungsfunktionen beschäftigen, die diese
Eigenschaften erfüllen: Die Schwellwertfunktion und die logistische Funktion4 (s. Abb.
2.2).

Abbildung 2.2: Beispiele für Aktivierungsfunktionen: (a) Schwellwertfunktion, die 1 liefert,


sobald netj positiv ist, ansonsten 0 (b) Logistische Funktion mit sigmoiden Charakter

Die binäre Schwellwertfunktion sei definiert durch Gleichung 2.3.


3
Der Grund, warum die Funktion des Schwellwertes gerne als Bias-Gewicht außerhalb des Neurons mo-
delliert wird, ist, dass das Lernen eines Neuronalen Netzes mittels Anpassung von Gewichten einheitlicher
behandelt werden kann, da der richtige Schwellwert Teil des Lernprozesses ist.
4
Die logistische Funktion wird oftmals auch als Sigmoid-Funktion bezeichnet.
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 7

(
1, netj ≥ 0
gschw (netj ) = (2.3)
0, sonst

Die logistische Funktion sei dagegen durch Gleichung 2.4 definiert.

1
glog (netj ) = (2.4)
1 + e−c·netj

Da die Schwellwertfunktion nicht differenzierbar ist (Sprung bei x = 0), wir diese Eigen-
schaft allerdings für einige Lernverfahren benötigen, ist die Verwendung der logistischen
Funktion weitaus üblicher. Wir haben bei dieser zudem die Möglichkeit, mittels des Pa-
rameters c die Steilheit der Kurve zu steuern, sodass wir uns für c → ∞ der Schwellwert-
funktion nähern können.

2.1.3 Ausgabefunktion

Zuletzt können wir aus der Aktivierung des Neurons mittels einer Ausgabefunktion seine
Ausgabe berechnen. In den meisten Fällen wird hier schlichtweg die Identität verwendet,
sodass die Aktivierung aj gleich dem Ausgabe-Wert des Neurons j entspricht. Dies ist
auch der Grund, warum wir in Abbildung 2.1 und den darauf folgenden Erklärungen
für die Eingabe, Ausgabe und Aktivierung eines Neurons stets denselben Buchstaben a
gewählt haben.

2.1.4 Zusammenfassung

Ein Neuron ist damit eine Verarbeitungseinheit, welche die gewichteten Eingabe-
Verknüpfungen zu einer Netzeingabe verarbeitet (Propagierungsfunktion) und daraus
einen Aktivierungszustand ermittelt (Aktivierungsfunktion). Aus dieser Aktivierung wird
anschließend die Ausgabe des Neurons bestimmt (Ausgabefunktion), welche mittels
Ausgabe-Verknüpfungen an weitere Neuronen transferiert werden kann.
Ab sofort gehen wir, wenn nicht anders festgelegt, von der gewichteten Summe als Propa-
gierungsfunktion, der logistischen Funktion mit c = 1 als Aktivierungsfunktion und der
Identität als Ausgabefunktion aus. Die Aktivierung, Ein- und Ausgabe aj liegen dann
also stets im Intervall [0, 1] der reellen Zahlen (mit Ausnahme des Bias-Wertes a0 = −1)5 .
Diese Festlegung soll in einem neuronalen Netz global gelten, d.h. für alle Neuronen.
5
Ist uns sehr an einem einheitlichen Intervall für alle aj inkl. dem Bias-Wert gelegen, könnten wir a0 = 1
setzen und das Bias-Gewicht negieren. Wir belassen jedoch a0 = −1 und folgen somit der Konvention
nach [RN04].
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 8

2.2 Das Neuron als Logikgatter

Beschäftigen wir uns nun mit einem ersten praktischen Einsatz eines Neurons.
Das wohl einfachste neuronale Netz besteht eben aus nur einem Neuron, welches als Lo-
gikgatter fungiert. Es ist mit diesem möglich, grundlegende boolesche Funktionen, wie die
Konjunktion ( UND“), die Disjunktion ( ODER“) oder die Negation ( NICHT“), nach-
” ” ”
zubilden. Dafür benötigen wir Neuronen mit der Schwellwertfunktion als Aktivierungs-
funktion und als Ein- und Ausgabewerte Binärzahlen, um der booleschen Logik gerecht
zu werden. Damit diese Funktionen realisiert werden, müssen wir lediglich geeignete Ge-
wichtungen der Eingaben finden. In Abbildung 2.3 sehen Sie mögliche Gewichtungs-Werte
der booleschen Funktionen, welche wir auch mit Hilfe eines Trainingsprozesses hätten be-
rechnen können (s. Kapitel 3).

Abbildung 2.3: Durch geeignete Gewichtungen kann ein neuronales Netz mit einem Neuron
als boolesche Funktion UND, ODER oder NICHT agieren.

Betrachten wir kurz das neuronale Netz, welches die Negation ( NICHT“) nachbilden soll,

indem wir als Eingabe im ersten Fall 0 und im zweiten 1 festlegen:
1. Fall: a1 = 0 → net2 = −1 · −0.5 + 0 · −1 = 0.5 → a2 = gschw (0.5) = 1
2. Fall: a1 = 1 → net2 = −1 · −0.5 + 1 · −1 = −0.5 → a2 = gschw (−0.5) = 0
Das Verhalten des Netzes entspricht somit der Negation.

2.3 Klassen von neuronalen Netzen

Ein neuronales Netz kann man sich als einen gerichteten Graphen vorstellen, in dem die
Neuronen die Knoten und die gewichteten Verknüpfungen die gerichteten Kanten zwischen
Neuronen darstellen. In Anlehnung an [RN04] werden wir ein Neuron als Einheit eines
neuronalen Netzes bezeichnen.
Nach [Kri07] lässt sich ein neuronales Netz als Tripel (N, V, w) schreiben, wobei N die
Menge der Neuronen, V die Menge {(i, j)|i, j ∈ N } der gerichteten Kanten und w die
Funktion w : V → R bezeichnet, welche jeder Verbindung ein Gewicht zuweist. Wir
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 9

sollten im Hinterkopf behalten, dass ein Bias-Neuron 0 mit konstanter Ausgabe a0 =


−1 existiert, welches mit jedem Neuron verbunden ist und somit deren Bias-Gewicht
sicherstellt (dieses wird aus optischen Gründen in den meisten Zeichnungen jedoch nicht
modelliert). Das neuronale Netz kann dann durch eine quadratische Gewichtsmatrix W
der Dimension n × n mit n als die Anzahl der Neuronen (ohne Bias-Neuron) beschrieben
werden, wobei der Eintrag Wi,j die Gewichtung der Verbindung von Neuron i zu Neuron j
darstellt (= Verbindungen von den Zeilen- zu den Spaltenneuronen). Eine Gewichtung von
0 kennzeichnet dabei eine nicht-existente Verbindung. Diese Matrixdarstellung wird auch
als Hinton-Darstellung bezeichnet. In den folgenden Unterkapiteln werden wir Beispiele
von neuronalen Netzen in der Hinton-Darstellung und als gerichteter Graph kennenlernen.
Neuronale Netze kann man in zwei Hauptklassen einordnen: den FeedForward-Netzen
ohne Rückkopplung und den Recurrent-Netzen mit Rückkopplung6 . Wir wollen uns im
Folgenden mit ihren Strukturen und Eigenschaften beschäftigen. Der Schwerpunkt die-
ses Kapitels liegt jedoch auf den FeedForward-Netzen, da wir sie in Kapitel 3 einlernen
werden.

2.3.1 FeedForward-Netze

FeedForward-Netze zeichnen sich dadurch aus, dass die Neuronen in hintereinander lie-
genden Schichten eingeteilt werden können, wobei Verbindungen nur zu Neuronen der
jeweils nächsten Schicht erlaubt sind7 . Jede Einheit erhält also ihre Eingaben nur von der
direkt darunter liegenden Schicht. FeedForward-Netze werden oftmals auch als vorwärts
gerichtetes Netz bezeichnet. Wir können uns FeedForward-Netze als azyklischer Graph
vorstellen, in dem keine Rückkopplungen existieren.
In einem FeedForward-Netz unterscheiden wir drei verschiedene Klassen von Schichten:
• Eingabeschicht: besteht aus den Neuronen, zu denen es keine gerichtete Verbindung
gibt. Sie erhalten ihre Eingabe aus der Umgebung, in der das Netz eingebettet ist,
und geben diese unverändert weiter. Als Aktivierungsfunktion wird die Identitäts-
Funktion eingesetzt und als Schwellwert die 0.
• Ausgabeschicht: besteht aus den Neuronen, die keine weiterführenden Verbindungen
besitzen. Ihre Ausgabewerte stellen das Ergebnis des Netzes dar.
• verdeckte Schicht: besteht aus den Neuronen einer Schicht, die weder Eingabe- noch
6
Die Recurrent-Netze werden in Anlehnung an die FeedForward-Netze oftmals auch FeedBack-Netze
genannt.
7
Dürfen Verbindungen zu jeder nachfolgenden Schicht existieren, sprechen wir von einem FeedForward-
Netz mit ShortCut-Connections ([Kri07]), diese werden wir in dieser Arbeit jedoch nicht behandeln.
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 10

Ausgabeschicht ist. In den verdeckten Schichten findet die eigentliche Informations-


verarbeitung statt.
Ein FeedForward-Netz besteht aus einer Ein- und Ausgabeschicht und beliebig viele,
von außen nicht sichtbare, verdeckte Schichten. Ein Neuron wird dementsprechend als
Eingabe-, Ausgabe- bzw. verdeckte Einheit bezeichnet.
Wir verwenden für die Eingabe von Daten in unser neuronales Netz einen Eingabevektor,
wobei die i-te Komponente als Netzeingabe für das i-te Eingabe-Neuron verwendet wird.
Die Ausgabe von Daten aus dem neuronalen Netz erfolgt mittels eines Ausgabevektors,
wobei die i-te Komponente den Ausgabewert des i-ten Ausgabe-Neurons enthält.
Wir können nun eine wichtige Eigenschaft der FeedForward-Netze festhalten:
Ein FeedForward-Netz stellt eine Funktion seines Eingabevektors dar. Mittels der Formel
aj = g(netj ) und Gleichung 2.1 für die Definition der Netzeingabe können wir die ein-
zelnen Ausgabewerte der Ausgabeneuronen nur in Abhängigkeit der Eingabewerte, der
Gewichtungen und der Aktivierungsfunktion schreiben. Dabei sind die Gewichtungen die
Parameter der Funktion, welche im Lernprozess modifizieren werden können. Die Ak-
tivierungsfunktion ist fest. Das FeedForward-Netz realisiert somit eine Funktion seines
Eingabevektors, welche einen Ausgabevektor liefert.
Schauen wir uns im Folgenden den einfachsten Typus eines FeedForward-Netzes, das
einschichtige Perzeptron-Netzwerk, an, um danach zu den mehrschichtigen Perzeptron-
Netzwerken überzugehen.

2.3.1.1 Einschichtiges Perzeptron-Netzwerk

Das einschichtige Perzeptron-Netzwerk besitzt keine verdeckte Schicht (d.h. keine verdeck-
ten Einheiten), womit alle Eingabe-Einheiten direkt mit den Ausgabe-Einheiten verknüpft
sind8 . Es existiert insgesamt nur eine Schicht trainierbarer Gewichte. Wir können somit
die einzelnen Ausgabe-Einheiten getrennt betrachten, da sie komplett unabhängig vonein-
ander sind. Ein einschichtiges Perzeptron-Netzwerk mit x Ausgabe-Einheiten ist demnach
nichts anderes als x einschichtige Perzeptron-Netzwerke mit denselben Eingabe-Einheiten
und je einer Ausgabe-Einheit.
In Abbildung 2.4 ist ein Beispiel eines einschichtigen Perzeptron-Netzwerkes mit einer Ein-
gabeschicht (Eingabe-Neuronen: 1, 2, 3) und einer Ausgabeschicht (Ausgabe-Neuronen 4,
5) als azyklischer Graph (links) und in der Hinton-Darstellung (mitte) ohne konkrete Wer-
te zu sehen. Das Bias-Neuron 0 mitsamt den Schwellwerten eines jeden Neurons wurde aus
8
Nach [RN04] handelt es sich bei den Eingabe-Neuronen nicht um echte“ Einheiten, da sie, wie oben

erwähnt, einen Sonderstatus in Form ihrer Identitätsfunktion besitzen. Darum, und weil nur eine Schicht
trainierbarer Gewichte existiert, nennen wir dieses Perzeptron einschichtig.
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 11

 1 2 3 4 5
1 
2  
3 
4
5

Abbildung 2.4: Links: Ein einschichtiges Perzeptron-Netzwerk mit einer Ein- und Aus-
gabeschicht als azyklischer Graph. Mitte: Das linke Perzeptron-Netzwerk in der Hinton-
Darstellung (ohne konkrete Werte). Rechts: Graph der Ausgabe einer Ausgabe-Einheit
des linken Perzeptron-Netzwerkes in Abhängigkeit von den zwei gewichteten Eingaben x1
und x2 .

optischen Gründen weggelassen. Rechts ist der Graph der Ausgabe einer Ausgabe-Einheit
(mit einem Schwellwert von 0 und logistischer Aktivierungsfunktion) des Netzwerkes mit
den gewichteten Eingabewerten x1 und x2 zu sehen.

2.3.1.2 Lineare Separierbarkeit eines einschichtigen Perzeptron-Netzwerkes

Abbildung 2.5: Links: Eine linear separierbare Funktion, da sich die einen Werte von
den anderen mittels einer Geraden trennen lassen. Rechts: Eine nicht linear separierbare
Funktion.

Betrachten wir ein einschichtiges Perzeptron-Netzwerk mit n Eingabe-Einheiten und einer


Ausgabe-Einheit Ω. Dieses Netz klassifiziert seinen Eingabevektor der Dimension n gemäß
folgender Ungleichung (vgl. Gl. 2.2):
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 12

a1 W1,Ω + ... + an Wn,Ω ≥ W0,Ω (2.5)

Gilt diese Gleichung für einen Eingabevektor, aktiviert dieser die Ausgabe-Einheit Ω,
anderenfalls tut er dies nicht. Die möglichen Eingabevektoren können wir in einem n-
dimensionalen Raum darstellen, wobei die Eingaben ai mit 1 ≤ i ≤ n die Koordinaten-
achsen sind. Unser Perzeptron-Netzwerk separiert diesen Raum gemäß Gleichung 2.5 stets
durch eine (n − 1)-dimensionale Hyperebene. Die Eingabevektoren auf der einen Seite der
Hyperebene aktivieren Ω, die auf der anderen Seite nicht.
Ein einschichtiges Perzeptron kann somit nur linear separierbare Funktionen darstellen9 .
Bei bereits fünf binären Eingaben sind nur 0,002% aller binärer Funktionen linear sepa-
rierbar (s. [Kri07]).
Abbildung 2.5 zeigt die lineare Separierbarkeit graphisch im zweidimensionalen Raum,
also mit zwei Eingabeneuronen. Eine in der Fachliteratur oft erwähnte, nicht linear se-
parierbare Funktion ist die XOR-Funktion: Es ist nicht möglich, eine Gerade so durch
die Ebene zu ziehen, dass die Punkte (1,0) und (0,1) auf der einen und (0,0) sowie (1,1)
auf der anderen Seite liegen. Die XOR-Funktion ist somit nicht durch ein einschichtiges
Perzeptron-Netzwerk realisierbar.

2.3.1.3 Mehrschichtiges Perzeptron-Netzwerk

Das mehrschichtige Perzeptron-Netzwerk besteht aus mehreren hintereinander geschalte-


ten Perzeptron-Netzwerken, womit verdeckte Schichten mit verdeckten Einheiten entste-
hen. Der einfachste Fall eines mehrschichtigen Perzeptron-Netzwerkes besteht aus einer
verdeckten Schicht.
Jede verdeckte Einheit stellt ein einschichtiges Perzeptron seiner Eingaben dar und sepa-
riert diese mittels logistischer Aktivierungsfunktion weich“ und linear (s. Abbildung 2.4

Rechts). Eine Einheit der jeweils nächsten Schicht kann man sich als Linearkombination
seiner Eingaben (hier: der verdeckten Einheiten, mit denen es verbunden ist) vorstellen.
In Abbildung 2.6 sehen wir zwei Beispiele von mehrschichtigen Perzeptron-Netzwerken
mit zwei Eingabe- und einer Ausgabe-Einheit. Im linken Fall existieren zwei verborgene
Einheiten, welche entgegengesetzt den Eingaberaum linear separieren. Die Ausgabeeinheit
kombiniert diese beiden dann zu einem Bergrücken“. Im rechten Fall existieren vier ver-

borgene Einheiten, welche von der Ausgabeeinheit zu einem Pfeiler“ kombiniert werden.

9
Auch bei Verwendung einer logistischen Aktivierungsfunktion ist der Übergang bei der Trennung
linear, nur dementsprechend weich“, s. Abbildung 2.4 Rechts.

KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 13

Abbildung 2.6: Links: Kombination zweier entgegengesetzter einschichtiger Perzeptron-


Netzwerke zu einem Bergrücken. Rechts: Kombination zweier Bergrücken zu einem Pfei-
ler.

Es kann mathematisch bewiesen werden, dass ein mehrschichtiges Perzeptron-Netzwerk


mit einer verdeckten Schicht eine Funktion mit endlich vielen Unstetigkeitsstellen sowie
deren erste Ableitung beliebig genau approximieren kann (s. [Kri07]).
Tabelle 2.1 zeigt, welche Menge durch ein Perzeptron-
Netzwerk mit n verdeckten Schichten klassifiziert wer- n klassifizierbare Menge
den kann (s. [Kri07]). Für n = 0 ergibt sich ein ein- 0 Hyperebene
schichtiges Perzeptron-Netzwerk, welches den Einga- 1 konvexes Polygon
beraum mittels einer Hyperebene separiert. Mit einer 2 jede beliebige Menge
verborgenen Schicht (n = 1) kann der Eingaberaum
Tabelle 2.1: Klassifizierbare Men-
durch ein konvexes Polygon separiert werden. Mit zwei
ge eines Perzeptron-Netzwerkes
verborgenen Schichten (n = 2) ist jede beliebige Men- mit n verdeckten Schichten.
ge darstellbar. Weitere verborgene Schichten bringen
keine weiteren Vorteile.

2.3.2 Recurrent-Netze

Recurrent-Netze zeichnen sich im Gegensatz zu den FeedForward-Netzen durch ihre


Rückkopplung (Rekurrenz) aus. Diese tritt auf, sobald sich ein Neuron (über einen
bestimmten Verbindungsweg) selbst beeinflussen kann, wenn sich also seine Ausga-
be auf seine Eingabe-Werte auswirkt. Nach [Kri07] können wir zwischen direkter
Rückkopplung (Selbstrückkopplung, Verknüpfung eines Neurons mit sich selbst), indirek-
ter Rückkopplung (Verknüpfung in Richtung Eingabeschicht) und lateraler Rückkopplung
(Verknüpfung innerhalb einer Schicht) unterscheiden.
Ein Recurrent-Netz lässt sich nicht immer (erst recht nicht bei einem vollständig verbunde-
nen Netz) in wohlgetrennte Schichten unterteilen, sodass wir Ein- und Ausgabe-Neuronen
KAPITEL 2. KÜNSTLICHE NEURONALE NETZE 14

explizit definieren müssen. Man beachte hierbei, dass, im Gegensatz zu FeedForward-


Netzen, Verknüpfungen auch von den Ausgabe-Neuronen weg bzw. hin zu den Eingabe-
Neuronen existieren können.
Aufgrund der vorhandenen Rückkopplung bildet unser Recurrent-Netz ein dynamisches
System, wobei ein stabiler Zustand, ein schwingendes System oder chaotisches Verhalten
möglich sind. Im Gegensatz zu FeedForward-Netzen besitzen Recurrent-Netze einen inter-
nen Zustand. Die Ausgabe des Netzes hängt also nicht nur von der Eingabe ab, sondern
zusätzlich auch von dem Zustand, in dem sich das Recurrent-Netz befindet. Dieser Zu-
stand hängt wiederum von den vorhergehenden Eingaben ab, fungiert also als Gedächtnis
10
.
Während FeedForward-Netze als azyklische Graphen modelliert werden, entsteht bei der
Darstellung eines Recurrent-Netzes ein zyklischer Graph.
Recurrent-Netze bilden aufgrund ihrer Mächtigkeit ein interessanteres Modell für das Ge-
hirn, allerdings sind sie auch dementsprechend schwer zu verstehen und zu kontrollieren.
Bekannte Vertreter der Recurrent-Netze sind unter anderem das Elman-Netz, das Jordan-
Netz und das Hopfield-Netz.

10
Man spricht auch von zeitlich codierten Informationen bzw. der Möglichkeit, zeitliche Abhängigkeiten
von Eingaben implizit zu verarbeiten.
Kapitel 3

Überwachtes Einlernen von


FeedForward-Netzen

Widmen wir uns nun dem Einlernen von FeedForward-Netzen. Damit unser neuronales
Netz unbekannte Probleme derselben Klasse lösen kann (man spricht hier auch von dem
Prinzip der Generalisierung), müssen wir das Netz durch einen Trainingsprozess geeignet
verändern. Dabei wird das Netz während des Trainings lernen, indem die Verbindungs-
gewichte (inkl. der Schwellwerte, welche wir auch als Gewicht modelliert haben) geeignet
modifiziert werden. Wir könnten während der Lernphase auch die Topologie des Netzes ge-
eignet verändern, d.h. gegebenenfalls neue Verbindungen und neue Neuronen hinzufügen
oder vorhandene löschen. Diese Form von Lernen werden wir hier jedoch nicht behandeln.
Für die Trainingsphase benötigen wir eine (Trainings-)Menge von Trainingsbeispielen, an-
hand der unser neuronales Netz lernen soll. Um zu überprüfen, ob das Netz anschließend
erfolgreich generalisiert (und nicht nur die Trainingsbeispiele auswendig lernt), ist es oft-
mals nützlich, die Trainingsmenge in zwei Mengen zu teilen: Eine Trainingsmenge, mit der
wir wirklich trainieren, und eine Testmenge, mit der wir die Generalisierungsfähigkeit des
Netzes überprüfen und ggf. den Lernprozess für beendet erklären (siehe [Kri07] Kapitel
4.3.1).
Das Lernen können wir mittels der zwei Begriffe online und offline weiter klassifizieren.
Während bei dem Online-Lernen nach jedem Trainingsbeispiel gelernt (also das Netz
angepasst) wird, geschieht der Lernprozess bei dem Offline-Lernen erst nach einer gewissen
Anzahl an Trainingsbeispielen. Da wir bei dem Offline-Lernen den Fehler für eine Menge
von Trainingsbeispielen betrachten müssten, belassen wir es im Folgenden bei dem Online-
Lernen, lassen unser Netz also nach jedem Trainingsbeispiel lernen.
Beschäftigen wir uns nun kurz mit dem Paradigma des Lernens, mit welchem unsere
FeedForward-Netze eingelernt werden sollen.

15
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 16

3.1 Überwachtes Lernen

Wir verwenden als Lernverfahren das überwachte Lernen, bei dem uns eine Trainings-
menge P von Paaren (p, t) mit Eingabedaten bzw. Trainingsbeispielen p und deren er-
wartete, korrekte Ausgabewerte t vorliegen (jeweils als Vektor, wie in Kapitel 2 beschrie-
ben). Berechnet das Netz zu einem Eingabe-Vektor p einen Ausgabe-Vektor y, können
wir diesen mit dem korrekten Ergebnis t (nach [LC08] auch als Teaching Output be-
zeichnet) vergleichen, wobei die Differenz zwischen Soll- und Ist-Ausgabe zum Lernen des
Netzes, das heißt zum Anpassen der Verbindungsgewichtungen, verwendet wird. Diese
Differenz (t − y) nennen wir den Fehlervektor eines Trainingsbeispieles p. Während des
Trainingsprozesses versuchen wir, den Fehlervektor zu minimieren. Wie dieser Lernpro-
zess als Algorithmus genau funktioniert, schauen wir uns mit der Delta-Regel und dem
Backpropagation-Algorithmus in den nächsten Abschnitten an.
Neben dem Paradigma des überwachten Lernens existiert auch das des unüberwachten
Lernens und des bestärkenden Lernens.
Das unüberwachte Lernen findet statt, wenn ein Netz mit gegebenen Eingabemuster von
alleine lernen soll, ähnliche Muster zu identifizieren und zu klassifizieren. Bestärkendes
Lernen hingegen gibt dem Netz zusätzlich nach jedem erfolgten Durchlauf Feedback, ob
das Ergebnis richtig oder falsch war.

3.2 Gradientenbasierte Optimierungsverfahren

Bevor wir die Delta-Regel und Backpropagation of Error vorstellen, beschäftigen wir uns
kurz mit den mathematischen Grundlagen, auf denen diese Lernverfahren beruhen (s. u.a.
[Kri07], Kapitel 4.5).
Sowohl die Delta-Regel als auch Backpropagation of Error sind Gradientenbasierte Opti-
mierungsverfahren, welche verwendet werden, um in n-dimensionalen Funktionen (meist
mit sehr großem n) Maxima bzw. Minima zu finden. Ein Gradient ist ein n-komponentiger
Vektor eines Punktes, der in die Richtung des steilsten Anstiegs zeigt und dessen Betrag
den Grad der Steigung in diese Richtung angibt. Der negative Gradient zeigt dement-
sprechend in die Richtung des steilsten Abstiegs. Genauer sind Delta-Regel und Back-
propagation of Error Gradientenabstiegsverfahren. Dabei starten wir an einem beliebigen
Punkt der n-dimensionalen Funktion und bewegen uns entgegen dem Gradienten bergab,
wobei die Schrittweite proportional zum Betrag des Vektors des Gradienten ist. Anschau-
lich können wir uns das Gradientenabstiegsverfahren so vorstellen, dass wir eine Kugel
irgendwo in einer Hügellandschaft platzieren und diese rollen lassen.
Trotz ihrer erfolgsversprechenden Weise, ein Minimum zu finden, existieren gewisse Pro-
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 17

bleme und Schwierigkeiten bei dem Gradientenabstiegsverfahren, die anhand des Resultats
nicht immer ersichtlich sind:
• Lokale Minima: Statt in dem globalen, endet das Gradientenabstiegsverfahren in
einem lokalen Minimum.
• Flache Plateaus: Das Gradientenabstiegsverfahren kann sich in einem flachen Pla-
teau nur sehr langsam fortbewegen bzw. sogar ganz zum Stillstand kommen, da der
Betrag des Vektors und damit die Schrittweite sehr gering oder gar null ist.
• Überspringen guter Minima: Durch eine große Schrittweite an einem steilen Hang
kann ein gutes Minimum übersprungen werden.
• Oszillation: Durch den Wechsel von einem stark negativen zu einem stark positiven
Gradienten kann das Gradientenabstiegsverfahren in einer Schlucht oszillieren.
Abbildung 3.1 veranschaulicht anhand einer zweidimensionalen Fehlerfunktion die
möglichen vier Probleme bei dem Gradientenabstiegsverfahren.

Abbildung 3.1: Zweidimensionale Fehlerfunktion: Y-Achse zeigt den Fehler Err, X-Achse
ein Gewicht W . Mögliche Probleme bei dem Gradientenabstiegsverfahren: a) Lokale Mi-
nima b) Flache Plateaus c) Oszillation d) Überspringen guter Minima.

Bei der Delta-Regel und bei Backpropagation of Error wenden wir das Gradientenab-
stiegsverfahren auf eine (n + 1)-dimensionale Fehlerfunktion an, wobei sich jeder der n
Gewichtswerte in einer Dimension befindet. Die (n + 1)-te Dimension ist der Fehlerwert,
den die jeweilige Gewichtskonstellation verursacht. Unser Ziel ist es, das globale Minimum
des Fehlerwertes in der Fehlerfunktion zu finden und somit die passende Gewichtskonstel-
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 18

lation zu bestimmen, für die unser neuronales Netz den kleinst möglichen Fehlerwert
produziert. Dazu werden wir jedoch in den nächsten beiden Abschnitten mehr erfahren.
Leider ist es nicht möglich, die gesamte Hügellandschaft zu berechnen und dann das
globale Minimum zu berechnen, da der Rechenaufwand zur Bestimmung der gesamten
Landschaft enorm wäre. Man stelle sich ein neuronales Netz mit beispielsweise 1.000
Verbindungen vor - wir müssten von einer Funktion mit 1.000 Dimensionen das globale
Minimum analytisch berechnen!
Indem wir die Start-Initialisierung der Gewichte unseres neuronalen Netzes verändern,
können wir zumindest den Startpunkt des Gradientenabstiegsverfahrens ändern, um so
verschiedene Resultate zu erhalten. Mittels Vergleich dieser Ergebnisse wäre es uns dann
möglich, von den vielen Minima das beste auszuwählen, welches eventuell sogar dem
globalen Minimum entspricht. Eine andere Option wäre die Veränderung der Lernrate
und damit der Schrittweite. Dazu in den folgenden Abschnitten jedoch mehr.

3.3 Delta-Regel

Die Delta-Regel ist ein gradientenbasiertes Lernverfahren, welches unter Verwendung der
Trainingsmenge P einem einschichtigen Perzeptron-Netzwerk mit beliebigen Anfangs-
Gewichtungen1 eine linear separierbare Funktion antrainiert.
Zum erfolgreichen Lernen benötigen wir einen genormten Fehlerwert, welcher aussagt, wie
gut (niedriger Fehlerwert) oder schlecht (hoher Fehlerwert) das Perzeptron-Netzwerk ein
Trainingsbeispiel gelernt hat. Dieser spezifische Fehler ist von den aktuellen Gewichtswer-
ten abhängig, welche als Vektor W dargestellt werden. Mit O als Menge der Ausgabe-
Neuronen, tp,Ω als erwarteter und ap,Ω als tatsächlicher Ausgabewert eines Ausgabe-
Neurons Ω des Trainingsbeispieles p berechnen wir nach [Kri07] wie folgt den spezifischen
Fehler Errp :2

1 X 1 X 2
Errp (W ) = · (tp,Ω − ap,Ω )2 = · δ (3.1)
2 Ω∈O 2 Ω∈O p,Ω
1
Streng genommen sollten die Anfangs-Gewichtungen wohl überlegt sein: Werden alle Gewichte gleich
initialisiert, werden sie im Training immer gleichermaßen geändert. Sind sie gar 0, existieren nichtmal
Verbindungen. [Kri07] schlägt vor, sie mit Zufallswerten aus dem Intervall [−0, 5; 0, 5] (außer 0 und Werte
nahe 0) zu belegen.
2
Wir verwenden die Summe der Fehlerquadrate als das klassische“ Fehlermaß, welches auch für die

lineare Regression Verwendung findet. Es bestraft u.a. weit entfernte Ausreißer stärker und vernachlässigt
die Richtung“ der Abweichung. Die Multiplikation mit 0, 5 hat praktischen Nutzen, da sie sich später

bei der Ableitung nach ap,Ω gegen die 2 der Potenz kürzen lässt.
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 19

Der essentielle Term t−a, der die Differenz zwischen erwarteten und tatsächlichen Ausga-
bewert bildet, wird auch mit δ (gesprochen: Delta“) abgekürzt, daher hat die Delta-Regel

auch ihren Namen.
Der Gesamtfehler Err(W ) eines Perzeptron-Netzwerkes berechnet sich durch die Aufsum-
mierung der spezifischen Fehler aller Trainingsbeispiele p.

X 1 XX 2
Err(W ) = Errp (W ) = · δ (3.2)
p∈P
2 p∈P Ω∈O p,Ω

Wir versuchen nun, den Gesamtfehler zu minimieren und wenden dabei das Gradienten-
verfahren (genauer: Gradientenabstiegsverfahren) an. Bei diesem bewegen wir uns mittels
unserer momentanen Gewichtswerte für jedes Gewicht durch den Gewichtungsraum in
Richtung Minimum, d.h. entgegen der Richtung des Gradienten. Am Ende erreichen wir
eine Gewichtskonstellation, bei der der Gesamtfehler Err(W ) möglichst klein ist.

∆W = −∇Err(W ) · η (3.3)

Die Änderung der Gewichte ∆W entspricht dem negativen Gradienten der Fehlerfunktion
Err(W ) multipliziert mit der Proportionalitätskonstante η. Wir ändern unsere Gewichte
also in Richtung des negativen Gradienten, d.h. in Richtung Minimum. Die Proportio-
nalitätskonstante η bestimmt dabei die Schrittweite, welche im Kontext der neuronalen
Netze auch als Lernrate bezeichnet wird. Mit Hilfe der Lernrate η ist es möglich, die
Stärke der Gewichtsveränderung, d.h. Geschwindigkeit und Genauigkeit des Lernverfah-
rens, einzustellen, um so z.B. oszillierende Gewichtsveränderungen zu verhindern3 . Nach
[Kri07] liegen gute Werte für die Lernrate im Bereich 0, 01 ≤ η ≤ 0, 9.
Dieser soeben besprochene Zusammenhang ist in Gleichung 3.3 allgemein dargestellt. Nun
können wir die partielle Ableitung der Fehlerfunktion Err(W ) nach einem konkreten
Gewicht Wi,Ω aufstellen (Gl. 3.4).

∂Err(W )
∆Wi,Ω = −η · (3.4)
∂Wi,Ω
X ∂Errp (W )
= −η · (3.5)
p∈P
∂Wi,Ω

3
Ein simples Beispiel eines oszillierenden Lernprozesses ist in [LC08], Kapitel 6.1.1, Beispiel 6.1 zu
finden
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 20

In Gleichung 3.5 haben wir den Gesamtfehler Err(W ) durch die Summe aller spezifischen
Fehler Errp (W ) nach Gleichung 3.2 ersetzt und die Summe mittels der Summenregel der
Differentialrechnung rausgezogen.
Wir können nun die partielle Ableitung weiter umformen:

∂Errp (W ) ∂Errp (W ) ∂ap,Ω


= · (3.6)
∂Wi,Ω ∂ap,Ω ∂Wi,Ω
∂ap,Ω
= −(tp,Ω − ap,Ω ) · (3.7)
∂Wi,Ω
∂g(netp,Ω ) ∂netp,Ω
= −δp,Ω · · (3.8)
∂netp,Ω ∂Wi,Ω
= −δp,Ω · g 0 (netp,Ω ) · ap,i (3.9)

Gleichung 3.6 wendet die Kettenregel an, um im nächsten Schritt den linken Faktor durch
−(tp,Ω − ap,Ω ) zu ersetzen, indem wir Gleichung 3.1 nach ap,Ω ableiten. Die nächste Zeile
(Gl. 3.8) führt gemäß obiger Definition das δ ein und wendet die Kettenregel auf den
rechten Faktor an, wobei wir uns der Definition von ap,Ω bedienen (aj = g(netj ), s.
Abbildung 2.1). Im letzten Schritt schreiben wir die Ableitung von g(netp,Ω ) um und lösen
die Ableitung netp,Ω nach Wi,Ω , indem wir uns der Definition der Netzeingabe bedienen
(Gl. 2.1) und beachten, dass unser Wi,Ω (insbesondere der Index i) fest ist. Hier sehen wir,
dass die Aktivierungsfunktion differenzierbar sein muss, um die Delta-Regel anwenden zu
können.
Aus Gleichung 3.5 und 3.9 folgt nun die sogenannte Delta-Regel für das Offline-Lernen in
einem einschichtigen Perzeptron-Netzwerk:

X
∆Wi,Ω = η · g 0 (netp,Ω ) · δp,Ω · ap,i (3.10)
p∈P

Lernen wir online, lassen wir die Aufsummierung über die Trainingsmuster weg und er-
halten eine etwas schlankere Version der Delta-Regel:

∆Wi,Ω = η · g 0 (netΩ ) · δΩ · ai (3.11)

Der wesentliche Aspekt der Delta-Regel ist, dass die Gewichtsänderung aller Gewichte zu
einem Ausgabeneuron proportional zu der Differenz seines erwarteten und tatsächlichen
Ausgabewertes ist (δ = t − a). Ist die erwartete Ausgabe größer als die tatsächliche, steigt
der Gewichtswert Wi,Ω . Analog dazu sinkt der Gewichtswert Wi,Ω , falls die tatsächliche
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 21

Ausgabe größer als die erwartete ist. Wir erreichen dementsprechend einen neuen Ge-
wichtswert, bei dem der Fehlerwert geringer ist.

Algorithm 1 Online-Lernprozess für ein einschichtiges Perzeptron-Netzwerk mit m


Eingabe- und einer Ausgabeeinheit Ω unter Anwendung der Delta-Regel. Das Stopp-
kriterium und die Lernrate η können beliebig gewählt werden.
1: repeat
2: for all (p, P
t) der Trainingsmenge P do
3: netΩ ← m i=0 (pi · Wi,Ω )
4: δΩ ← tΩ − g(netΩ )
5: for i = 0 to m do
6: Wi,Ω ← Wi,Ω + η · g 0 (netΩ ) · δΩ · pi
7: end for
8: end for
9: until Stoppkriterium erfüllt

Am Ende sei kurz erwähnt, dass einem einschichtigen Perzeptron-Netzwerk jede linear
separierbare Funktion in endlicher Zeit antrainiert werden kann. Dies folgt nach [LC08]
aus dem Konvergenz-Theorem von Rosenblatt.

3.4 Backpropagation of Error

Die Backpropagation of Error-Lernregel (kurz: BP-Lernregel) erweitert die Delta-Regel,


sodass wir auch mehrschichtige Perzeptron-Netzwerke trainieren können. Spätestens,
wenn wir einem neuronalen Netz eine nicht linear separierbare Funktion beibringen wol-
len, kommen wir mit der Delta-Regel nicht mehr aus und müssen uns der BP-Lernregel
bedienen.
Der entscheidende Aspekt bei der BP-Lernregel ist, dass der Fehler δ, welcher sich nach
der Delta-Regel nur für die Ausgabeeinheiten bilden lässt, von hinten nach vorne über die
verdeckten Einheiten durchgereicht wird. Wir wollen demnach nun den Begriff des Fehlers
verallgemeinern, sodass wir auch für die verdeckten Einheiten einen Fehlerwert δ bilden
können.
Im Folgenden werden wir unser aktuelles Neuron mit h bezeichnen. Seine Vorgängerschicht
sei K mit den Neuronen k und seine nachfolgende Schicht L mit den Neuronen l. Diese
Konvention werden wir in diesem Abschnitt durchgehend einhalten.
Gehen wir kurz nochmal die Herleitung der Delta-Regel durch und schauen, wie wir
den spezifischen Fehler Errp (W ) nach einem Gewicht Wk,h mit h als verdeckte Einheit
ableiten können (bei der Delta-Regel war unser h stets Ω, eine Ausgabeeinheit). Dabei
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 22

fällt auf, dass wir in Gleichung 3.6 für den linken Faktor ∂Errp (W )
∂ap,h
eine andere Lösung
erhalten werden, da der korrekte Ausgabewert th für unsere verdeckte Einheit h fehlt.
Diese Ableitung ist jedoch von allen Netzeingaben der nachfolgenden Neuronen l abhängig,
sodass wir nach der mehrdimensionalen Kettenregel Gleichung 3.12 aufstellen können:

 
∂Errp (W ) X ∂Errp (W ) ∂netp,l
= · (3.12)
∂ap,h l∈L
∂net p,l ∂ap,h
X
= (δl · Wh,l ) (3.13)
l∈L
= δh , h ist verdeckte Einheit (3.14)

Der linke Faktor aus Gleichung 3.12 entspricht dabei dem Fehlerwert δl des Neurons l aus
der Nachfolgeschicht. Der rechte Faktor kann nach der Definition der Netzeingabe (s. Gl.
2.1) zu Wh,l vereinfacht werden. Es ergibt sich damit Gleichung 3.13. Dieser Term soll bei
der BP-Lernregel unser δh sein, wenn h eine verdeckte Einheit ist. Den Fall, dass h eine
Ausgabeeinheit ist, haben wir ja schon mit unserer Delta-Regel abgedeckt.
Nun folgt unmittelbar die Formel der BP-Lernregel für mehrschichtige Perzeptron-
Netzwerke für das Online-Lernen in Gleichung 3.15:

(
th − ah , h ist Ausgabeeinheit
∆Wk,h = η · g 0 (neth ) · ak · δh mit δh = P (3.15)
l∈L (δl · Wh,l ), h ist verdeckte Einheit

Es existiert somit eine wesentliche Erweiterung zu der Delta-Regel:


Ist das Neuron h eine verdeckte Einheit, so ist die Änderung des Gewichtes einer Verbin-
dung zu h proportional zu δh , der gewichteten Summe der Gewichtsveränderungen zu allen
Neuronen der nächsten Schicht, mit denen h verbunden ist. Intuitiv erscheint uns dieses
genau richtig: Umso größer bzw. kleiner die Gewichtsveränderungen der Verbindungen von
h weg ausgefallen sind, umso größer bzw. kleiner sollten auch die Gewichtsveränderungen
der Verbindungen zu h hin ausfallen.
Die BP-Lernregel ist in Algorithmus 2 detailliert dargestellt. Dieser Algorithmus folgt
dem Online-Lernen. Es durchläuft solange alle Trainingsbeispiele (p, t), bis ein vom An-
wender festgelegtes Stoppkriterium erfüllt wird. Dieses ist oftmals so gewählt, dass der
Gesamtfehler des Netzes unter einem bestimmten Grenzwert fallen soll. Ein Durchlauf
über alle Trainingsbeispiele wird auch als Epoche bezeichnet.
In den Zeilen 3-5 wird den Eingabeneuronen das Trainingsmuster p angelegt. Die Zeilen
6-11 sorgen dafür, dass, Schicht für Schicht bis zur Ausgabeschicht, der Ausgabewert eines
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 23

Algorithm 2 Backpropagation-Algorithmus als Online-Lernverfahren für ein Perzeptron-


Netzwerk. Das Stoppkriterium und die Lernrate η können beliebig gewählt werden.
k ∈ N [s] ist hierbei eine Kurzform für ein Neuron k der s-ten Schicht“.

1: repeat
2: for all (p, t) der Trainingsmenge P do
3: for all Neuronen i der Eingabeschicht do
4: ai ← p i
5: end for
6: for s = erste verdeckte Schicht to Ausgabeschicht do
7: for all Neuronen
P i der s-ten Schicht do
8: neti ← k∈N [s−1] (ak · Wk,i )
9: ai ← g(neti )
10: end for
11: end for
12: for all Neuronen i der Ausgabeschicht do
13: δi ← ti − ai
14: end for
15: for s = letzte verdeckte Schicht downto Eingabeschicht do
16: for all Neuronen
P h der s-ten Schicht do
17: δh ← l∈N [s+1] (δl · Wh,l )
18: for all Neuronen l der (s + 1)-ten Schicht do
19: Wh,l ← Wh,l + η · g 0 (netl ) · ah · δl
20: end for
21: end for
22: end for
23: end for
24: until Stoppkriterium erfüllt
KAPITEL 3. ÜBERWACHTES EINLERNEN VON FEEDFORWARD-NETZEN 24

jeden Neurons berechnet wird. Nachfolgend wird in den Zeilen 12-14 für jedes Ausgabe-
neuron sein δ berechnet, wie schon aus der Delta-Regel bekannt. Nun folgt ab Zeile 15
ein Durchlauf über alle Schichten, beginnend bei der letzten verdeckten Schicht bis nach
vorne“ zur Eingabeschicht. Zunächst wird in Zeile 17 für jedes Neuron h der aktuellen

Schicht sein δh gemäß Gleichung 3.15 berechnet. Anschließend aktualisieren wir in den
Zeilen 18-20 jede von h ausgehende Verbindung (vgl. Gl. 3.15). Der Fehler δ wird somit
von der Ausgabeschicht schrittweise bis zur Eingabeschicht zurück geleitet, weshalb dieses
Verfahren auch als Backpropagation of Error“ bekannt ist.

An dieser Stelle sei erwähnt, dass für die logistische Aktivierungsfunktion glog folgende
Differenzialgleichung gilt, welche uns das Berechnen von g 0 wesentlich einfacher macht:
0
glog = glog · (1 − glog ).
[Kri07] stellt in Kapitel 4.6 einige Beispielproblemstellungen vor, um zu testen, ob die
Implementierung und das Lernverfahren eines Netzes korrekt arbeitet. Alleine das Lernen
der Identitätsabbildung R1 → R1 bei Netzen mit logistischer Aktivierungsfunktion ist
eine schwierige Aufgabe.
Kapitel 4

Anwendungsgebiete

Künstliche neuronale Netze werden in sehr vielen unterschiedlichen Anwendungsgebieten


eingesetzt. Ihre Anwendung ist besonders dann sinnvoll, wenn wenig explizites, syste-
matisches Wissen über das zu lösende Problem vorliegt. Wir besitzen demnach keine
mathematische Funktion, die unser Problem analytisch lösen kann, sondern müssen uns
auf die Generalisierungsfähigkeit des neuronalen Netzes verlassen, welches wir z.B. mittels
des überwachten Lernens eingelernt haben.
Typische Anwendungsgebiete eines künstlichen neuronalen Netzes sind die Bilderken-
nung, Texterkennung, Gesichtserkennung, Spracherkennung, oder allgemein die Musterer-
kennung. Sie werden des Weiteren auch als Frühwarnsysteme, Zeitreihenanalyse im z.B.
Wetterdienst, allgemein in der Prognose oder in der Regelungs- bzw. Steuerungstechnik
eingesetzt, wie etwa zur Steuerung von Bein-, Hand- oder anderen Prothesen.
Ein klassisches Anwendungsgebiet ist die Erkennung von handschriftlichen Ziffern und
Buchstaben, wie etwa kurz in [RN04] (Kapitel 20.7) dargestellt. Sie wird unter anderem
alltäglich bei dem Einlesen von Schecks, der automatischen Sortierung nach Postleitzahlen
oder bei der Dateneingabe bei Handheld-Computern verwendet. Die Anwendungsgebiete
weiten sich auf z.B. Scanner, Digital Pens, Tablet-Computer aus. [RN04] stellt ein einfa-
ches neuronales Netz mit einer einzigen verborgenen Schicht vor, welches 20 x 20 = 400
Pixel Ziffernproben den richtigen Ziffern zuordnen soll. Dabei werden 400 Eingabe- (eine
für jedes Pixel) und 10 Ausgabeeinheiten (eine für jede Ziffer) verwendet. Es hat sich
dann herausgestellt, dass etwa 300 verdeckte Einheiten mit insgesamt 123.300 Gewich-
tungen (vollständige Verknüpfung, inkl. Bias-Neuron) die beste Leistung erzielt haben.
Dieses Netzwerk konnte eine Fehlerrate von 1,6% erzielen. Spezialisiertere neuronale Net-
ze konnten die Fehlerrate auf 0,7% senken, benötigten jedoch eine längere Laufzeit pro
Ziffernprobe und deutlich mehr Trainingsaufwand.
Selbstverständlich werden künstliche neuronale Netze auch in der Biologie eingesetzt, um

25
KAPITEL 4. ANWENDUNGSGEBIETE 26

etwa das Gehirn von Lebewesen zu verstehen. So existiert z.B. seit Mai 2005 das Blue
Brain-Projekt (s. [Blu10]), welches mittels komplexer Computermodelle Verständnis über
die Funktionsweise des Gehirns erlangen möchte. Diese Simulation basiert jedoch nicht
nur auf neuronale Netze, sondern auch auf biologisch plausiblen und komplexen Modellen

verschiedener Nervenzelltypen“ (s. [Wik10]). Angestrebt wird zunächst die vollständige
Simulation einer neokortikalen Säule auf zellulärer Ebene (Scheibe von Rattengehirn)
mit etwa 10.000 Nervenzellen (Neuronen) und 108 Synapsen (Verbindungen). Was jedoch
die Simulation von Gehirnen angeht, wird gerne auch einmal mit falschen Hoffnungen
gespielt: So lässt sich in [Kli09] von der bewussten Irreführung lesen, dass IBM angeblich
ein Katzengehirn simuliert habe. In der Tat sei IBM, so der Leiter des Blue Brain-Projektes
Lichtjahre entfernt von einem Katzengehirn, nicht einmal nahe einem Ameisengehirn in

der Komplexität“.
If the brain were so simple that we could understand it then we’d be so simple that we

couldn’t.“ Lyall Watson
Kapitel 5

Zusammenfassung und Ausblick

Fassen wir nun kurz zusammen, wie wir ein künstliches neuronales FeedForward-Netz
entwickeln und erfolgreich einlernen.
Zunächst bauen wir uns eine feste Netzwerkarchitektur auf. Leider ist es jedoch eine große
Schwierigkeit, von Anfang an die richtige Netzwerkarchitektur zu wählen. Während die
Anzahl der Ein- und Ausgabeeinheiten durch die Problemstellung bekannt sein sollte, ist
es mit den verdeckten Schichten bzw. der Anzahl der verdeckten Einheiten umso schwerer.
[RN04] schreibt sogar: Das Problem, die richtige Anzahl verborgener Einheiten im Voraus

auszuwählen, ist immer noch nicht wirklich verstanden“. Generell können wir uns dennoch
daran orientieren, dass die Anzahl der verdeckten Einheiten grundsätzlich der Zahl der
freien Parameter des zu repräsentierenden Problems entspricht. Die Anzahl der verdeckten
Schichten hängt von der zu repräsentierenden Funktion ab und sollte gemäß Tabelle 2.1
bestimmt werden.
Die Anzahl und Eigenschaften der Trainingsbeispiele, mit Hilfe derer gelernt wird, und
die der Testmuster, mit Hilfe derer die Generalisierungsfähigkeit geprüft wird, sollte im
angemessenen Rahmen liegen. Sind zu wenig Trainingsbeispiele vorhanden, fällt es unse-
rem Netz schwer, zu lernen bzw. zu generalisieren. Wir sollten bedenken, dass bei einem
zu großen Netzwerk die Gefahr droht, dass es nur seine Trainingsbeispiele auswendig lernt
und die Generalisierungsfähigkeit verliert. Am Besten wählen wir den Bottom-Up-Ansatz,
gemäß dem Motto so wenig Komplexität wie möglich, so viel wie nötig“. Schließlich ist

es nicht unser Ziel, alle Trainingsmuster korrekt zu klassifizieren, sondern möglichst viele
Testmuster korrekt zu bearbeiten, die nicht Bestandteil der Trainingsmenge sind.
Wir sollten uns auch im Vorhinein überlegen, welche Aktivierungsfunktion, welchen Wer-
tebereich für die Aktivitäten der Neuronen (z.B. Intervall [0,1] oder [-1,1]) etc. wir ver-
wenden wollen bzw. was für die aktuelle Problemstellung am meisten Sinn macht.
Sind die Ergebnisse unseres derzeitigen Netzes noch nicht zufrieden stellend, verbleiben

27
KAPITEL 5. ZUSAMMENFASSUNG UND AUSBLICK 28

uns viele Stellschrauben, mit Hilfe derer wir das Ergebnis des Netzes beeinflussen können.
Die Lernrate und die Wahl des Lernalgorithmus sind zwei wichtige davon:
Die Wahl der Lernrate hat einen großen Einfluss auf den Lernprozess, wie wir im Kapitel
der Delta-Regel festgestellt haben. Es gibt außerdem verschiedene Ansätze, mit der Lern-
rate zu spielen“. So ist eine Variation der Lernrate über die Zeit vorstellbar, oder dass

der Wert der Lernrate steigt, je näher das zu verändernde Gewicht an der Eingabeschicht
ist, da Backpropagation dort langsamer lernt.
Der Backpropagation-Algorithmus selbst kann auch vielfach erweitert werden (s. [Kri07],
Kapitel 5.5.4). Viele Erweiterungen versuchen, die Schwierigkeiten und Probleme, die
mit dem Gradientenabstiegsverfahren auftreten, zu vermeiden, gehen jedoch nicht selten
mit zusätzlichen Bedingungen und Einschränkungen einher. So könnten wir bei der BP-
Lernregel auch die zweite Ableitung der Fehlerfunktion mit einfließen lassen, um noch
mehr Informationen über die Hügellandschaft“ der Fehlerfunktion zu erhalten. Diese Er-

weiterung mag zwar sinnvoll erscheinen, erhöht jedoch den Rechenaufwand signifikant,
sodass am Ende die Lernzeit oft sogar größer als die bei dem normalen Backpropagation-
Verfahren ist. Auch könnten wir die Gewichte dämpfen, sodass, biologisch motiviert, allzu
große Gewichte bestraft werden. Oder das Hinzufügen eines Trägheitsmoments zur Schritt-
weite, indem jeder neuen Gewichtsänderung immer ein Anteil der vorherigen Änderung
hinzuaddiert wird (Nachteil hier: Das Überspringen guter Minima tritt häufiger auf). Au-
ßerdem wäre ein Verfahren denkbar, dass unnötige Verbindungen und Neuronen während
des Lernprozesses aus dem Netz entfernen kann, sodass sich unsere Netzwerkstruktur
dynamisch verändern kann.
Mehrschichtige Perzeptron-Netzwerke sind insgesamt jedoch relativ schwer zu trainieren,
da der Gewichtungsraum hochdimensional ist und das Gradientenabstiegsverfahren einige
Schwierigkeiten bzw. Nachteile mit sich bringt, die nicht komplett durch Modifikation des
Backpropagation-Algorithmus vermieden werden können. Das wahrscheinlich größte Pro-
blem ist, dass man nie sicher sein kann, das globale Minimum im Fehlerraum gefunden zu
haben, und nicht nur ein lokales. Eine Lösung bestände in einer vielfachen Wiederholung
des Lernprozesses mit unterschiedlichen Anfangs-Gewichtsbelegungen.
Eine weitere Thematik, die wir in dieser Arbeit nur kurz angerissen haben, sind die
Recurrent-Netze. Das Einlernen bzw. Trainieren von Recurrent-Netzen wird u.a. in [Kri07]
näher erläutert. Wir könnten außerdem auch anstelle des überwachten Lernens das Lern-
verfahren des unüberwachten oder des bestärkenden Lernens wählen. Die hier vorgestell-
ten Lernalgorithmen basieren jedoch nur auf dem Paradigma des überwachten Lernens.
Heutzutage beschäftigt sich die Wissenschaft mit der dritten Generation von Modellen für
neuronale Netzwerke, den sogenannten Spiking neural networks (SNNs)“ (s. [SNN10] und

[Nat00]). Diese berücksichtigen zusätzlich das Timing der einzelnen Berechnungsschritte
KAPITEL 5. ZUSAMMENFASSUNG UND AUSBLICK 29

bzw. das Konzept der Zeit, welches in den vorangegangenen Modellen sehr stark verein-
facht wurde. Es lässt sich zeigen, dass die Berechnungsstärke von SNN’s mindestens so

groß ist, als die der wichtigsten bisher in der theoretischen Informatik verwendeten Re-
chenmodelle wie die Turingmaschie oder die parallel random access machine“ (PRAM)“,

so zitiert aus [Nat00].
Literaturverzeichnis

[Blu10] Blue Brain Project. 2010. http://bluebrain.epfl.ch/.


[Kli09] Bernd Kling. IBM simuliert - kein Katzengehirn. Telepolis, 2009. http://www.
heise.de/tp/r4/artikel/31/31566/1.html.
[Kri07] David Kriesel. Ein kleiner Überblick über Neuronale Netze. 2007. erhältlich auf
http://www.dkriesel.com/science/neural_networks.
[LC08] U. Lämmel and J. Cleve. Künstliche Intelligenz. Carl Hanser Verlag, dritte neu
bearb. edition, 2008.
[Nat00] Thomas Natschläger. Netzwerke von ,,spiking“ Neuronen: Die dritte Generati-
on von Modellen für Neuronale Netzwerke. Institute for Theoretical Computer
Science, 2000. http://www.igi.tugraz.at/tnatschl/online/3rd_gen_ger/.
[RN04] S. Russell and P. Norvig. Künstliche Intelligenz: Ein moderner Ansatz. Pearson
Studium, zweite edition, 2004.
[SNN10] Spiking neural network. Wikipedia, 2010. 13.01.2010. http://en.wikipedia.
org/wiki/Spiking_neural_network.
[Wik10] Blue Brain. Wikipedia, 2010. 13.01.2010. http://de.wikipedia.org/wiki/
Blue_Brain.

30

Das könnte Ihnen auch gefallen