background image

1

MSI-w5/1

Metody sztucznej inteligencji

Politechnika Śląska

Katedra Podstaw Konstrukcji Maszyn

Rok akademicki 2002/2003

Wykład 5

Materiały dydaktyczne (na prawach rękopisu)  

dla studentów Wydziału Mechanicznego Technologicznego

MSI-w5/2

Uczenie (się) na podstawie 

obserwacji

MSI-w5/3

Główna idea

• Percepcje są wykorzystywane nie tylko do 

wyboru odpowiedniej akcji, lecz także do 

powiększania zdolności systemu wnioskowania 
(agenta) do działania w przyszłości (uczenia się)

• Uczenie się zachodzi jako 

wynik interakcji 

pomiędzy systemem wnioskowania (agentem) 
i otoczeniem

• Jest wiele form uczenia, od

zapamiętywania 

do

tworzenia złożonych teorii

MSI-w5/4

Ogólny model systemu wnioskowania 

(agenta) uczącego się (1)

Ś

r

o
d
o

w

i

s

k
o

Krytyka

Element

uczący się

Element

działający

Generator

problemów

Sensory

Efektory

Agent

Sprzęż.

zwrotne

Cele

uczenia

Zmiany

Wiedza

MSI-w5/5

Ogólny model (systemu wnioskowania) 

agenta uczącego się (2)

• Element uczący się

- odpowiada za dokonywanie 

ulepszeń

• Element działający

- odpowiada za wybór 

zewnętrznych działań

• Krytyka

- dostarcza elementowi uczącemu się 

informacji o tym, jak dobrze działa agent

• Generator problemów

- sugeruje akcje, które będą 

prowadzić do nowych i informatywnych doświadczeń

MSI-w5/6

Ogólny model (systemu wnioskowania) 

agenta uczącego się (3)

• Dostępne sprzężenia zwrotne:

– uczenie nadzorowane

(agent zna zarówno 

percepcje, jak i wynik ich klasyfikacji)

– uczenie ze wzmocnieniem

(agent jest nagradzany 

lub karany, w zależności od wyniku akcji; 

klasyfikacja nie jest agentowi znana)

– uczenie nienadzorowane

(klasyfikacja nieznana)

• Rola wiedzy podstawowej -

uczenie zwiększa 

nieznacznie wiedzę posiadaną przez agenta

background image

2

MSI-w5/7

Indukcja drzew decyzyjnych

• Jeden z najprostszych algorytmów uczenia 

maszynowego

• Łatwe do wdrożenia

MSI-w5/8

Cechy drzewa decyzyjnego

• Obiekty są opisane przez zbiory ich cech
• Drzewo zwraca klasyfikację (decyzję) 

TAK/NIE (mogą być przypadki 
wieloklasowe - bardziej ogólne)

• Drzewo reprezentuje funkcję Boolowską

MSI-w5/9

Budowa drzewa decyzyjnego

• Każdy wewnętrzny węzeł odpowiada testowi 

dotyczącemu wartości jakiegoś atrybutu

• Każdej krawędzi wychodzącej z danego węzła 

przyporządkowana jest jedna wartość atrybutu 
„węzłowego”

• Liściom przyporządkowane są wartości 

Boolowskie, zwracane jeśli osiągnięto dany 
liść

MSI-w5/10

Przykład - czy czekać na stolik?

• Alternate: w pobliżu 

jest inna restauracja?

• Bar: czy w restauracji 

jest bar gdzie można 
poczekać?

• Fri/Sat: Piątek/Sobota
• Hungry: jesteś głodny?
• Patrons: ile jest ludzi w 

restauracji?

• Price: zakres cen
• Raining: czy pada?
• Reservation: czy zarezer-

wowaliśmy wcześniej?

• Type: rodzaj restauracji -

chińska, włoska, Burger.

• WaitEstimate: szacowa-

ny czas oczekiwania w 
min.

MSI-w5/11

Czy czekać na stolik?

Yes

Patrons?

No

Reservation?

Bar?

Yes

No

WaitEstimate?

Alternate?

Hungry?

Yes

Fri/Sat?

Yes

Alternate?

Yes

No

Yes

Yes

Raining?

No

Yes

No

None

Some

Full

0-10

10-30

30-60

>60

No

Yes

No

Yes

No

Yes

No

Yes

No

Yes

No

Yes

No

Yes

W tym drzewie nie
wykorzystano wszyst-
kich atrybutów!!

MSI-w5/12

Indukcja drzew decyzyjnych

ze zbioru przykładów

• Przykład opisywany jest przez 

wartości 

atrybutów

