Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das...

9

Click here to load reader

Transcript of Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das...

Page 1: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

Fachbereich Design Informatik MedienStudiengang Master Informatik

Künstliche neuronale Netze

Das Perzeptron

Sebastian Otte

Dezember 2009

1 Grundlegendes

Als Perzeptron bezeichnet man eine Formvon künstlichen neuronalen Netzen, diedem Modell von Frank Rosenblatt in[Ros58] folgen. In seiner ursprünglichenVariante besteht ein Perzeptron nur auseinem einzigen Neuron, dem einfachenPerzeptron1. Inzwischen haben sich aberauch komplexere Modelle von Perzeptro-nen etabliert, bei denen mehrere einfachePerzeptron-Neuronen zu einem Netz zu-sammen geschlossen werden. Klassischer-weise werden die Neuronen dabei in so-genannten Layern (Schichten) angeordnet,wobei die Neuronen innerhalb eines Layeri.d.R. nicht untereinander verbunden sind,

1Das Perzeptron basiert wiederum auf derMcCulloch-Pitts-Zelle nach [MP43].

sondern meist ausschließlich mit den Neu-ronen des direkt folgenden Layers. Wir be-schränken uns hier auf Perzeptronen, beidenen jedes Neuron eines Layers mit jedemNeuron des nachfolgenden Layers verbun-den ist. Ein solches Perzeptron bezeichnetman auch als FeedForward-Netzwerk (vgl.[Hei94]).Perzeptronen werden u.a. bei der Erken-nung von Mustern eingesetzt. Dabei wirdein Perzeptron auf bestimmte Eingabemus-ter trainiert und ist danach in der Lage ähn-liche Muster zu erkennen.

2 Perzeptron Modell

Bevor wir uns mit mehrzelligen Perzeptro-nen beschäftigen, werden wir das Grund-modell des einfaches Perzeptrons näher be-

1

Page 2: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

trachten (vgl. hierzu [Hei94]). Das Ein-

∑ϕ

w1

w2

wn

...

x1

x2

xn

...o

Abbildung 1: Einfaches Perzeptron

fache Perzeptron, wie es in Abbildung 1dargestellt ist, verfügt über n Eingängex1, . . . , xn ∈ R, mit jeweils einer Gewich-tung w1, . . . , wn ∈ R. Zudem gibt es einenAusgang o ∈ R.

2.1 Eingangsfunktion

Für die Berechnung der Ausgabe wird zu-nächst die gewichtete Summe der angeleg-ten Eingabewerte gebildet:

σ =

n∑i=1

xiwi. (2.1)

Diese erste Verarbeitung bezeichnet manauch als die Eingangsfunktion des Neurons.

2.2 Aktivierungsfunktion

Nachdem nun σ bekannt ist, wird die Aus-gabe o mit Hilfe der Aktivierungsfunktion ϕbestimmt:

o = ϕ(σ). (2.2)

Für ϕ kommen eine ganze Reihe un-terschiedlicher Funktionen in Frage. EineMöglichkeit ist hier die Verwendung einer

einfachen Schwellenwertfunktion fθ mit ei-nem kostanten Schwellenwert θ:

fθ(x) =

