background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej 

Inteligencji

Jan Kusiak

Jak to wszystko działa?

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej 

Inteligencji

Jan Kusiak

Zacznijmy od początku,

…czyli od perceptronu

background image

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.

background image

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 
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

background image

Gdy perceptron ma R wejść, wówczas dzieli R
wymiarową przestrzeń wektorów wejściowych 
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)

background image

Czy perceptron można użyć do sortowania jabłek i pomarańczy?

3 sygnały wejściowe:

•  p

1  

- kształt, 

•  p

- tekstura skórki,

•  p

- 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

background image

Perceptron jako prosta maszyna do sortowania 
owoców.

Budowa: 
1 neuron o 3 wejściach (bipolarna, binarna 
funkcja aktywacji hardlims):

= [0 1 0]
= 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

= 0



ahardlimsw

1,1

w

1,2

w

1,3

p

1

p

2

p

3

















 b

















background image

Prosta maszyna do sortowania owoców – jabłka i pomarańcze

Podstawy Sztucznej 

Inteligencji

Jan Kusiak

Perceptron jako klasyfikator

nnd3
pc

background image

Podstawy Sztucznej 

Inteligencji

10

Jan Kusiak

Perceptron o dwóch wejściach - podsumowanie

Sygnał wyjściowy:

€ 

=hardlims

(n) =hardlims

(Wp+b) =

=hardlims

(wp+b)

=hardlims

(w

1,1

p

1

+w

1,2

p

2

+b) =0

Granica decyzyjna (linia na płaszczyźnie 
sygnałów wejściowych) jest określona przez 
wektor sygnałów wejściowych, dla których 
sygnał = 0, czyli 

€ 

=wp+b=w

1,1

p

1

+w

1,2

p

2

+b=0

€ 

n=

Wp+b

=0

background image

Podstawy Sztucznej 

Inteligencji

13

Jan Kusiak

Perceptron o dwóch wejściach – przykład (1)

