Sie sind auf Seite 1von 36

Klassen von Lernalgorithmen

Grobe Unterscheidung:
berwachtes und unberwachtes Lernen.
Lernprozess
x
1
x
2
x
n
y
1
y
m
Berechnung des
Netzfehlers
Vernderung der Gewichte
Ein- und Ausgabe-
muster testen
berwachtes Lernen
Lernaufgabe:
Menge von Ein/Ausgabebeispielen (Trainingsmenge):
L = {(x
1
, t
1
), ..., (x
k
, t
k
)}, wobei:
x
i
= Eingabebeispiel (input pattern), x
i

n

t
i
= Lsung (gewnschte Ausgabe, target) bei Eingabe x
i
,
t
i

m

Lernziel:
Jede Teilaufgabe (x, t) aus L soll vom Netz mit mglichst
kleinem Fehler berechnet werden.
(Lernen mit einem Lehrer)
berwachtes Lernen
Typisch verwendetes Fehlerma:
Sei (x, t)e L und y
m
die tatschliche Ausgabe des
Netzes bei Eingabe x.
Fehler bzgl. des Paars (x, t) :
E
x,t
= ( = || t y ||
2
)


i
2
i i
) y t (
Gesamtfehler:

E =

e e
=
L ) , ( i
2
i i
L ) , (
,
) y (t E
t x t x
t x
(sum squared error, SSE)
berwachtes Lernen
Vorgehensweise:
Whle ein (x, t) e L aus und gib x ins Netz ein
Berechne Ausgabe y des Netzes
Vergleiche y mit gewnschter Lsung t
ndere die Gewichte gem einer Lernregel
(Ziel: Minimiere Fehler E
x,t
) (Online-Lernen)
Falls alle (x, t) e L durchgelaufen (= 1 Epoche):
Prfe, ob Abbruchkriterium (z.B. gengend kleiner
Gesamtfehler E oder maximale Zahl der Epochen)
vorliegt; sonst starte neue Epoche.
Falls die Gewichte erst nach jeder Epoche gendert werden
sollen, spricht man von Offline-Lernen.
Der Perzeptron-Lernalgorithmus als
berwachtes Lernen
Lernaufgabe:
Ist P = {p
1
, ..., p
m
} und N = {n
1
, ..., n

}, so definiere
L ={(p
1
, 1), ..., (p
m
, 1), (n
1
, 0), ..., (n

, 0)}

Fehlerma:
E
p,t
= = t y = 1, falls p falsch klassifiziert;

sonst 0.

Analog fr E
n,t
(n e N).
E = Anzahl der falsch klassifizierten Punkte


i
2
i i
) y t (
Lernregel: Perzeptron-Lernregel/Delta-Regel
Der Perzeptron-Lernalgorithmus als
berwachtes Lernen
Beispiel:
Erkennung von vertikalen und horizontalen Linien
Lernaufgabe:
Unterscheide vertikale von horizontalen Linien
mit unterschiedlicher Dicke, Lage und Gre.
Vertikale Linien (positive Muster):
Horizontale Linien (negative Muster):
Der Perzeptron-Lernalgorithmus als
berwachtes Lernen
Ansatz:
Wende auf jedes Pixel des Musters
eine Maske m
k
durch UND-Verknpfung an.
Dies liefert fr jede Maske m
k
die Anzahl x
k

von Pixeln, auf die m
k
zutrifft.
Verwende die x
k
als Eingaben fr ein Perzeptron.
Masken:
x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9
x
10
6 19 11 3 3 3 12 2 2 4
Zahl x
k
der Pixel, bei denen Maske m
k
im Muster zutrifft:
Muster:
Der Perzeptron-Lernalgorithmus als
berwachtes Lernen
Kodierung der Lernaufgabe:
Vertikale Linien (positive Muster):
Horizontale Linien (negative Muster):
L ={ ((5, 20, 10, 5, 5, 0, 16, 0, 0, 4), 1), ((6, 19, 11, 3, 3, 3, 12, 2, 2, 4), 1),
((12, 13, 8, 0, 4, 8, 8, 3, 0, 9), 1), ((4, 21, 16, 0, 4, 0, 16, 0, 1, 3), 1),
((5, 20, 15, 5, 0, 0, 16, 0, 0, 4), 1), ((8, 17, 11, 4, 0, 4, 12, 2, 0, 6), 1),
((3, 22, 16, 1, 1, 2, 14, 3, 3, 0), 0), ((4, 21, 16, 0, 1, 3, 12, 4, 4, 0), 0),
((8, 17, 12, 0, 2, 6, 12, 4, 0, 4), 0), ((3, 22, 17, 0, 1, 2, 17, 0, 3, 0), 0),
((3, 22, 17, 1, 0, 2, 14, 3, 3, 0), 0), ((6, 19, 12, 2, 2, 4, 12, 3, 0, 3), 0)}
Der Perzeptron-Lernalgorithmus als
berwachtes Lernen
Experiment mit Excel:
w
1
w
2
w
3
w
4
w
5
w
6
w
7
w
8
w
9
w
10
11 14 -53 69 46 -43 18 -43 5 52
-1
x
1
x
10
11
-53 x
3
x
7
18
1 = vertikal

52
0 = horizontal

Der Perzeptron-Algorithmus als
berwachtes Lernen
((4, 21, 12, 4, 4, 0, 16, 1, 0, 3), 1), ((4, 21, 16, 0, 1, 3, 16, 4, 0, 0), 0),
((6, 19, 11, 3, 3, 3, 14, 0, 2, 4), 1), ((6, 19, 14, 2, 0, 4, 14, 0, 3, 3), 0)
Experiment mit Excel:
Wie reagiert das Perzeptron auf nicht gelernte Muster?
Testmenge (nicht gelernte Muster):
Die nicht gelernten Linien werden ebenfalls richtig erkannt!
(Generalisierungseigenschaft)
Unberwachtes Lernen
Lernaufgabe:
Menge von Eingabebeispielen (Trainingsmenge)
L = {x
1
, ..., x
k
}, wobei
x
i
= Eingabemuster (input pattern), x
i

n

Lernziel:
Finde ,,Struktur (Klassifizierung) der Eingabemuster.
,,hnliche Eingaben sollen gleich klassifiziert werden.
Unberwachtes Lernen wird angewendet, wenn die zu
einer Eingabe gehrende Ausgabe unbekannt ist.
(Lernen ohne Lehrer)
Unberwachtes Lernen
Vorgehensweise:
Whle ein Eingabemuster x e L aus und gib x ins Netz
ein.
Berechne Ausgabe y des Netzes.
ndere die Gewichte gem einer Lernregel.
(Online-Lernen)
Prfe nach einer Epoche, ob Abbruchkriterium (z.B.
gengend kleiner Gesamtfehler oder maximale Zahl der
Epochen) vorliegt; sonst starte neue Epoche.
Auch hier: Falls die Gewichte erst nach jeder Epoche
gendert werden sollen, spricht man von Offline-Lernen.
Unberwachtes Lernen
Beim Perzeptron-Algorithmus ist die gewnschte Ausgabe
t
i
bei Eingabe x
i
bekannt (Mengen P und N sind gegeben)
Wie wird eine Teilung der Eingabemuster x
i
in zwei linear
trennbare Mengen gefunden, wenn die Teilung P, N vorher
nicht bekannt ist?
( = 7, n = 2, k = 3)
Die Cluster-Aufteilung ist zu Beginn
unbekannt und soll durch Lernen
gefunden werden.
Das Clustering-Problem:
Gegeben seien normierte
Vektoren x
1
, ..., x

des
n
.
Gesucht ist eine Einteilung
in k Klassen (Cluster) von
,,benachbarten Vektoren.
Cluster 1
Cluster 3
Clustering-Algorithmus:
Unberwachtes Lernen durch Konkurrenz
Eingabe: Menge M = {x
1
, ..., x

} c
n
von normierten
Vektoren, sowie Zahl k > 2.
Ausgabe: Aufteilung von M in k Cluster (falls mglich).
Es werden k Neuronen mit Schwellenwert 0 benutzt.
Das Neuron i mit dem Gewichtsvektor w
i
= (w
i1
, ..., w
i
)
definiert das Cluster i.
w
11
x
2
Gewinner!
w
12
w
21
w
22
w
31
w
32
x
1
Es gewinnt das Neuron mit dem Gewichtsvektor, der dem
Eingabevektor x am hnlichsten ist.
Nach dem Training
bernehmen die Gewichts-
vektoren die Funktion eines
,,Prototypen fr die
Eingabemuster.
Clustering-Algorithmus:
Unberwachtes Lernen durch Konkurrenz
START:
Whle w
1
, ..., w
k
mit zuflligen Komponenten und normiere.

TESTEN:
Whle ein x e M aus.
Berechne w
i
x
T
, i = 1, ..., k.
Bestimme ein m mit w
m
x
T
> w
i
x
T
fr i = 1, ..., k.
Gehe zu KORRIGIEREN.

KORRIGIEREN:
Ersetze w
m
durch w
m
+ x und normiere.
Gehe zu TESTEN.
Clustering-Algorithmus:
Unberwachtes Lernen durch Konkurrenz
Im Laufe des Algorithmus werden die Gewichtsvektoren
der k Neuronen in die Richtung der Cluster ,,gezogen:
Da alle Vektoren normiert sind, gilt w
i
x
T
= cos o
(o = Winkel zwischen w
i
und x). Also liegt x dem
ausgewhlten Gewichtsvektor w
m
am nchsten (cos(0)=1
und cos monoton fallend zw. 0 und 180 Grad).
Durch die Normierung der Eingabevektoren bt jedes x die
gleiche ,,Anziehungskraft auf die Gewichtsvektoren aus.
Durch die Normierung der Gewichtsvektoren wird
verhindert, da ein Gewichtsvektor im Laufe des
Algorithmus zu dominant wird, so da er jeden
Wettbewerb gewinnt.
Clustering-Algorithmus:
Unberwachtes Lernen durch Konkurrenz
Das Konvergenzverhalten des Algorithmus hngt sehr
stark von der Initialisierung der Gewichtsvektoren ab:
w
2
w
3
w
1
Schlechte Initialisierung:

Cluster 1
Cluster 3
w
1
pendelt zwischen
Cluster 2 und 3, w
2
und
w
3
knnen Cluster 1 nicht
verlassen.
Clustering-Algorithmus: Stabile Lsungen
Stabile Lsung:
Kein Gewichtsvektor kann
das zugehrige Cluster
verlassen (Cluster sind relativ
isoliert voneinander und nicht
breit gestreut)

Cluster 1
Cluster 3
w
2
w
1
w
3
Cluster 1
Cluster 3
w
2
w
1
w
3
Instabile Lsung:
w
3
kann in das Cluster 2
gezogen werden (Cluster 2
breit gestreut, nahe bei Cluster 3)
K
P
Clustering-Algorithmus: Stabile Lsungen
Definition:
Es sei P ={p
1
, ..., p
m
} eine Menge von Vektoren aus einem
Halbraum des
n
, n > 2. Der von P definierte Kegel K
P
ist
K
P
= {o
1
p
1
+ ... + o
m
p
m
: o
1
, ..., o
m
e
> 0
}



P
Definition:
Eine Lsung des Lernens durch
Konkurrenz heit stabil, wenn
jeder Gewichtsvektor den entsprechenden
Kegel nicht mehr verlassen kann. Andernfalls instabil.
Einteilung in Cluster entspricht
Einteilung in Kegel
K

Clustering-Algorithmus: Stabile Lsungen
Breitema von Clustern:
Definition:
Der Winkeldurchmesser eines Kegels K, der von
normierten Vektoren definiert ist, ist der grte Winkel
zwischen Paaren von Vektoren in K:
= sup{arccos(a b) : a, b e K mit ||a|| = ||b|| = 1}
wobei 0 s arccos(a b) s t


K
P
Clustering-Algorithmus: Stabile Lsungen
Ma fr die Isoliertheit von Clustern:
Definition:
Es seien P , N zwei nichtleere Mengen von normierten
Vektoren in
n
, n > 2 , und K
P
bzw. K
N
die von P bzw. N
definierten Kegel.

PN
K
N

Der Winkelabstand
PN
beider Kegel ist:

PN
= inf{arccos(a b) : a e K
P
, b e K
N
mit ||a|| = ||b|| = 1}
falls K
P
K
N
= {0}.
Andernfalls
PN
:= 0.
Wobei 0 s arccos(a b) s t

Clustering-Algorithmus: Stabile Lsungen
Intuitive Vorstellung:
Durchmesser jedes Kegels < Abstand zwischen den Kegeln
es existiert stabile Lsung.

Satz: Es seien
C
1
, ..., C
k
Mengen von normierten Vektoren des
n
, n > 2,
die k verschiedene Kegel K
1
, ..., K
k
definieren
w
1
, ..., w
k
normierte Gewichtsvektoren fr k Neuronen, die
durch Konkurrenz jeweils Vektoren aus C
1
, ..., C
k
erkennen
w
i
e K
i
fr alle i = 1, ..., k

i
der Winkeldurchmesser von K
i
, i = 1, ..., k

ij
der Winkelabstand zwischen K
i
und K
j
fr alle j = i
Gilt fr jedes i = 1, ..., k:
Ist
i
<
ij
fr alle j = i, so ist die Lsung w
1
, ..., w
k
stabil.

Clustering-Algorithmus: Stabile Lsungen
Beweis:
Zu zeigen: w
1
, ..., w
k
verlassen jeweils die Kegel K
1
, ..., K
k
nicht!
Sei x e C
1
... C
k
der ausgewhlte Vektor im Algorithmus.
Sagen wir x e C
m
fr ein m.

Es gilt:
w
m
x
T
> cos
m
> cos
mj
(j = m)

> w
j
x
T


da x e K
m
, w
j
e K
j
Also:
w
m
x
T
> w
j
x
T
( fr alle j = m)

Damit gewinnt das Neuron m bei Eingabe x und w
m
bleibt in K
m
.
da w
m
, x e K
m
und cos
Hauptkomponentenanalyse:
Unberwachtes Lernen durch Verstrkung
Der Clustering-Algorithmus ist ein typisches Beispiel fr
unberwachtes Lernen durch Konkurrenz: Bei einer
Eingabe werden nur die Gewichte des Gewinners
korrigiert.
Bei unberwachtem Lernen durch Verstrkung bewirkt
jede Eingabe eine Verstrkung der Gewichte. Dabei
werden die Gewichte meist durch die Hebb-Regel (oder
Varianten davon) verndert:
Wenn zwei Neuronen N
i
und N
j
zur gleichen Zeit aktiv sind
und eine Verbindung zwischen beiden existiert, so ist das
Gewicht dieser Verbindung zu verstrken:

w
ij
:= w
ij
+ qa
j
o
i
(q = Lernrate)
w
ij
N
i
N
j
o
i
a
j
Hauptkomponentenanalyse:
Unberwachtes Lernen durch Verstrkung
Die Hauptkomponentenanalyse transformiert das
Koordinatensystem der Datenmenge in ein neues gleicher
Dimension.
Dabei ist entscheidend:
Die erste Achse zeigt in die Richtung maximaler Varianz (Streuung)
der Daten
Die zweite Achse zeigt in die Richtung der maximalen verbleibenden
Varianz, usw.
In vielen Anwendungen (Bildverarbeitung, Mustererkennung,
Data Mining) kann bereits mit relativ wenigen Achsen
(den Hauptkomponenten oder Hauptachsen) ein Groteil
der Varianz der Datenmenge erfasst werden.
Hauptkomponentenanalyse:
Unberwachtes Lernen durch Verstrkung
Auf diese Weise knnen ,,unwesentliche Variablen vernachlssigt
werden, und die Daten lassen sich mit mglichst geringem
Informationsverlust komprimieren.
x
1
x
2
In diesem Fall knnte man die
Daten durch ihre orthogonalen
Projektionen auf die erste
Hauptachse ,,approximieren.
1. Hauptkomponente zeigt in die Richtung max. Varianz der Daten
2. Hauptkomponente
Hauptkomponentenanalyse:
Verteilung der Daten
Seien x
1
, ..., x
p
e
n
Datenvektoren mit x
k
= (x
k1
, ..., x
kn
).
In der Hauptkomponentenanalyse wird der Einfachheit halber
m
i
= 0 angenommen (wenn nicht, so ziehe von x
ki
den Mittelwert
m
i
ab)
Korrelationsmatrix der Datenvektoren: C = (c
ij
)
1s i, j s n
,
mit:

=
=
p
1 k
kj ki ij
x x : c
p
1

=
=
p
1 k
ki i
x : m
p
1
Mittelwert (der i-ten Komponente):
Hauptkomponentenanalyse:
Verteilung der Daten

=
=
p
1 k
2
ki ii
x c
p
1
ist die Varianz (Streuung) der Daten
bzgl. der i-ten Komponente.
Fr i = j sind c
ij
die Kovarianzen. Diese geben die Korrelationen
zwischen den Datenvektoren an.
c
ij
= 0 x
i
und x
j
sind unkorreliert oder unabhngig
(``es liegt kein Zusammenhang vor)
C = (c
ij
) ist symmetrisch, positiv-semidefinit. Es gibt also eine
Orthonormalbasis des Eingaberaumes
n
aus Eigenvektoren
e
1
, ..., e
n
von C, jeweils zum Eigenwert
1
, ...,
n
.
Dabei nehmen wir an:
1
> ... >
n
> 0.
Hauptkomponentenanalyse:
Verteilung der Daten
Der Eigenvektor e
1
zum grten Eigenwert
1
der
Korrelationsmatrix C zeigt in die Richtung der grten
Varianz der Daten (1. Hauptkomponente)
Der Eigenvektor e
2
zum zweitgrten Eigenwert
2
der
Korrelationsmatrix C zeigt in die Richtung der grten
Varianz im Unterraum, der orthogonal zu e
1
ist
(2. Hauptkomponente)
usw. ...

Mit Hilfe der Hauptkomponenten kann man nun die Dimension
der Daten mit minimalem Informationsverlust reduzieren.
Hauptkomponentenanalyse:
Verteilung der Daten
Datenreduzierung:
Fr Datenvektor x e
n
sei x = a
1
e
1
+ ... + a
n
e
n
die Darstellung bzgl. der (neuen) Basis (e
1
, ..., e
n
).
Reduzierung auf
d
, d < n: x ~ x* := a
1
e
1
+ ... + a
d
e
d
Das heit, x wird auf seine orthogonale Projektion x* in den
d-dimensionalen Unterraum reduziert, der durch die ersten d
Hauptkomponenten aufgespannt wird.
Fehler: ||x x*||
2
=

+ =
n
1 d i
2
i
a
Satz: Fr festes d ist ||x x*||
2
minimal bzgl. aller orthogonalen
Projektionen von x in beliebigen d-dimensionalen Unterrumen.
Hauptkomponentenanalyse:
Lernalgorithmus von Oja
Die erste Hauptkomponente einer Datenmenge kann mit
nur einem Neuron gefunden werden!
Dafr wird ein linearer Assoziator verwendet:
u
x
1
x
n
w
1
w
n y = = x w

=
n
1 i
i i
x w
hnlich zu Perzeptronen, aber mit der Identitt als
Aktivierungsfunktion und ohne Vergleich mit dem
Schwellenwert!
Hauptkomponentenanalyse:
Lernalgorithmus von Oja
Eingabe: X = {x
1
, ..., x
p
} c
n
, x
k
= (x
k1
, ..., x
kn
) (1s k s p).
Ausgabe: w = (w
1
, ..., w
n
) als die 1. Hauptkomponente der
Datenmenge X.
START:
Gewichtsvektor w = 0 wird mit zuflligen Werten initialisiert
Lernfaktor 0 < q s 1 wird ausgewhlt
KORRIGIEREN:
Whle x e X aus
Berechne Aw := q (x w) (x (x w) w)
w := w + Aw (Oja-Regel)


KORRIGIEREN wird iteriert (wobei q immer kleiner
gewhlt wird).
Hauptkomponentenanalyse:
Lernalgorithmus von Oja
Bemerkung 1: Anders als bei berwachtem Lernen wird
hier der Eingabevektor x mit der zurckgefhrten Ausgabe
(x w) w verglichen. Der Vergleich findet also auf der
Eingabeseite und nicht auf der Ausgabeseite statt!
Bemerkung 2: Mit der Hebb-Regel Aw := q (x w) x
(die Korrelation von Input und Output eines Neurons
verstrkt die beteiligten Synapsen) konvergiert der
entsprechende Algorithmus nicht, da w beliebig stark
anwchst, wenn x hinreichend oft eingegeben wird.
Die Oja-Regel ist eine modifizierte Hebb-Regel.

Satz: Bei Konvergenz (Aw = 0 fr alle x e X) beschreibt w die
erste Hauptkomponente der Datenmenge X.
Hauptkomponentenanalyse:
Lernalgorithmus von Oja
Beweis:
Konvergenz (x
k
w) (x
k
(x
k
w) w) = 0 fr alle k = 1, ...,
p
Also fr alle i = 1, ..., n: (x
k
w) (x
ki
(x
k
w) w
i
) = 0.
(x
k
w) x
ki
(x
k
w)
2
w
i
= 0 fr alle k, i.
fr alle k, i.

= =
=
n
1 j
i
n
1 r j,
kr r kj j ki kj j
0 w x w x w x x w

= = = =
=
|
|
.
|

\
|

|
|
.
|

\
|
n
1 j
i r
n
1 r j,
p
1 k
kr kj j
p
1 k
ki kj j
0 w w ) x x ( w x x w
p
1
p
1
Dividiere durch p und summiere alle k = 1,.., p Gleichungen:
Hauptkomponentenanalyse:
Lernalgorithmus von Oja
Cw (w
T
Cw) w = 0 , oder Cw = w , mit = w
T
Cw.

= =
=
|
|
.
|

\
|

n
1 j
i r
n
1 r j,
jr j ij j
0 w w c w c w
fr alle i
w Eigenvektor von C.
Auerdem gilt:
= w
T
C w = w
T
(Cw) = w
T
w = ||w||
2
||w|| = 1.
Weiter kann gezeigt werden, dass w zum grten Eigenwert
von C gehrt. w beschreibt also die 1. Hauptkomponente.
HKA: d-Neuron-Regel von Oja
Die ersten d Hauptkomponenten einer Datenmenge knnen
mit d linearen Assoziatoren bestimmt werden:
) ) ( - ( ) (
d
1 j
j j i i
=
= A w w x x w x w q
w
11
x
n
w
1n
w
21
w
2n
w
d1
w
dn
x
1
y
1
= x w
1
y
2
= x w
2
y
d
= x w
d
Der Gewichtsvektor w
i

des Neurons i wird beim
Lernen um Aw
i
korrigiert:
(vgl. Schmidtsches Orthogonalisierungsverfahren in der linearen Algebra!)
Die d-Neuron-Regel von Oja liefert ein Koordinatensystem
des von den ersten d Hauptkomponenten aufgespannten
Unterraumes; kein Neuron wird bevorzugt.