{1, falls x ≥ θ,0, sonst.

(2.3)

Eine solche Funktion, auch Stufenfunkti-on genannt, führt zu einer „scharfen“ Ak-tivierung des Neurons. Die Stufenfunktionist jedoch nicht differenzierbar2. Daher ver-wendet man meist, insbesondere für mehr-schichtige Perzeptronen, die diffenzierbaresigmoid-Funktion, welche wie folgt definiertist:

sig(x) =1

1 + e−x. (2.4)

Die entsprechende Ableitung lautet:

sig′(x) = sig(x)(1− sig(x)). (2.5)

Wie in Abbildung 2 ersichtlich ist, führt diesigmoid-Funktion auch zu einer weicherenAktivierung des Neurons.

x

0

1

(a) Schwellenwert-Funktion mit θ = 0

x

0

1

0.5

(b) sigmoid-Funktion

Abbildung 2: Aktivierungsfunktionen

2Die Differenzierbarkeit der Aktivierungsfunktionist wichtig für den im weiteren Verlauf erläuter-ten Lernalgorithmus

2

Page 3: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

3 Layer

Interessant wird nun die Vernetzung vielereinzelner Neuronen. Wie bereits erwähnt,werden Neuronen in einem mehrzelligenPerzeptron in Layern angeordnet. Dabeiunterscheidet man drei verschiedene Artenvon Layern:

• Input-Layer: enthält keine Neuronenim eigentlichen Sinne, sondern trägt le-diglich die Netzeingabe.

• Output-Layer: präsentiert die Netzaus-gabe.

• Hidden-Layer: verdeckte Schicht(en)zwischen Input- und Output-Layer.

Die verschiedenen Schichten eines Perzep-trons mit den entsprechend verbundenenNeuronen sind in Abbildung 3 dargestellt.

......

. . .

. . .

. . .

......

hiddeninput output

Abbildung 3: Die Layer eines Perzeptrons.

3.1 Neuronen und Verbindungen

Bisher haben wir rein informell von Verbin-dungen zwischen Neuronen gesprochen, je-doch brauchen wir für spätere Erläuterun-gen eine entsprechende formale Notation.

Diese werden wir im Folgenden schrittweiseeinführen:Zunächst bezeichnen wir die Menge derNeuronen (Units) eines Netzes als U mit:

U = {u1, u2, ..., un} . (3.6)

Entsprechend der unterschiedlichen Artenvon Layern definieren wir zusätzlich alskleine Hilfsmengen:

• UI = die Menge der Eingabeneuronen,

• UH = die Menge der versteckten Neu-ronen,

• UO = die Menge der Ausgabeneuro-nen.

Die Verbindungen zwischen den Neuronenwerden in der Menge der Verbindungen(Connections) C erfasst:

C = {(i, j)|ui → uj} , (3.7)

dabei sei → zu lesen als „vorwärts verbun-den mit“. Desweiteren definieren wir Cj alsdie Menge der Neuronen (Indizes), die Ein-gang von uj sind (die vorwärts verbundensind mit uj) mit:

Cj = {i|(i, j) ∈ C} . (3.8)

Analog dazu sei Cj definiert als die Mengeder Neuronen (Indizes), die uj als Einganghaben (mit denen uj vorwärts verbundenist) mit:

Cj = {k|(j, k) ∈ C} . (3.9)

3

Page 4: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

Die Abbildung 4 stellt die Mengen Cj undCj eines Neurons uj anschaulich dar.

...

uj

......

Cj Cj

Abbildung 4: Die Mengen Cj und Cj .

3.2 Gewichtungen

Die eigentliche Information, die ein Perzep-tron-Netz enthält, wird in Form von Ge-wichtungen (Faktoren) kodiert. Dabei gibtes für jede Verbindung zwischen zwei Neu-ronen genau einen solchen Faktor:

wij ∈ R mit (i, j) ∈ C. (3.10)

Durch die vorangegangenen Definitionenkönnen wir σ aus (2.1) für uj nun wie folgtschreiben:

σj =∑i∈Cj

oiwij , (3.11)

wobei wir anstelle von xi direkt die Aus-gabe oi des Vorgängerneurons ui einsetzen.Für oj ergibt sich also:

oj = ϕ(σj). (3.12)

Die in (3.10) definierente Gewichtungennennt man auch Gewichtungenmatrix. Hiersei noch mal deutlich hervorgehoben, dassInput-Neuronen keine Gewichtungen inSinne von Abbildung 1 haben. Daher fälltder Input-Layer bei der Benennung der La-gigkeit eines Perzeptrons weg, bespielsweisenennt man ein Perzeptron mit einem Input-und einem Output-Layer einlagig oder ein-schichtig.

4 Propagation

Als Propagation oder auch Testen des Net-zes bezeichnet man den Vorgang, bei demeine Eingabe an den Input-Layer angelegtund durch das gesamte Netz, also durch al-le Layer bis zum Output-Layer, „hindurchprogagiert“ wird (vgl. [Kri07]). Dieser Pro-zess verläuft dabei in folgenden Schritten:

1. Eingabe wird in den Input-Layer ko-piert.

2. Für jeden Hidden-Layer wird nun, be-ginnend mit dem ersten, für jedes ent-haltene Neuron mit der Vorschrift aus(3.12) die Ausgabe bestimmt. Dabeidient die Ausgabe der gerade berech-neten Schicht als Eingabe der nächstenSchicht.

3. Es wird für jedes Neuron im Output-Layer mit (3.12) die Ausgabe be-stimmt. Die Eingaben für die Be-rechnung sind entweder die berechne-te Ausgabe des letzten Hidden-Layers,oder in einem einschichtigen Perzep-tron die Werte des Input-Layers.

4

Page 5: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

4. Zuletzt kann die Netzausgabe amOutput-Layer abgelesen werden.

Die Schritte der Propagation sind beispiel-haft in Abbildung 5 skizziert. Das Bei-spielnetz ist zweischichtig mit drei Eingabe-Neuronen, einem Hidden-Layer mit zweiNeuronen und einem Output-Layer mit ei-nem Neuron.

x1

x2

x3

o

1 2 3 4Abbildung 5: Propogation Beispiel.

Anmerkung: Ein Perzepton kann auchals Assoziativ-Speicher oder als BlackBox-Funktion betrachtet werden, da es einenEingabevektor auf einen Ausgabevektor ab-bildet (vgl. [Hei94]).

5 Lernen

Das Lernen in einem Perzeptron-Netz ge-schieht über die Manipulation der Ge-wichtungenmatrix. Da eine willkürliche Be-legung der einzelnen Gewichte mit Si-cherheit kein befriedigendes Ergebnis ver-spricht, muss mit System vorgegangen wer-den. Dazu führen wir den Begriff Fehler desNetzes ein.

5.1 Fehler

Der Fehler des Netzes quantifitiert dieAbweichung der tatsächlichen Netzausga-be zu einer gewünschten oder erwartetenNetzausgabe, nachdem die zugehörige Ein-gabe durch das Netz propagiert wurde.Als klassische Abschweichungs- oder Fehler-funktion wird der quadratische Fehler SSE(engl. Sum of Square Error) eingesetzt (vgl.[RR95], [Hei94]). Für ein Perzeptron könntedie SSE-Funktion wie folgt aussehen:

SSE =∑

i|ui∈UO

(pi − oi)2, (5.13)

wobei pi den erwarteten Wert für dasOutput-Neuron ui und oi dessen tatsäch-lichen Wert angibt.Da ein Perzeptron i.d.R. nicht nur eine, son-dern mehrere Eingaben kennen soll, werdenwir die Fehlerfunktion etwas erweitern. Da-für sei T definiert als die Menge der Trai-ningsdatensätze. Als neue Notation schrei-ben wir für ein t ∈ T :

• oi(t) meint den Wert des Ausgabe-Neurons ui, nachdem der Datensatz tdurch das Netz propagiert wurde und

• pi(t) meint den erwarteten Wert desAusgabe-Neurons ui nach Propagationvon t.

Somit können wir die SSE-Funktion überalle Trainingsdatensätze formulieren als:

SSET =∑t∈T

∑i|ui∈UO

(pi(t)− oi(t))2. (5.14)

5

Page 6: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

Grundsätzlich ist das Ziel des Lernens nun,diesen Fehler zu minimieren, denn je gerin-ger der Fehlerwert ist, desto ähnlicher istdie tatsächliche Netzausgabe der erwarte-ten Netzausgabe.Bei Perzeptronen verwendet man üblicher-weise einen angestrebten minimalen Fehler-wert, den wir hier als ξ bezeichnen. DasNetz wird dann solange mit der Trainings-menge T trainiert bis gilt SSET ≤ ξ. DieGröße von ξ ist dabei abhängig von der Artdes Problems und der gewünschten Genau-igkeit. In der Literatur hat sich für ξ eineGrößenordnung von ξ ∈ [0.01; 0.1] bewährt.Das einmalige Trainieren der Trainigsmen-ge T nennen wir Trainingszyklus.Diese Art des Lernens bezeichnet man übri-gens als überwachtes Lernen (vgl. [Hei94]).

5.2 Delta-Regel

Die Delta-Regel oder auch Perzeptron-Lernregel ist nur für einschichtige3 Perzep-tronen definiert. Informell ausgedrückt, be-rechnet die Delta-Regel eine Veränderungvon Gewichtungen anhand des Einflussesder an der Verbindung beteiligten Neuro-nen auf den Fehler. Die Gewichtungsände-rungen ergeben sich wie folgt:

1. Eine bestimmte Eingabe, dessen kor-rekte Ausgabe bekannt ist, wird durchdas Netz propagiert.

2. Für jedes Ausgabe-Neuron uj , wird zu-

3Perzeptron ohne Hidden-Layer (nur Input- undOutput-Layer).

nächst δj berechnet mit:

δj = (pj − oj). (5.15)

3. Die Gewichtungsänderung ∆wij für je-de Gewichtung ergibt sich nun aus:

∆wij = δjoiε, (5.16)

dabei ist ε ∈ R die sogenannte Lernra-te, welche die Intensität des Trainings(Stärke der Gewichtungsänderung) an-gibt. Die Gewichtungsanpassung selbstgeschieht letztendlich durch:

wneuij = wij + ∆wij . (5.17)

5.2.1 XOR-Problem

Es wurde von Marvin Minsky und SeymourPapert bewiesen, dass einschichtige Perzep-tronen die XOR-Funktion nicht lösen kön-nen (vgl. [Hei94]). Der Grund: Einschich-tige Perzeptronen können gerade die linearseparierbaren Probleme lösen bzw. lernen.Die XOR-Funktion hingegen ist nicht line-ar separierbar, während die AND- und dieOR-Funktion linear separierbar sind. Line-ar separierbar heißt, dass die Ergebnismen-ge durch die Hyperebene (vorzustellen alsLinie) in zwei4 Klassen separiert werdenkann. Dies soll Abbildung 6 veranschauli-chen. Für AND und OR ist die Separierungleicht, während sie für XOR nicht möglichist (hier angedeutet durch zwei Linien). Ge-löst werden kann das XOR-Problem jedochdurch Hinzufügen von Hidden-Layern. Sie-

4Am Beispiel zweidimensionaler Funktionen.

6

Page 7: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

(0, 0) (0, 1)

(1, 0) (1, 1)

0 1

(a) AND

(0, 0) (0, 1)

(1, 0) (1, 1)

10

(b) OR

(0, 0) (0, 1)

(1, 0) (1, 1)

10 0

(c) XOR

Abbildung 6: Lineare Separierbarkeit.

he [Hei94],[Kri07] für detailierte Informa-tionen.

5.3 Back-Propagation

Bei der Back-Propagation wird der Fehlerbeginnend beim Output-Layer rückwärtsdurch das Netz propagiert. Da die Delta-Regel nur für einschichtige Perzeptronendefiniert ist, muss diese für mehrschichti-ge Perzeptronen erweitert werden. Es ergibtsich δj durch:

δj =

{ϕ′(σj)(pj − oj), falls uj ∈ UOϕ′(σj)

∑k∈Cj δkwjk, sonst.

(5.18)Bei der Bestimmung von δj wird ex-plizit zwischen Output- und Hidden-Neuronen unterschieden. Während der Feh-ler bei Output-Neuronen unmittelbar be-rechnet werden kann, muss dieser beiHidden-Neuronen rekursiv „zurück berech-net“ werden. Im Detail arbeitet die Back-Propagation wie folgt:

1. Analog zu einschichtigen Perzeptronenwird zuerst eine Eingabe durch dasNetz propagiert.

2. Für jedes Nicht-Input-Neuron uj , wird

nun δj berechnet.

3. Die Gewichtungsänderung ∆wij für je-de Gewichtung wird bestimmt.

4. Die neuen Gewichtungen wneuij wer-den berechnet. Dabei sei zu beach-ten, dass die neuen Gewichtungen erstdann übernommen werden, wenn dieBack-Propagation komplett durchge-laufen ist. Anders ausgedrückt: Beisämtlichen Berechnungen während derBack-Propagation werden stets die al-ten Gewichtungen herangezogen (vgl.[RR95]). Dies war bei der einfachenDelta-Regel unerheblich, da es unterVerwendung der Delta-Regel nur eineGewichtungen-tragende Schicht gebenkann.

Abbildung 7 skizziert das allgemeine Vorge-hen bei der Back-Propagation. Der Fehlerwird rückwärts durch das Netz propagiertund die Gewichtungsänderung „unterwegs“bestimmt.

p− o

Abbildung 7: Back-Propogation Beispiel.

Anmerkungen:

• Man bezeichnet die Back-Propagationauch als Gradientenabstiegsverfahren.

7

Page 8: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

• Die richtige Wahl von ε spielt sowohlbei der Back-Progagation als auch beider Delta-Regel eine entscheidene Rol-le. Es macht daher Sinn, eher mit ei-nem kleinen ε und einer hohen Anzahlan Trainigszyklen zu beginnen und εlangsam (kontrolliert) zu erhöhen. Inder Literatur wurde initial ein ε = 0.05vorgeschlagen (vgl. [Hei94]). Die nötigeAnzahl an Trainingszyklen kann schonbei kleineren Problemen mehrere tau-send betragen.

• Das Lernen, also das Anpassen derGewichte bezüglich eines bestimmtenProblems, bezeichnet man auch alsklassisches Optimierungsproblem fürdas es durchaus auch andere Lösungs-strategien gibt, als ein Gradientenab-stiegsverfahren. Ein sehr effektives undeindrucksvolles Verfahren zeigt [Hei94]durch die Verwendung genetischer Al-gorithmen.

6 Ergänzungen

6.1 Bias-Neuronen

Manchmal ist es bei Perzeptronen hilf-reich, sogenannte Bias-Neuronen zu akti-vieren. Ein Bias-Neuron ist kein Neuronim eigentlichen Sinne, sondern hat immereinen konstanten Wert und kann jedemNicht-Output-Layer beigefügt werden. Da-durch, dass ein Bias-Neuron immer kon-stant ist, aber trotzdem variable Gewich-tungen hat, fungiert es als dynamischerSchwellenwert und kann die Ausgabe da-

durch positiv beeinflussen (vgl. [Hei94]).Bias-Neuroren haben keine Eingänge, kön-nen also nicht das Ziel einer Verbindungsein. Abbildung 8 zeigt beispielhaft ein Netz

−1

−1

x1

x2

x3

o

Abbildung 8: Bias-Neuronen Beispiel

mit Bias-Neuronen. Die Neuronen habendabei den in der Literatur verwendetenWert von −1.

Literatur

[Hei94] Heistermann, Jochen: Geneti-sche Algorithmen - Theorie undPraxis evolutionärer Optimierung.Band 9. Stuttgart/Leibzig : B.G.Teubner Verlagsgesellschaft, 1994

[Kri07] Kriesel, David: Ein kleiner Über-blick über Neuronale Netze. http://www.dkriesel.com, 2007. – ge-sichtet 10.11.2009

[MP43] Mcculloch, Warren ; Pitts,Walter: A logical calculus of theideas immanent in nervous acti-vity. In: Bulletin of Mathemati-cal Biology 5 (1943), December,Nr. 4, 115–133. http://dx.doi.

8

Page 9: Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das Ein-P ’ w 1 w 2 wn... x 1 x 2 xn... o Abbildung1:EinfachesPerzeptron fache Perzeptron,

org/10.1007/BF02478259. – DOI10.1007/BF02478259

[Ros58] Rosenblatt, Frank: The percep-tron: a probabilistic model for in-formation storage and organizationin the brain. In: Psychological Re-view 65 (1958), November, Nr. 6,S. 386–408

[RR95] Rao, Valluru B. ; Rao, Hayagri-va: C++, neural networks and fuz-zy logic. 2nd ed. New York, NY,USA : MIS:Press, 1995. – ISBN 1–55851–552–6

9