Neuronale Netze - Timo Becker
Neuronale Netze - Timo Becker
Neuronale Netze - Timo Becker
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Ludwig-Maximilians-Universität München<br />
Institut für Informatik<br />
Seminar Knowledge Discovery in Databases<br />
Leitung: Annahita Oswald, Bianca Wackersreuther<br />
Sommersemester 2010<br />
<strong>Neuronale</strong> <strong>Netze</strong><br />
26.04.2010<br />
<strong>Timo</strong> <strong>Becker</strong> (4. Semester) HF: Medieninformatik<br />
NF: Medienwirkung
<strong>Neuronale</strong> <strong>Netze</strong><br />
Inhaltsverzeichnis<br />
1 Die Motivation künstlicher <strong>Neuronale</strong>r <strong>Netze</strong>....................................................................2<br />
2 Das biologische Vorbild......................................................................................................2<br />
3 Künstliche <strong>Neuronale</strong> <strong>Netze</strong>...............................................................................................3<br />
3.1 Allgemeines.................................................................................................................3<br />
3.2 Die Verarbeitungseinheit.............................................................................................3<br />
3.2.1 Die <strong>Netze</strong>ingabe ..................................................................................................3<br />
3.2.2 Der Aktivierungszustand.....................................................................................4<br />
3.2.3 Die Ausgabe.........................................................................................................4<br />
3.3 Die Netztopologie........................................................................................................5<br />
3.3.1 Topologieklassen.................................................................................................5<br />
3.3.2 Topologiedesign...................................................................................................5<br />
3.3.2.1 Die Neuronenanzahl.....................................................................................6<br />
3.3.2.2 Die Schichtenanzahl.....................................................................................6<br />
3.4 Die Lernregel...............................................................................................................6<br />
3.4.1 Lernmechanismen................................................................................................7<br />
3.4.2 Lernverfahren......................................................................................................7<br />
3.4.3 Lernalgorithmen..................................................................................................7<br />
3.4.3.1 Hebbsche Lernregel.....................................................................................7<br />
3.4.3.2 Delta-Regel..................................................................................................8<br />
3.4.3.3 Backpropagation..........................................................................................8<br />
4 Zur Leistungsfähigkeit künstlicher <strong>Neuronale</strong>r <strong>Netze</strong>........................................................9<br />
Literaturverzeichnis..............................................................................................................10<br />
1
<strong>Neuronale</strong> <strong>Netze</strong><br />
1 Die Motivation künstlicher <strong>Neuronale</strong>r <strong>Netze</strong><br />
Die Informationsarchitektur des menschlichen<br />
Gehirns, das sogenannte <strong>Neuronale</strong> Netz, ist<br />
in vielerlei Hinsicht bemerkenswert<br />
leistungsfähig. Als Beispiel sei hier,<br />
wenngleich zunächst trivial erscheinend, die Registrierung in einem Internetforum<br />
angeführt. Aufgrund immer elaborierter agierender Spambots besteht mittlerweile<br />
die Notwendigkeit, die Authentizität eines potentiellen Forenmitglieds nicht nur<br />
mittels der Eingabemaske zu verifizieren, sondern zusätzlich über spezielle<br />
Bildcodes (Abbildung 1). Diese in der Regel zufällig generierten Grafiken machen<br />
sich dabei einige Eigenschaften des menschlichen Denkens zunutze, die selbst<br />
modernste Software bisher nur in sehr beschränktem Maße besitzt: Fehlertoleranz<br />
und Robustheit gegenüber Abweichungen, ein ausgeprägtes<br />
Generalisierungsvermögen sowie die Fähigkeit, zu lernen und Gelerntes – auch<br />
auf unbekannte Bereiche – wieder erfolgreich anzuwenden [1, 691]. So gelingt es<br />
einem Menschen im Allgemeinen mühelos, die abgebildete Zeichenfolge zu<br />
erkennen, während Bots effektiv daran gehindert werden, sich zu registrieren.<br />
Dass man <strong>Neuronale</strong> <strong>Netze</strong> schließlich auch als möglichen Lösungsansatz für<br />
Probleme in der Informatik erkannte, ist daher nur konsequent.<br />
2 Das biologische Vorbild<br />
Das biologische Vorbild künstlicher <strong>Neuronale</strong>r <strong>Netze</strong>, das menschliche Gehirn,<br />
besteht aus einer Vielzahl einfacher Verarbeitungseinheiten, sogenannten<br />
Neuronen. Diese sammeln über Dendriten, verästelte Ausläufer, die<br />
Kontaktstellen zu zahlreichen anderen Neuronen realisieren, elektrische Impulse<br />
auf und erzeugen gegebenenfalls selbst ein Aktionspotential, falls die<br />
gesammelten Impulse einen bestimmten Schwellenwert überschreiten. Dieses<br />
elektrische Potential wird wiederum über eine Nervenfaser der Zelle, das<br />
sogenannte Axon, an verschiedene, als Synapsen bezeichnete Kontakte zu den<br />
Dendriten folgender Neuronen weitergeleitet. Die Leistungsfähigkeit des Systems<br />
resultiert dabei letztlich aus der hochgradigen Verknüpfung und Parallelität<br />
mehrerer Milliarden dieser Neuronen. [3, 120f.]<br />
Abb. 1: Bildcode<br />
(Quelle: w w w.die-informatiker.net)<br />
2
<strong>Neuronale</strong> <strong>Netze</strong><br />
3 Künstliche <strong>Neuronale</strong> <strong>Netze</strong><br />
3.1 Allgemeines<br />
Ein künstliches <strong>Neuronale</strong>s Netz kann nun zunächst als gerichteter, gewichteter<br />
Graph interpretiert werden. Die Knoten des Graphen werden dabei, dem<br />
biologischen Vorbild Rechnung tragend, als Neuronen bezeichnet, die Kanten als<br />
Verbindungen. [5, 11f.] Gerichtet bezieht sich, wie aus der Graphentheorie<br />
bekannt, auf die Art des Informationsaustauschs zwischen zwei Neuronen,<br />
gewichtet auf die Modifikation dieser Information durch einen multiplikativen<br />
Faktor.<br />
Hinzu tritt eine sogenannte Lernregel, ein Algorithmus, der sicherstellt, dass das<br />
Netz in endlicher Zeit lernt, für gegebene Eingaben gewünschte Ausgaben zu<br />
produzieren [6]. Ein künstliches <strong>Neuronale</strong>s Netz ist so in der Lage, Datenmengen<br />
zu klassifizieren, etwa Bankkunden bezüglich ihrer Kreditwürdigkeit. Liegt keine<br />
Trainingsmenge vor, bedarf es – wiederum mit Hilfe der Lernregel – einer<br />
Selbstorganisation des <strong>Netze</strong>s [4, 52], die dem Clustering der Daten entspricht.<br />
Die folgenden Kapitel sollen einen Überblick über die prinzipiellen Mechanismen<br />
in einem künstlichen <strong>Neuronale</strong>n Netz bieten.<br />
3.2 Die Verarbeitungseinheit<br />
Das zentrale Element <strong>Neuronale</strong>r <strong>Netze</strong> ist das Neuron. Wie sein biologisches<br />
Pendant sammelt dabei auch das künstliche Neuron gewichtete Ausgaben<br />
anderer Neurone auf, die eine entsprechend gerichtete Verbindung besitzen. Aus<br />
dieser sogenannten <strong>Netze</strong>ingabe leitet sich der Aktivierungszustand des Neurons<br />
ab, der wiederum bestimmt, ob das Neuron selbst eine Ausgabe an folgende<br />
Neuronen weiterleitet. [5, 12] Der mathematische Zusammenhang dieser<br />
Komponenten ist nachfolgend näher beschrieben.<br />
3.2.1 Die <strong>Netze</strong>ingabe<br />
Die <strong>Netze</strong>ingabe net i eines Neurons i ergibt sich aus der Propagierungsfunktion<br />
des <strong>Neuronale</strong>n <strong>Netze</strong>s. Typischerweise ist dies die Summe der gewichteten<br />
Ausgaben aller Neurone, die eine Verbindung zu Neuron i besitzen:<br />
3
<strong>Neuronale</strong> <strong>Netze</strong><br />
net i<br />
=∑<br />
h<br />
o h<br />
⋅w hi<br />
Der Faktor o h entspricht hierbei der Ausgabe eines Neurons h, w hi dem<br />
Verbindungsgewicht der Kante von Neuron h zu Neuron i. Der Wert der<br />
<strong>Netze</strong>ingabe liegt theoretisch im Bereich ]-∞;∞[. [4, 37]<br />
3.2.2 Der Aktivierungszustand<br />
Die Berechnung des Aktivierungszustands a i eines Neurons i erfolgt nun mit Hilfe<br />
der sogenannten Aktivierungsfunktion f a , die die <strong>Netze</strong>ingabe normalisiert:<br />
a i<br />
= f a<br />
net i<br />
<br />
Je nach Problemstellung sind hierbei unterschiedliche Aktivierungsfunktionen<br />
gebräuchlich, etwa eine Schwellenwertfunktion für binäre Zustände:<br />
f a<br />
net i<br />
= {1, falls net i ≥<br />
0, falls net i<br />
<br />
Unterschreitet die <strong>Netze</strong>ingabe die Konstante Θ, so wird als Aktivierung 0<br />
ausgegeben, andernfalls 1. Eine weitere Möglichkeit ist die Verwendung einer<br />
sigmoiden Funktion, die sich aufgrund ihrer Differenzierbarkeit gerade in <strong>Netze</strong>n<br />
mit Backpropagation anbietet:<br />
f a<br />
net i<br />
= 1<br />
1e −net i<br />
Die Aktivierung nähert sich dabei mit zunehmender <strong>Netze</strong>ingabe der 1 an und<br />
besitzt den Wertebereich ]0;1[. Benötigt man demgegenüber auch negative<br />
Aktivierungen, bietet sich die Funktion<br />
]-1;1[ an. [5, 12f.; 4, 37ff.]<br />
3.2.3 Die Ausgabe<br />
f a<br />
net i<br />
=tanh net i<br />
mit Wertebereich<br />
Die Ausgabe o i des Neurons i wird schließlich mittels einer sogenannten<br />
Outputfunktion f o berechnet, die als Parameter den Aktivierungszustand<br />
entgegennimmt: o i<br />
= f o<br />
a i<br />
. In der Regel entspricht diese Funktion der Identität,<br />
sodass die Ausgabe des Neurons gerade seiner Aktivierung entspricht: o i<br />
=a i .<br />
[4, 40]<br />
4
<strong>Neuronale</strong> <strong>Netze</strong><br />
nachfolgend erörtert werden.<br />
3.3.2.1 Die Neuronenanzahl<br />
Die Neuronenanzahl ist von entscheidender Bedeutung für die Leistungsfähigkeit<br />
eines <strong>Neuronale</strong>n <strong>Netze</strong>s. Innerhalb der Eingabe- und Ausgabeschicht ergibt sie<br />
sich dabei mehr oder weniger aus der vorliegenden Problemstellung und den zur<br />
Verfügung stehenden Daten. So erscheint es sinnvoll, jede relevante numerische<br />
Eingabe mit einem Eingabeneuron zu assoziieren und für jede boolsche<br />
Entscheidung ein Ausgabeneuron vorzusehen. Für die Anzahl in den inneren<br />
Schichten existiert hingegen kein Patentrezept, sodass sich lediglich einige<br />
Heuristiken angeben lassen, um sich experimentell der passenden Neuronenzahl<br />
anzunähern. So lässt etwa eine niedrige Klassifikationsgüte des <strong>Netze</strong>s, das heißt<br />
die mangelnde Fähigkeit, die Trainingsmenge zu lernen, auf eine zu geringe<br />
Anzahl innerer Neuronen schließen, wohingegen bei zu vielen Neuronen ein<br />
Overfitting-Effekt auftreten kann. Letzterer lässt sich mittels einer von der<br />
Trainingsmenge disjunkten Testmenge nachweisen. [8]<br />
3.3.2.2 Die Schichtenanzahl<br />
Wie die Neuronenanzahl ist auch die Schichtenanzahl eine bedeutende<br />
Einflussgröße der Leistungsfähigkeit des <strong>Netze</strong>s. So kann ein <strong>Neuronale</strong>s Netz<br />
ohne versteckte Schicht beispielsweise nur eine lineare Separation des<br />
Eingaberaumes vornehmen, das heißt zwei Bereiche durch eine Gerade<br />
respekive (Hyper-)Ebene abtrennen. Viele Problemstellungen innerhalb der<br />
Informatik, so etwa das XOR-Problem, lassen sich hierdurch jedoch nicht lösen,<br />
sodass in der Regel zumindest eine versteckte Schicht existiert, um die<br />
Klassifizierung konvexer Mengen zu ermöglichen. Die Hinzunahme einer zweiten<br />
versteckten Schicht erlaubt schließlich – eine passende Neuronenanzahl<br />
vorausgesetzt – die Klassifikation beliebiger Mengen. [4, 82ff.]<br />
3.4 Die Lernregel<br />
Besitzt das künstliche <strong>Neuronale</strong> <strong>Netze</strong> mittlerweile bereits prinzipiell die<br />
Fähigkeit, eine – wenngleich zufällige – Ausgabe zu produzieren, ist es erst die<br />
Hinzunahme einer Lernregel, die ihm ermöglicht, Cluster zu bilden und Daten zu<br />
6
<strong>Neuronale</strong> <strong>Netze</strong><br />
klassifizieren. Die folgenden Kapitel widmen sich daher den Mechanismen,<br />
Verfahren und Algorithmen des Lernens.<br />
3.4.1 Lernmechanismen<br />
Um das Lernen in einem <strong>Neuronale</strong>n Netz grundsätzlich zu ermöglichen, bedarf<br />
es zunächst eines Mechanismus, der die Modifikation desselben und somit die<br />
Annäherung an die gewünschte Ausgabe gestattet. Potentielle Mechanismen sind<br />
etwa das Hinzufügen oder Löschen von Verbindungen oder Neuronen, die<br />
Änderung des Lernalgorithmus respektive der in Kapitel 3.2 beschriebenen<br />
Funktionen, sowie die Modifikation der Verbindungsgewichte. [7, 55]<br />
3.4.2 Lernverfahren<br />
Im Gegensatz zu Lernmechanismen, die ausgehend von der Struktur <strong>Neuronale</strong>r<br />
<strong>Netze</strong> technische Möglichkeiten zur Realisierung eines Lernvorgangs aufzeigen,<br />
beschreiben die sogenannten Lernverfahren eine eher konzeptuelle Ebene des<br />
Lernens. So unterscheidet man hier im Allgemeinen zwischen überwachtem und<br />
unüberwachtem Lernen. Während Ersteres stets eine Trainingsmenge<br />
voraussetzt, die gelernt und über die generalisiert werden kann, erfordert das<br />
auch als unsupervised learning bezeichnete unüberwachte Lernen eine gewisse<br />
Selbstorganisation des <strong>Netze</strong>s, die letztlich als Clustering der Daten interpretiert<br />
werden kann. [3, 122]<br />
3.4.3 Lernalgorithmen<br />
Die Lernalgorithmen schließlich stellen die praktische Umsetzung des<br />
Lernvorgangs dar. Wie die meisten in der Praxis eingesetzten Algorithmen<br />
beschränkt sich dabei auch diese Arbeit auf Lernen mittels Gewichtsmodifikation,<br />
formal durch die Gleichung w ij<br />
t1=w ij<br />
tw ij für ein beliebiges Gewicht w ij<br />
und seine Modifikation ∆w ij zum Zeitpunkt (t+1) beschreibbar. [7, 73]<br />
3.4.3.1 Hebbsche Lernregel<br />
Die Hebbsche Lernregel ist ein auf den Psychologen Donald Hebb<br />
zurückgehendes, unüberwachtes [7, 72] Lernverfahren aus dem Jahre 1949.<br />
Sinngemäß kann es wie folgt formuliert werden: „Wenn Neuron j eine Eingabe von<br />
7
<strong>Neuronale</strong> <strong>Netze</strong><br />
Neuron i erhält und beide gleichzeitig stark aktiv sind, dann erhöhe das Gewicht w ij<br />
(also die Stärke der Verbindung von i nach j).“ Der Algorithmus verstärkt demnach<br />
die bereits latent existierenden Korrelationen der Aktivierungszustände zweier<br />
Neurone, indem er das Kantengewicht ihrer Verbindung modifiziert. In eine<br />
mathematische Formel überführt lautet die Lernregel demnach w ij<br />
=⋅o i<br />
⋅a j ,<br />
mit η als konstanter Lernrate, die gleichsam Geschwindigkeit wie Vergessensrate<br />
des Lernprozesses in sich vereint. So ist ersichtlich, dass die Gewichtsänderung<br />
pro Lernschritt mit größer werdendem η ebenfalls zunimmt, der vorherige<br />
Gewichtswert jedoch umso weniger ins Gewicht fällt. [4, 66f.; 2, 86f.]<br />
3.4.3.2 Delta-Regel<br />
Die Delta-Regel stellt demgegenüber ein überwachtes Lernverfahren für<br />
<strong>Neuronale</strong> <strong>Netze</strong> ohne versteckte Schichten dar, benötigt demnach eine<br />
Trainingsmenge. Ist diese gegeben, werden die Gewichte nach der Formel<br />
w ij<br />
=⋅o i<br />
⋅ j mit j<br />
=t j<br />
−o j<br />
modifiziert. Der Faktor δ j steht hierbei für die<br />
Abweichung der aktuellen Ausgabe des Neurons j von seiner gewünschten<br />
Ausgabe t j . Der Betrag der Gewichtsänderung von w ij erhöht sich folglich mit<br />
zunehmender Differenz der Ausgabe vom sogenannten teaching output. [2, 87]<br />
3.4.3.3 Backpropagation<br />
Backpropagation als ein in den 1970er Jahren entwickeltes, überwachtes<br />
Lernverfahren kann schließlich als Verallgemeinerung der Delta-Regel für <strong>Netze</strong><br />
mit inneren Schichten angesehen werden [7, 87ff.]. Die prinzipielle Idee besteht<br />
dabei in der sukzessiven Rückpropagierung des berechneten Netzfehlers an die<br />
einzelnen Schichten und einer damit einhergehenden Modifikation der Gewichte<br />
gemäß ihrem jeweiligen Fehleranteil. So ergibt sich etwa für die letzten, an die<br />
Ausgabeschicht grenzenden Gewichte zunächst die Gleichung w jk<br />
=⋅o j<br />
⋅ k mit<br />
k<br />
= f a<br />
' net k<br />
⋅t k<br />
−o k<br />
. [4, 87ff.] Gegenüber der Delta-Regel unterscheidet sie<br />
sich lediglich durch den multiplikativen Faktor f a '(net k ), der – sehr stark<br />
simplifizierend – als Anteil des Gewichts w jk am Gesamtfehler interpretiert werden<br />
kann [4, 77f.] und offensichtlich eine differenzierbare Aktivierungsfunktion<br />
voraussetzt [4, 87]. Ausgehend von den so bestimmten Gewichten w jk und den<br />
8
<strong>Neuronale</strong> <strong>Netze</strong><br />
Abweichungen d k der Ausgabeneurone können nun die nächsten Gewichte w ij<br />
unter Verwendung der Rekurrenz j<br />
= f a<br />
' net j<br />
⋅∑ w jk<br />
⋅ k<br />
bestimmt werden<br />
k<br />
[4, 91]. Die Summe über k addiert dabei die gewichteten Abweichungen d k<br />
derjenigen Neurone k, die Eingaben von Neuron j erhalten.<br />
4 Zur Leistungsfähigkeit künstlicher <strong>Neuronale</strong>r <strong>Netze</strong><br />
Wie ihr biologisches Vorbild besitzen auch künstliche <strong>Neuronale</strong> <strong>Netze</strong> eine hohe<br />
Leistungsfähigkeit. So eignen sie sich aufgrund ihrer Lernfähigkeit selbst für nicht<br />
prozedural oder wissensbasiert lösbare Probleme [5, 11] und sind prinzipiell in der<br />
Lage, jede beliebige Menge zu klassifizieren respektive zu clustern. Dieser<br />
theoretischen Mächtigkeit sind praktisch – technische Beschränkungen<br />
vernachlässigend – nur insofern Grenzen gesetzt, als zur Klassifizierung<br />
einerseits verlässliche und möglichst genaue Trainingsdaten benötigt werden und<br />
andererseits die Güte der Klassifikation vom – meist nur experimentell<br />
bestimmbaren – Topologiedesign abhängt. Und so steht und fällt die<br />
Leistungsfähigkeit eines künstlichen <strong>Neuronale</strong>n <strong>Netze</strong>s letztlich mit der des<br />
biologischen Pendants.<br />
9
<strong>Neuronale</strong> <strong>Netze</strong><br />
Literaturverzeichnis<br />
[1] Klösgen, W., & Żytkow, J. M. (2002). Handbook of data mining and knowledge discovery.<br />
Oxford: Oxford University Press.<br />
[2] Köhle, M. (1990). Neurale <strong>Netze</strong>. Wien: Springer.<br />
[3] Kramer, O. (2009). Computational Intelligence: Eine Einführung. Berlin: Springer.<br />
[4] Kriesel, D. (2007). Ein kleiner Überblick über <strong>Neuronale</strong> <strong>Netze</strong>. Online am 24.04.2010<br />
abgerufen unter http://www.dkriesel.com/_media/science/neuronalenetze-de-epsilondkrieselcom.pdf<br />
[5] Laemmel, U. (2003). Data-Mining mittels künstlicher neuronaler <strong>Netze</strong> (Wismarer<br />
Diskussionspapiere Heft 07/2003). Wismar: Hochschule Wismar, Fachbereich Wirtschaft. Online<br />
am 24.04.2010 abgerufen unter http://www.wi.hs-wismar.de/~wdp/2003/0307_Laemmel.pdf<br />
[6] Lippe, W. (2001). Einführung in <strong>Neuronale</strong> <strong>Netze</strong> - Prinzipien. Online am 24.04.2010 abgerufen<br />
unter http://cs.uni-muenster.de/Studieren/Scripten/Lippe/wwwnnscript/prin.html<br />
[7] Lippe, W. (2005). Soft-Computing: Mit neuronalen <strong>Netze</strong>n, Fuzzy-Logic und evolutionären<br />
Algorithmen. Berlin: Springer.<br />
[8] Mielke, A. (2007). <strong>Neuronale</strong> <strong>Netze</strong>: Netzwerk. Online am 24.04.2010 abgerufen unter<br />
http://www.andreas-mielke.de/nn-4.html<br />
10