Podstawy Sztucznej
Inteligencji
1
Jan Kusiak
Podstawy Sztucznej Inteligencji
Jan Kusiak
Jak uczyć neuron?
Podstawy Sztucznej
Inteligencji
2
Jan Kusiak
Ogólna zasada uczenia neuronu:
Wektor wag w
i
= [w
i1
, w
i2
,...,w
in
]
T
rośnie
proporcjonalnie do iloczynu sygnałów
wejściowego x i uczącego r
(Amari, Żurada).
x
1
x
2
w
i1
.
.
.
.
.
.
i-ty neuron
w
ij
w
i2
w
in
x
j
x
n
y
i
generator
sygnału
uczącego
d
i
x
w
i
x
c
r
t
i
Podstawy Sztucznej
Inteligencji
3
Jan Kusiak
c - stała uczenia c > 0, (c wpływa na szybkość
uczenia).
Wektor zmodyfikowanych wag w kolejnym kroku
czasowym k+1 wynosi więc:
€
r =r(w
i
,x,t
i
)
Sygnał uczący r jest w ogólności funkcją w
i
,
x oraz sygnału nauczyciela t
i
:
Zgodnie z ogólną regułą uczenia, przyrost
wektora w
i
w kolejnym kroku uczenia
zachodzącym w chwili k wynosi:
€
Δw
i
k
=cr(w
i
k
,x
k
,t
i
k
)x
k
€
w
i
k+1
=w
i
k
+cr(w
i
k
,x
k
,t
i
k
)x
k
Ogólna zasada uczenia neuronu:
Podstawy Sztucznej
Inteligencji
4
Jan Kusiak
Podstawy Sztucznej Inteligencji
Jan Kusiak
Uczenie perceptronu
Podstawy Sztucznej
Inteligencji
5
Jan Kusiak
Reguła perceptronowa jest jedną z metod
uczenia nadzorowanego, stosowaną do sieci z
neuronami dyskretnymi.
Reguła uczenia perceptronowego
Sygnał uczący r jest różnicą pomiędzy
odpowiedzią pożądaną a odpowiedzią
uzyskiwaną z sieci (Rosenblatt, 1958);
€
r =t
i
−y
i
)
( x
w
sign
y
T
i
+
x
1
x
2
w
i1
.
.
.
.
.
.
w
ij
w
i2
w
in
x
j
x
n
y
i
d
i
x
w
i
x
-1
1
s
+
d
i
- y
i
+
-
c(d
i
- y
i
)x
c
s
i
t
i
c(t
i
- y
i
)x
t
i
- y
i
Podstawy Sztucznej
Inteligencji
6
Jan Kusiak
Korygowanie współczynników wag synaptycznych
(dla bipolarnej funkcji aktywacji) odbywa się
według zależności:
€
Δw=c(t−y) =c[t−sign(w
T
x)]x
Ponieważ sygnał odpowiedzi perceptronu
przyjmuje wartość albo 1, albo -1, algorytm
"doregulowania" wag redukuje się do postaci:
przy czym znak plus dotyczy przypadku, gdy
t
i
= 1 zaś minus w przypadku przeciwnym.
cx
w
i
2
Reguła uczenia perceptronowego
Dostrojenie wag następuje tylko wtedy,
kiedy występuje błąd odwzorowania przez
neuron.
Podstawy Sztucznej
Inteligencji
7
Jan Kusiak
1. Wybieramy losowo początkowe wartości wag.
2. Podajemy na wejście neuronu wektor uczący
x=x(τ)=[x
0
(τ), x
1
(τ),..., x
n
(τ)]
T
,
τ=1,2,....
3. Obliczenie wartości wyjściowej perceptronu
y.
4. Porównanie wartości wyjściowej y(τ) z
wartością wzorcową (uczącą) t=t(x(τ)).
5. Modyfikacja wag:
w
i
(τ+1) = w
i
(τ) + (t – y)x
i
(τ)
6. Powrót do punktu 2.
Algorytm uczenia perceptronu
Algorytm powtarzany jest dopóty, dopóki błąd
na wyjściu nie będzie mniejszy od
założonego, dla wszystkich wektorów ciągu
uczącego.
(Warunek: dane uczące reprezentują klasy
liniowo separowalne
)
Podstawy Sztucznej
Inteligencji
9
Jan Kusiak
Liniowa separowalność
Definicja. Dwa zbiory
punktów A i B z n
wymiarowej przestrzeni
wejściowej s są
liniowo separowalne
jeżeli istnieje n + 1
wartości w
0
, . . . ,w
n
takich,
że dla każdego punktu
x A zachodzi:
n
i
i
i
w
x
w
1
0
a dla każdego punktu x B zachodzi:
n
i
i
i
w
x
w
1
0
B
A
x
2
X
1
Podstawy Sztucznej
Inteligencji
10
Jan Kusiak
Liniowa separowalność - przykład
Funkcja logiczna AND:
€
y = f (s) =sgnw
0
+w
1
x
1
+w
2
x
2
(
)
x
1
x
2
Y
0 0 -1
0 1 -1
1 0 -1
1 1 1
Podstawy Sztucznej
Inteligencji
11
Jan Kusiak
Liniowo nieseparowalna funkcja - przykład
Funkcja logiczna XOR:
x
1
x
2
Y
0 0 -1
0 1 1
1 0 1
1 1 -1
Uwaga: Perceptron nie
może się
nauczyć funkcji liniowo
nieseparowalnej (ale
może to zrobić sieć)
€
y = f (s) =sgnw
0
+w
1
x
1
+w
2
x
2
(
)
Podstawy Sztucznej
Inteligencji
12
Jan Kusiak
Przykład uczenia perceptronu:
Początkowe wartości wag: w
1
= [1, -1, 0, 0.5]
T
(indeks górny oznacza numer kroku uczenia).
Stała uczenia przyjmuje wartość
c = 0.1.
Lp
.
x
1
x
2
x
3
x
4
t
1
1
-1
0
-
1
-
1
2
0
1.
5
-
0.
5
-
1
-
1
3
-
1
1
0.
5
1
1
Zbiór uczący składa się z następujących wartości:
Podstawy Sztucznej
Inteligencji
13
Jan Kusiak
Krok 1: Na wejściu
prezentacja
pierwszego sygnału
uczącego x
1
:
5
.
1
1
0
1
1
]
5
.
0
,
0
,
1
,
1
[
)
(
1
1
x
w
s
T
Przykład uczenia perceptronu:
Ponieważ sygnał wyjściowy y
1
= sign(s
1
) =
sign(1.5) = 1 jest różny od sygnału uczącego t
1
= -1, musi nastąpić korekcja współczynników
wagowych. Nowy wektor wag obliczony zostaje
zgodnie z regułą perceptronową:
7
.
0
0
8
.
0
8
.
0
1
0
1
1
2
.
0
5
.
0
0
1
1
)
1
1
(
1
.
0
1
1
2
x
w
w
Podstawy Sztucznej
Inteligencji
14
Jan Kusiak
Krok 2: Na wejściu prezentacja kolejnego,
drugiego sygnału uczącego x
2
:
Ponieważ sygnał wyjściowy y
2
= sign(s
2
) =
sign(-1.1) = -1 jest zgodny z sygnałem
uczącym t
2
= -1, nie następuje korekcja wag i
w
3
= w
2
.
1
.
1
1
5
.
0
5
.
1
0
]
7
.
0
0
8
.
0
8
.
0
[
)
(
2
2
2
x
w
s
T
Podstawy Sztucznej
Inteligencji
15
Jan Kusiak
Krok 3: Na wejściu prezentacja kolejnego,
trzeciego sygnału uczącego x
3
:
Sygnał wyjściowy y
3
= sgn(s
3
) = sgn(-2.3) = -1
jest różny od wartości sygnału uczącego d
3
= 1,
musi nastąpić korekcja wag. Skorygowany wektor
wag przyjmuje wartość:
3
.
2
1
5
.
0
1
1
]
7
.
0
0
8
.
0
8
.
0
[
)
(
3
3
3
x
w
s
T
5
.
0
1
.
0
6
.
0
6
.
0
1
5
.
0
1
1
2
.
0
7
.
0
0
8
.
0
8
.
0
)
1
1
(
1
.
0
3
3
4
x
w
w
Podstawy Sztucznej
Inteligencji
16
Jan Kusiak
Ponieważ zbiór uczący składa się z 3
prezentacji, pierwszy cykl uczenia na tym się
kończy.
Błąd uczenia perceptronu trudno jest oszacować
z uwagi na binarne wartości sygnału
wyjściowego. Dlatego jakość wytrenowania można
ocenić obserwując sygnał pobudzenia s.
Spróbujmy obliczyć wartość pobudzenia s
4
po
podaniu sygnału x
1
na wejście nauczonego w
powyższy sposób perceptronu. Sygnał pobudzenia
przyjmie wartość:
i jest znacznie bliższy wartości ujemnej
sygnału oczekiwanego, niż to miało miejsce na
początku uczenia (wtedy s
4
= 2.5).
Przeprowadzenie kolejnego cyklu uczenie
pozwoli na zmniejszenie błędu uczenia.
7
.
0
)
(
1
4
2
x
w
s
T
Podstawy Sztucznej
Inteligencji
17
Jan Kusiak
Podstawy Sztucznej Inteligencji
Jan Kusiak
Perceptron jako
klasyfikator
Podstawy Sztucznej
Inteligencji
18
Jan Kusiak
Podstawy Sztucznej Inteligencji
Jan Kusiak
Podstawy Sztucznej
Inteligencji
Jan Kusiak
Perceptron o dwóch wejściach
Uwaga:
Binarna funkcja aktywacji nadaje
perceptronowi własności klasyfikatora
sygnałów wejściowych.
czyli:
Dzieli przestrzeń wektora wejściowego na
dwa obszary.
Podstawy Sztucznej
Inteligencji
19
Jan Kusiak
Podstawy Sztucznej
Inteligencji
Jan Kusiak
Perceptron o dwóch wejściach
b = -1
w
1,1
= -1; w
1,2
= +1
Niech
:
n = w
T
p=[-1 1]p - 1 =
0
Granica decyzyjna jest
wyznaczona przez:
Granica ta jest prostopadła do wektora wag W i
przesunięta o wartość b.
Wektor W wskazuje obszar wartości dodatnich sygnału
wyjściowego.
€
a=hardlimsw
1,1
w
1,2
[
]
p
1
p
2
⎡
⎣
⎢
⎤
⎦
⎥ +b
⎛
⎝
⎜
⎞
⎠
⎟
€
n=Wp+b=0
Podstawy Sztucznej
Inteligencji
20
Jan Kusiak
Gdy perceptron ma R wejść, wówczas dzieli R-
wymiarową przestrzeń wektorów wejściowych p
na dwie półprzestrzenie.
Są rozdzielone R-1- wymiarową
hiperpłaszczyzną, nazywaną granicą decyzyjną
o równaniu:
0
1
b
p
w
i
R
i
i
Podstawy Sztucznej
Inteligencji
Jan Kusiak
Perceptron (granica decyzyjna)
Podstawy Sztucznej
Inteligencji
21
Jan Kusiak
Czy perceptron można użyć do sortowania jabłek i pomarańczy?
3 sygnały wejściowe:
• p
1
- kształt,
• p
2
- tekstura skórki,
• p
3
- waga
Podstawy Sztucznej
Inteligencji
Jan Kusiak
Perceptron jako klasyfikator
p
i
[ 1, 1]
Wzorzec pomarańczy: P
T
= [1 -1 -1]
T
Wzorzec jabłka: P
T
= [1 1 -1]
T
a = 1
a = -1
Podstawy Sztucznej
Inteligencji
22
Jan Kusiak
Perceptron jako prosta maszyna do sortowania
owoców.
Budowa:
1 neuron o 3 wejściach (bipolarna, binarna
funkcja aktywacji hardlims):
W = [0 1 0]
b = 0
Wzorzec pomarańczy: p
T
= [1 -1 -1]
T
;
a = hardlims(n) = harlims( [0 1 0]p + 0) =
-1
Wzorzec jabłka: p
T
= [1 1 -1]
T
a = hardlims(n) = harlims( [0 1 0]p + 0) = 1
Podstawy Sztucznej
Inteligencji
Jan Kusiak
Perceptron jako klasyfikator
Płaszczyzna decyzyjna: p
2
= 0
ahardlimsw
1,1
w
1,2
w
1,3
p
1
p
2
p
3
b
Podstawy Sztucznej
Inteligencji
23
Jan Kusiak
Prosta maszyna do sortowania owoców – jabłka i pomarańcze
Podstawy Sztucznej
Inteligencji
Jan Kusiak
Perceptron jako klasyfikator
nnd3
pc