Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
1
Perceptron prosty
Nowością wprowadzoną przez Perceptron(Rosenblatt 1958)w stosunku do sieci
MADALINE, było zastosowanie elementu nieliniowego.
W perceptronie wyjście neuronu: y = f (e)
gdzie pobudzenie e =
P
n
i
=1
w
i
x
i
+ w
0
=
P
n
i
=0
w
i
x
i
⇐ x
0
≡ 1
x
1
x
2
..
.
x
n
w
1
w
2
..
.
w
n
P
f
(e)
y
Pobudzenie neuronu w postaci ważonej sumy wejść nie jest jedynym możliwym,
mogą to być np.:
e
(j+1)
= e
(j)
+
P
n
i
=0
w
(j)
i
x
(j)
i
lub
e
=
Q
n
i
=1
w
i
x
i
Dla własności neuronu największe znaczenie ma jednak forma nieliniowości
f
(.).
Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
2
Perceptron Rosenblatta
Najprostsza pojęciowo postać nieliniowości:
f(e)
0
e
y
=
1 dla e 0
0 dla e < 0
Interpretacja geometryczna: perceptron prosty działa jak dyskryminator liniowy.
x
należy do klasy
#1
#0
je
śli
y
= 1, e 0
y
= 0, e < 0
Obszar, w którym perceptron zwraca 1 — podejmuje decyzję “tak” jest
ograniczony tworem o równaniu:
P
n
i
=1
w
i
x
i
+ w
0
= 0
Dla n = 2 jest to prosta, dla n = 3 płaszczyzna, w ogólności rozmaitość liniowa
stopnia n − 1 hiperpłaszczyzna
Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
3
Przykład
Rozważmy perceptron z trzema wagami w = [−6, 2, 3] pobudzenie neuronu
e
= W ∗ X = [−6, 2, 3]
1
x
1
x
2
= −6 + 2x
1
+ 3x
2
we właściwej przestrzeni wejść [x
1
, x
2
]
hiperpowierzchnia podejmowania decyzji
jest prostą o równaniu:
2x
1
+ 3x
2
− 6 = 0
Obcięty wektor wag ˜
w
= [2, 3]
jest prostopadły do prostej
podejmowania decyzji.
Wektor wag jest skierowany w stronę, gdzie y = 1
x
2
x
1
0
2
3
y
= 0
y
= 1
˜
w
Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
4
Dobieranie wag perceptronu prostego
Mamy dwie możliwości: możemy obliczyć wagi neuronów lub znaleźć je w
procesie iteracyjnego uczenia.
• Obliczanie: Korzystamy z tego, że w jest ortogonalny do hiperpłaszczyzny
podejmowania decyzji
wx
= 0 ⇒
P
n
i
=1
w
i
x
i
+ w
0
= 0
także “obcięty” wektor wag ˜
w
= [w
1
, ..., w
n
] jest ortogonalny do “obciętych”
wektorów wejściowych ˜
x
= [x
1
, ..x
n
]
T
bo
∀
a,b
˜
w
(˜
x
a
− ˜
x
b
) = 0
Bramka NAND:
x
1
0
0
1
1
x
2
0
1
0
1
y
1
1
1
0
x
1
x
2
y=1
y=0
Prosta podejmowania decyzji: x
1
+ x
2
− 1.5 = 0 wektor wag [w
1
, w
2
] jest
prostopadły do tej prostej i skierowany w stronę gdzie y = 1 : [w
1
, w
2
] = [−1, −1]
i wybieramy w
0
= 1.5. Ostatecznie w = [1.5, −1, −1]
Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
5
Uczenie perceptronu
Algorytm uczenia perceptronu jest formalnie bardzo podobny do reguły delta:
mamy ciąg uczący
{X
(j)
, z
(j)
}
j
=1,...,M
i regułę zmiany wag:
W
(j+1)
= W
(j)
+ ηδ
(j)
X
(j)
gdzie δ
(j)
= z
(j)
− y
(j)
istotną różnicę stanowi fakt, że
y
= {0, 1}, a co za tym idzie δ = {−1, 0, +1}
Prosta decyzyjna
W
W
j
W
j+1
δ
=−1
δ
=0
δ
=0
δ
=1
X
j
X
j
−η
z=1
z=0
Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
6
Dlaczego ta reguła zmiany wag działa?
Są tylko 4 możliwości zmiany wag:
z
(j)
y
(j)
δ
(j)
∆W
(j)
wkład do pobudzenia od i-tej
współrzędnej po korekcie wag
0
0
0 (dobrze)
0
bez zmian
1
1
0 (dobrze)
0
bez zmian
0
1
-1 (odpowiedź za duża)
−ηX
(j)
(w
i
− ηx
i
)x
i
= w
i
x
i
− ηx
2
i
1
0
1 (odpowiedź za mała)
ηX
(j)
(w
i
+ ηx
i
)x
i
= w
i
x
i
+ ηx
2
i
Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
7
Problem XOR
Problem rozwiązywalny AND
x
1
x
2
Problem nierozwiązywalny XOR
x
1
x
2
?
Ograniczenie perceptronu prostego:
rozwiązywalne są jedynie problemy
separowalne liniowo.
Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
8
Nowe możliwości: wielowarstwowe sieci perceptronów
prostych
Co dwie warstwy neuronów nieliniowych to nie jedna.
Jedna warstwa perceptronów prostych na swoim wyjściu prezentuje zestaw
podziałów przestrzeni hiperpłaszczyznami — każdy neuron jeden podział.
• Co się stanie jeśli wyjście tej warstwy wpuścimy na wejście następnej warstwy?
np:
x
1
x
2
x
1
x
2
x
1
x
2
Σ
Σ
Σ
1
1
1
1
−1
−1
x
x
1
2
1.5
−0.5
−1
problem znalezienia wag można zapisać tak:
f
[v
1
v
2
] f
w
11
w
12
w
21
w
22
0 1 0 1
0 0 1 1
+
w
10
w
20
+ v
3
= [0 1 1 0]
Sieci neuropodobne III, sieci nieliniowe(1) (perceptron)
9
A jak uzyskać dowolny podział przestrzeni?
dołożyć kolejną warstwę?