(warunku) oraz przez 

wartość 

atrybutu decyzyjnego

• Przykłady tworzą 

zbiór trenujący

• Brzytwa Ockhama (XIV w.):

Pluralitas non est ponenda sine neccesitate

Najbardziej prawdopodobna jest 
najprostsza spośród hipotez zgodnych ze 
wszystkimi obserwacjami

background image

3

MSI-w5/13

Algorytm indukcji drzew decyz.

function DECISION-TREE-LEARNING(examples,attributes,defaultreturns a decision tree

inputsexamples, zbiór przykładów

attributes, zbiór atrybutów
default, wartość domyślna dla atrybutu decyzyjnego

if examples is empty then return default
else if all examples have the same classification then return the classification
else if attributes is empty then return MAJORITY-VALUE(examples)
else

best

← CHOOSE-ATTRIBUTE(attributes,examples)

tree

← a new decision tree with root test best

for each value v

i

of best do

examples

i

← {elements of examples with best v

i

}

subtree

← DECISION-TREE-LEARNING(examples

i

,attributes-best,

MAJORITY-VALUE(examples))

add a branch to tree with label v

i

and subtree subtree

end
return 
tree

Oznacza to, że 
dane mają te same
opisy, lecz należą
do różnych klas; 
rozstrzyga głoso-
wanie

MSI-w5/14

Uwagi dotyczące indukcji drzew

• Podstawowy problem - wybór 
• Indukcja niezupełna (

nie mamy wszystkich 

możliwych przykładów

)

• Programy realizujące uczenie maszynowe 

działają bardzo szybko i efektywnie

• Drzewa decyzyjne mogą być bardzo 

rozbudowane - często się je 

przycina

kosztem 

nieco gorszej sprawności klasyfikacji

MSI-w5/15

Ocena sprawności algorytmu uczenia (1)

• Zgromadź 

liczny zbiór przykładów

• Podziel go na rozłączne zbiory: 

zbiór trenujący

zbiór testowy

• Stosując zbiór trenujący jako przykłady, 

uzyskaj indukcyjnie hipotezę H

• Stosując przykłady testowe,  

określ jaka ich 

część jest poprawnie klasyfikowana przez H

• Powtarzaj te kroki dla zbiorów trenujących 

różnych wielkości, losowo wybieranych

MSI-w5/16

Ocena sprawności algorytmu uczenia (2)

• Ilość informacji

[bity] zawartej w poprawnej 

odpowiedzi, gdy zbiór trenujący zawiera p
przykładów pozytywnych i negatywnych:

• Ilość informacji dostępna po testowaniu atrybutu

A:

• Przyrost ilości informacji:

n

p

n

n

p

n

n

p

p

n

p

p

n

p

n

n

p

p

I

+

+

+

+

=

+

+

2

2

log

log

)

,

(

=

+

+

+

+

=

v

i

i

i

i

i

i

i

i

i

n

p

n

n

p

p

I

n

p

n

p

A

Pozostało

1

)

,

(

)

(

)

(

)

,

(

)

(

Pr

A

Pozostało

n

p

n

n

p

p

I

A

zyrost

+

+

=

Atrybut dzieli zbiór na
podzbiory E

1

,..., E

v

p

i

, n

i

to liczby przykładów pozyty-
wnych i negatywnych w tym
podzbiorze

MSI-w5/17

Zwiększenie możliwości 

zastosowania drzew decyzyjnych

• Brakujące dane

(nie zapisane; zbyt 

kosztowne ich uzyskanie)

• Atrybuty wielowartościowe
• Atrybuty o wartościach ciągłych

(rzeczywistych) - wymagana dyskretyzacja

MSI-w5/18

Niektóre problemy

• Błędne dane (np. sprzeczne przykłady -

takie same wartość atrybutów warunku, 
różne wartości atrybutu decyzyjnego)

– drzewo klasyfikuje błędnie

• Nadmierne dopasowanie

– zbyt szczegółowy klasyfikator, dużo błędów dla 

„unseen examples”

• Rada - PRZYCINANIE DRZEWA

background image

4

MSI-w5/19

Podstawowe pytanie

Skąd wiadomo, że algorytm uczenia
pozwolił utworzyć teorię, która
będzie 

poprawna

?

MSI-w5/20

Odpowiedź intuicyjna

• Każda hipoteza, która jest poważnie błędna, 

zostanie na pewno znaleziona z wysokim 

prawdopodobieństwem jedynie dla małej liczby 

przykładów, ponieważ to prowadziłoby do 

błędnych przewidywań

• Wniosek:

Jest nieprawdopodobne, żeby hipoteza zgodna z 

wystarczająco licznym zbiorem trenującym, była 

poważnie błędna

• Uczenie 

PAC

(Probably Approximately Correct)

MSI-w5/21

Ile potrzeba przykładów (1)?

• - zbiór wszystkich możliwych 

przykładów

• – rozkład prawdopodobieństwa, z którego 

losuje się przykłady

• - zbiór możliwych hipotez
• f

– prawdziwa funkcja, którą staramy 

się przybliżyć za pomocą hipotezy h

• - liczba przykładów w zbiorze 

trenującym

MSI-w5/22

Ile potrzeba przykładów (2)?

• Błąd (różne od aproksymowanej funkcji f):

• Hipoteza jest w przybliżeniu poprawna, jeśli:

• Gdy 

δ-dopuszczalne prawdop. błędnej hipotezy:

}

