Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das...
Click here to load reader
Transcript of Das Perzeptron - cs.hs-rm.depanitz/prog3WS08/perceptron.pdf · trachten (vgl. hierzu [Hei94]). Das...
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
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
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
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
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
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
(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
• 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
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