18.11.2013 Aufrufe

Neuronale Netze - Timo Becker

Neuronale Netze - Timo Becker

Neuronale Netze - Timo Becker

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!