z

wylosowane

|

)

(

)

(

{

)

(

D

x

x

f

x

h

P

h

error

h

=

∈ H

liczba

 

mała

,

)

(

ε

ε

h

error

+

H

ln

1

ln

1

δ

ε

m

MSI-w5/23

Podsumowanie (1)

• Zdolność uczenia się systemu wnioskowania (agenta) 

jest istotna 

ze względu na działanie w nieznanym 

środowisku

• W systemie wnioskowania (agencie) uczącym się 

można wyróżnić:

– element działający

, odpowiedzialny za wybór akcji

– element uczący (się)

, odpowiedzialny za modyfikowanie 

elementu działającego

• Możliwe są 

różne formy uczenia

, ze względu na: 

element działający, sprzężenia zwrotne oraz dostępną 

wiedzę

MSI-w5/24

Podsumowanie (2)

• Uczenie się jakiegokolwiek składnika elementu 

działającego może być interpretowane jako 

uczenie się aproksymacji funkcji

• Uczenie się aproksymacji funkcji na podstawie 

przykładów nazywa się 

uczeniem indukcyjnym

• Drzewa decyzyjne są skutecznym środkiem 

uczenia się 

zdeterminowanych funkcji Boola

background image

5

MSI-w5/25

Podsumowanie (3)

• Brzytwa Ockhama

sugeruje wybór 

najprostszej hipotezy pasującej do 

obserwowanych przykładów

• Określenie 

największego przyrostu 

informacji

umożliwia znalezienie 

prostych 

drzew decyzyjnych

• Osiągi algorytmu uczenia indukcyjnego 

określa się za pomocą 

łącznego błędu 

klasyfikacji

MSI-w5/26

Uczenie w sieciach neuronowych

MSI-w5/27

Sieci neuronowe -geneza

• Reprezentuje złożone (np. nieliniowe) funkcje
• Sieci złożone z prostych elementów 

wykonujących operacje arytmetyczne

• Szczególnie użyteczne w przypadku 

skomplikowanych funkcji wielu zmiennych, 

które:

– mają wyjścia o wartościach rzeczywistych
– mają wiele wejść obciążonych szumem

MSI-w5/28

Jak działa mózg?

• Składa się z neuronów (komórek nerwowych)
• Neurony połączone pomiędzy sobą poprzez 

synapsy

• Sygnały pomiędzy neuronami:

– propagowane poprzez reakcje elektrochemiczne
– przekazywane, gdy potencjał elektryczny danego 

neuronu przekroczy odpowiedni próg

– mogą być wzmacniane lub tłumione przez 

synapsy

MSI-w5/29

Długość wypustek komórki nerwowej jest około 

100 razy większa od średnicy komórki.

Budowa neuronu

wejścia

wyjście

wzmocnienie

MSI-w5/30

Mózg : komputer

10

14

10

5

Liczba neuronów 
aktualizowanych/s

10

14

10

9

Pasmo [bity/s]

10

-3

10

-8

Czas trwania cyklu [s]

10

11

neuronów;

10

14 

synaps

RAM 10

bitów;

Dysk 10

10

bitów

Pojemność pamięci

10

11

neuronów

1 CPU; 10

5

bramek

Liczba jednostek

Mózg ludzki

Komputer (1994r)

background image

6

MSI-w5/31

Sieć neuronowa

• Wiele 

węzłów

(jednostek)

• Połączenia

między nimi

• Połączeniom przyporządkowane 

wagi

MSI-w5/32

Jednostka (neuron)

• Posiada zbiór 

połączeń wejściowych

• Posiada zbiór 

połączeń wyjściowych

• Ma 

poziom aktywacji

• Główna idea:

każda jednostka przeprowadza samodzielnie 

(lokalnie) obliczenia, bazując na wejściach 

od swoich sąsiadów, lecz bez potrzeby 

globalnego sterowania zespołem 

neuronów jako całością

MSI-w5/33

Algorytm budowy sieci

• Określ:

– liczbę potrzebnych neuronów
– ich  rodzaj
– sposób połączenia neuronów pomiędzy sobą

• Zainicjuj początkowe wartości wag
• Trenuj sieć (modyfikując wagi), używając 

odpowiedniego algorytmu zastosowanego 

do zbioru przykładów trenujących 

MSI-w5/34

Jednostka sieci (neuron)

wagi

wyjście

Ważona suma wejść

funkcja aktywacji

=

=

j

i

i

j

i

j

i

a

W

in

a

W

,

MSI-w5/35

Przykłady funkcji aktywacji

<

=

t

x

t

x

x

t

  

if

   

,

0

  

if

   

,

1

)

(

step

<

+

=

0

  

if

   

,

1

0

  

if

   

,

1

)

(

sign

x

x

x

x

e

x

+

=

1

1

)

(

sigmoid

1

,

gdzie

)

(

step

)

(

step

0

,

0

0

,

0

1

,

=

=

=

=

=

=

a

t

W

a

W

a

W

a

i

n

j

j

i

j

n

j

j

i

j

t

i

MSI-w5/36

Zastosowanie funkcji aktywacji step powoduje, że 

neurony mogą działać jak logiczne bramki.

Reprezentowanie funkcji logicznych 

background image

7

MSI-w5/37

Struktury sieci neuronowych

• Sieci feed-forward (nierekurencyjne)

– Skierowany graf acykliczny
– Neurony zwykle organizowane w warstwy
– Poza wartościami wag brak wewnętrznego stanu (bez 

pamięci)

– Działają szybko, łatwo je zaprogramować

• Sieci rekurencyjne (mózg ludzki!!)

– Mają stan wewnętrzny
– Zaawansowany aparat matematyczny
– niekiedy  długo trzeba czekać na stabilizację wyjścia

MSI-w5/38

Dwa wejścia (I

1

I

2

), dwa neurony (H

1

H

2

) w warstwie 

ukrytej i  jeden neuron (O

5

) na wyjściu sieci.

Prosta sieć neuronowa

z propagacją w przód

(

)

(

)

(

)

(

)

2

4

,

2

1

4

,

1

5

,

4

2

3

,

2

1

3

,

1

5

,

3

4

5

,

4

3

5

,

3

5

a

W

a

W

g

W

a

W

a

W

g

W

g

a

W

a

W

g

a

+

+

+

=

+

=

MSI-w5/39

Perceptrony

• Mogą reprezentować 

złożone funkcje 

logiczne

• Zastępują złożone 

binarne drzewa 

decyzyjne (perceptron 

wejściach można 

zastąpić drzewem 

decyzyjnym o 2

n

węzłach)

MSI-w5/40

Liniowa separowalność

• Np. XOR nie jest liniowo separowalny
• Istnieje algorytm, który 

umożliwia nauczenie każdej 

liniowo separowalnej funkcji

, gdy jest 

dostatecznie dużo 

przykładów trenujących

MSI-w5/41

Reprezentuje funkcję minimalizacji

Liniowa separacja w przestrzeni 3D

MSI-w5/42

Ogólny algorytm uczenia sieci

function NEURAL-NETWORK-LEARNING(examplesreturns network

network

← sieć z losowo przyjętymi wagami

repeat

for each in examples do

O

← NEURAL-NETWORK-OUTPUT(networke)

T

← zaobserwowane wartości wyjściowe dla e

zaktualizuj wagi w network bazując na e, OT

end

until   wszystkie przykłady poprawnie sklasyfikowane

lub osiągnięte kryterium stop

return  network

O - wartośc wyjściowa sieci, T - wartość poprawna

background image

8

MSI-w5/43

Reguła uczenia perceptronu

• Uczenie polega na aktualizacji wag
• Określa się błąd predykcji:

Err O

gdy > 0, zwiększyć O; gdy < 0, zmniejszyć O

• Udział j-tego neuronu wejściowego w 

wyjściu = W

j

I

j

• Reguła uczenia (

α - prędkość uczenia):

W

j

← W

j

α × I

j

× Err

MSI-w5/44

Porównanie zastosowania perceptronów i drzew 

decyzyjnych

(a) Perceptron lepszy w uczeniu funkcji majoryzującej 

dla 11 wejść,

(b) Drzewa decyzyjne lepsze w uczeniu predykatów 

WillWait (przykład oczekiwania na stolik 
w restauracji)

MSI-w5/45

Dwuwarstwowa sieć neuronowa 

nierekurencyjna dla zadania 

„oczekiwanie na stolik w restauracji”

Neuron wyjściowy

Neurony ukryte

Neurony wejściowe

MSI-w5/46

Wsteczna propagacja błędu (1)

• Najbardziej popularna metoda uczenia NN
• Bazuje na algorytmie uczenia perceptronu
• Istota polega na odpowiednim rozdzielaniu 

błędu proporcjonalnie do wag sieci

• W  wyrażeniu na aktualizację wag 

uwzględnia się 

gradient funkcji aktywacji

MSI-w5/47

Wsteczna propagacja błędu (2)

Jeśli dla i-tego wyjścia Err

i

T

i

O

i

, to:

( )

( )

( )

.

:

wejsciowej

warstwy

Dla

.

:

gdzie

:

Wtedy

.

Niech

,

,

,

,

,

,

,

j

k

j

k

j

k

i

i

i

j

j

j

i

j

i

j

i

j

i

i

i

i

i

j

i

j

i

j

I

W

W

W

in

g

a

W

W

in

g

Err

in

g

Err

a

W

W

+

=

+

=

+

α

α

α

MSI-w5/48

Algorytm wstecznej propagacji błędu

• Oblicz wartości 

∆ dla neuronów wyjściowych 

stosując uzyskany błąd

• Zaczynając od warstwy wyjściowej, powtarzaj 

dla każdej warstwy sieci, dopóki nie zostanie 
osiągnięta pierwsza warstwa ukryta:

– Propaguj wartości 

∆ do poprzedzającej warstwy

– Aktualizuj wagi połączeń pomiędzy obiema 

warstwami

background image

9

MSI-w5/49

Powierzchnia błędów dla gradientu spadku 

w przestrzeni wag 

Kiedy w

1

=a w

2

=b błąd dla danego zbioru danych 

trenujących  jest minimalny

MSI-w5/50

Dyskusja (1)

• SN 

są reprezentacją opartą na atrybutach

i nie 

pozwalają na wyrażanie logicznych zależności 

(w odróżnieniu od drzew decyzyjnych),

• Wydajność obliczeniowa

SN 

zależy od czasu, 

który jest potrzebny na trenowanie sieci

, w celu 

jej dopasowania do danego zbioru przykładów,

• SN 

pozwalają na generalizację problemów

, co 

czyni je przydatnymi w rozwiązywaniu wielu 

zadań świata rzeczywistego.

MSI-w5/51

Dyskusja (2)

• SN 

nie są czułe na szum

na wejściu ponieważ 

działają na zasadzie nieliniowej regresji,

• SN 

są czarnymi skrzynkami

(są nieprzeźroczyste);  

nie można uzyskać odpowiedzi na pytanie: 

„dlaczego dane wyjście jest poprawne?”,

• SN 

nie umożliwiają oceny jaka wiedza a priori

jest najlepsza do ich nauczenia

, co jest efektem 

ich nieprzeźroczystości. (Problem może być 

usunięty w sieciach przekonań)

MSI-w5/52

Przykłady zastosowań

• Wymowa pisanych angielskich tekstów

realizowana przez komputer (NETtalk 1987).

Litera „k” odpowiada dźwiękowi [k], ale litera „c” 

odpowiada także [k] (cat) lub [s]

(cent).

• Rozpoznawanie pisma odręcznego. 

stosowane do odczytywania adresów na 

kopertach (VLSI, 1989).

• Sterowanie pojazdem 

poruszającym się po 

autostradzie (ALVINN, 1993)

MSI-w5/53

Podsumowanie (1)

• Sieć neuronowa to model obliczeniowy o niektórych 

własnościach podobnych do mózgu

• Zachowanie się sieci określone jest przez jej 

topologię

• Perceptron to rodzaj sieci jednowarstwowej, która 

może reprezentować tylko funkcje liniowo 

separowalne

• Dla danych separowalnych liniowo, reguła uczenia 

perceptronu poprzez modyfikację wag sieci 

umożliwia bezbłędne dopasowanie do danych

MSI-w5/54

Podsumowanie (2)

• Nierekurencyjne sieci wielowarstwowe o 

odpowiednim stopniu złożoności mogą 

reprezentować dowolną funkcję

• Algorytm uczenia ze wsteczną propagacją 

błędu umożliwia uczenie nierekurencyjnych

sieci wielowarstwowych:

– Jest zbieżny do lokalnie optymalnego rozwiązania
– Użyty z powodzeniem w wielu zastosowaniach