Przykład perceptronu realizującego bramkę AND 
(o 2 wejściach)
Pary sygnałów WE/WY oznaczamy jako (p

i

t

i

mają wartości:

1

,

1

1

,

0

,

0

1

,

0

,

1

0

,

0

,

0

0

4

4

3

3

2

2

1

1

t

t

t

t

p

p

p

p

background image

Podstawy Sztucznej 

Inteligencji

15

Jan Kusiak

Graficznie bramkę AND przedstawia 
rysunek. Czarny punkt wskazuje 
sygnał wyjściowy = 1, a puste 
punkty wartość 0.

Spróbujmy wyznaczyć granicę 
decyzyjną, czyli linię 
oddzielającą białe punkty od 
czarnych.  

Następnie musimy wyznaczyć wektor 
wag, który jest prostopadły do 
granicy decyzyjnej.  Wektor wag 
może mieć dowolną długość. Niech:

€ 

=

2
2

⎡ 
⎣ 

⎢ 

⎤ 
⎦ 

⎥ 

w

1

AND 

Perceptron o dwóch wejściach – przykład (2)

background image

Podstawy Sztucznej 

Inteligencji

16

Jan Kusiak

Na koniec musimy wyznaczyć wartość progową b. 
Określimy to wybierając dowolny punkt leżący na 
linii decyzyjnej i spełniający równanie:

€ 

wp+b=0

Jeżeli, przykładowo wybierzemy:

T

T

0

5

.

1

p

to:

€ 

wp+b= 2 2

[

]

1.5

0

⎡ 
⎣ 

⎢ 

⎤ 
⎦ 

⎥ 

+b=3+b=0 ⇒

b=−3

Przetestujemy sieć na jednej z par sygnałów 
wejściowych, np. p

2

 =[0,1]

T

€ 

a=hardlim(

w

T

p

2

+b) =hardlim2 2

[

]

0
1

⎡ 
⎣ 

⎢ 

⎤ 
⎦ 

⎥ −3

⎛ 

⎝ 

⎜ 

⎞ 

⎠ 

⎟ =hardlim(-1)

=0

Perceptron o dwóch wejściach – przykład (3)

background image

Podstawy Sztucznej 

Inteligencji

17

Jan Kusiak

Perceptron o dwóch wejściach

Przykład granicy decyzyjnej nnd4db

background image

Podstawy Sztucznej 

Inteligencji

18

Jan Kusiak

Perceptron działa poprawnie, gdy wagi 
przyjmują odpowiednią wartość, 

czyli gdy

perceptron jest nauczony. 

Proces uczenia wiąże się z modyfikowaniem 
wag synaptycznych.  

Podstawy Sztucznej 

Inteligencji

Jan Kusiak

Sztuczne Sieci Neuronowe 1

Działanie perceptronu

background image

Podstawy Sztucznej 

Inteligencji

19

Jan Kusiak

Podstawy Sztucznej Inteligencji

Jan Kusiak

Jak uczyć neuron?

background image

Podstawy Sztucznej 

Inteligencji

20

Jan Kusiak

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie neuronu

Uczenie z nauczycielem (nadzorowane)

Na wejściu sieci pokazuje się wektor sygnałów 
wejściowych, natomiast na wyjściu pokazuje się oczekiwane 
wartości sygnałów wyjściowych. 

Zadaniem uczenia sieci jest dokonanie takiej korekty 
współczynników wagowych, aby zmniejszyć różnicę pomiędzy 
oczekiwaną, a rzeczywistą odpowiedzią sieci. 

Uczenie bez nauczyciela

Prezentuje się jedynie wektor sygnałów wejściowych. 

Zadaniem sieci jest samodzielne utworzenie kategorii do 
których będą klasyfikowane prezentowane wektory, 
samodzielnie odnajdując przy tym podobieństwa pomiędzy 
poszczególnymi obiektami - klasyfikacja obiektów.

background image

Podstawy Sztucznej 

Inteligencji

21

Jan Kusiak

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej 

Inteligencji

Jan Kusiak

Proces uczenia polega na korygowaniu wartości 
współczynników wagowych. 

Uczenie neuronu

Początkowe wartości składowych wektora wag nie 
mają większego znaczenia i z reguły nadaje się im 
wartości losowe.

background image

Podstawy Sztucznej 

Inteligencji

22

Jan Kusiak

Podstawy Sztucznej Inteligencji

Jan Kusiak

Nadzorowane uczenie neuronu polega na tym, że 
neuronowi prezentowane jest pewne zadanie z 
gotowym rozwiązaniem.

Uczenie neuronu

"Nauczyciel" uczący neuron zna prawidłowe 
odpowiedzi na zadane sygnały wejściowe i porównuje 
je z sygnałami wyjściowymi neuronu. 

Zadaniem neuronu jest rozpoznanie sygnału 
wejściowego i generowanie odpowiedniego sygnału 
wyjściowego. Umiejętność taką neuron zdobywa w 
trakcie uczenia. 

background image

Podstawy Sztucznej 

Inteligencji

23

Jan Kusiak

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej 

Inteligencji

Jan Kusiak

W procesie uczenia, "nauczyciel" dysponuje określonym 
ciągiem uczącym złożonym z par sygnałów wejście - 
wyjście: 

gdzie: 
(p

t

i

) - i-ta para danych uczących 

p

i 

- wektor sygnałów wejściowych i-tego elementu zbioru uczącego,

t

i 

- oczekiwana (zadana) wartość odpowiedzi neuronu na i-ty wektor 

wejścia uczącego,
Q - liczba elementów ciągu uczącego U

Uczenie neuronu



U{(p

1

,t

1

),(p

2

,t

2

),...,(p

Q

,t

Q

)}

Korekta wag ma na celu zmniejszenie różnicy 
pomiędzy oczekiwaną wartością odpowiedzi t, 
rzeczywistą odpowiedzią neuronu a. 

background image

Podstawy Sztucznej 

Inteligencji

24

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 

(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

background image

Podstawy Sztucznej 

Inteligencji

25

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(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: 

background image

Podstawy Sztucznej 

Inteligencji

26

Jan Kusiak

Początkowa wartość składowych wektora wag nie ma 
większego znaczenia. Z reguły nadaje się im wartości 
losowe (nie mogą być zbyt duże, gdyż może to 
spowodować ich rozbieganie się). 

Ogólna zasada uczenia neuronu: 

background image

Podstawy Sztucznej 

Inteligencji

27

Jan Kusiak

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie perceptronu

background image

Podstawy Sztucznej 

Inteligencji

28

Jan Kusiak

Reguła perceptronowa jest jedną z metod 
uczenia nadzorowanego, stosowaną do sieci z 
neuronami dyskretnymi. 

Reguła uczenia perceptronowego

Sygnał uczący jest różnicą pomiędzy 
odpowiedzią pożądaną a odpowiedzią 
uzyskiwaną z sieci (Rosenblatt, 1958); 

€ 

=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

- y

i

+

-

c(d

- y

i

)x

c

s

i

t

i

c(t

 - y

i

)x

t

 - y

i

background image

Podstawy Sztucznej 

Inteligencji

29

Jan Kusiak

Korygowanie współczynników wag synaptycznych 
(dla bipolarnej funkcji aktywacji) odbywa się 
według zależności: 

€ 

Δw=c(ty) =c[tsign(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. 

background image

Podstawy Sztucznej 

Inteligencji

30

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

)

background image

Podstawy Sztucznej 

Inteligencji

32

Jan Kusiak

Liniowa separowalność

Definicja. Dwa zbiory 
punktów A i B z 
wymiarowej przestrzeni 
wejściowej s są 
liniowo separowalne 
jeżeli istnieje n + 1 
wartości w

0

, . . . ,w

 

takich, 
że dla każdego punktu 
A zachodzi:

n

i

i

i

w

x

w

1

0

a dla każdego punktu B zachodzi:

n

i

i

i

w

x

w

1

0

B

A

x

2

X

1

background image

Podstawy Sztucznej 

Inteligencji

33

Jan Kusiak

Liniowa separowalność - przykład

Funkcja logiczna AND:

€ 

(s) =sgnw

0

+w

1

x

1

+w

2

x

2

(

)

     

x

     x

2

        Y

     0       0        -1
     0       1        -1
     1       0        -1
     1       1         1

background image

Podstawy Sztucznej 

Inteligencji

34

Jan Kusiak

Liniowo nieseparowalna funkcja - przykład

Funkcja logiczna XOR:

     

x

     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ć)

€ 

(s) =sgnw

0

+w

1

x

1

+w

2

x

2

(

)

background image

Podstawy Sztucznej 

Inteligencji

35

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:

background image

Podstawy Sztucznej 

Inteligencji

36

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

background image

Podstawy Sztucznej 

Inteligencji

37

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

background image

Podstawy Sztucznej 

Inteligencji

38

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

background image

Podstawy Sztucznej 

Inteligencji

39

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


Document Outline