Beruflich Dokumente
Kultur Dokumente
München
Neuronale Netze
Proseminar
Sören Jentzsch
1 Einleitung 2
4 Anwendungsgebiete 25
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
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.
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 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).
(
1, netj ≥ 0
gschw (netj ) = (2.3)
0, sonst
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
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.
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
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
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.
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.
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.2 Recurrent-Netze
10
Man spricht auch von zeitlich codierten Informationen bzw. der Möglichkeit, zeitliche Abhängigkeiten
von Eingaben implizit zu verarbeiten.
Kapitel 3
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
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.
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:
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:
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.
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.
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
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
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
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
30