MSI w5 konspekt 2010 id 309793 Nieznany

background image

MSI-w5/1

Metody sztucznej inteligencji

Politechnika Śląska

Katedra Podstaw Konstrukcji Maszyn

Rok akademicki 2009/10

Wykład 5

background image

MSI-w5/2

Uczenie maszynowe

Uczenie maszynowe polega na zastosowaniu
mechanizmów adaptacyjnych, które pozwalają na
uczenie się systemów komputerowe na podstawie
doświadczeń, przykładów lub analogii. Zdolności
uczenia mogą również ulegać polepszeniu.
Najbardziej popularnym podejściem do uczenia
maszynowego są

sieci neuronowe

i

algorytmy

ewolucyjne

.

background image

MSI-w5/3

Architektura typowej sieci neuronowej

Input Layer

Output Layer

Middle Layer

I n p u t

S i

g n a l

s

O

u t

p u t

S i

g n a l

s

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/4

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

background image

MSI-w5/5

Jednostka sieci (neuron)

wagi

wyjście

Ważona suma wejść

funkcja aktywacji

=

=

j

i

i

j

i

j

i

a

W

in

a

W

,

Russel S., Norvig P.: Artificial Intelligence. A modern approach

background image

MSI-w5/6

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ą

background image

MSI-w5/7

Threshold

Inputs

x

1

x

2

Output

Y

Hard

Limiter

w

2

w

1

Linear

Combiner

θ

Jednowarstwowy dwuwejściowy

perceptron

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/8

Sieć neuronowa wielowarstwowa

„

Wielowarstwowy perceptron jest siecią neuronową
typu feed forward z jedną lub kilkoma warstwami
ukrytymi.

„

Sieć składa się z warstwy wejściowej, zawierającej
neurony z wejściami źródłowymi, co najmniej
jednej warstwy środkowej, nazywanej warstwą
ukrytą
, i warstwy wyjściowej, która zwiera
obliczone wyjścia z sieci.

„

Sygnał wejściowy jest propagowany do przodu
(forward) z warstwy do warstwy.

background image

MSI-w5/9

Wielowarstwowa sieć neuronowa z dwoma

warstwami ukrytymi

Input

layer

First

hidden

layer

Second

hidden

layer

Output

layer

O

u t

p u t

S i

g n a l

s

I n p u t

S i

g n a l

s

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/10

Warstwa ukryta

„

Warstwa ukryta ukrywa swoje oczekiwane wyjścia
(nie wiemy jakie mają być). Neurony z tej warstwy
nie mogą być bezpośrednio obserwowane poprzez
wejścia i wyjścia z sieci.
Stąd sieci neuronowe nazywane są czarnymi
skrzynkami
.

„

Komercyjne sieci neuronowe zawierają trzy lub cztery
warstwy (włączając warstwy ukryte). Każda warstwa
zawiera od 10 do 1000 neuronów.

„

Eksperymentalne sieci neuronowe mogą mieć pięć lub
cześć warstw, w tym trzy lub cztery warstwy ukryte i
około miliona neuronów.

background image

MSI-w5/11

Sieć ze wsteczną propagacją błędu

(back-propagation)

„

Uczenie w sieci wielowarstwowej przebiega w
taki sam sposób, jak w przypadku perceptronu.

„

Zbiór uczący (trenujący) jest podawany na wejście
sieci.

„

Sieć oblicza wzorcowe wyjścia i jeżeli między
aktualnymi wyjściami i wzorcowymi wyjściami
występuje błąd, wagi są dostosowywane
(obliczana jest poprawka), tak aby uzyskać zadany
minimalny błąd.

background image

MSI-w5/12

Sieci neuronowe są projektowane poprzez analogię do
ludzkiego mózgu. Mózg i pamięć działają na zasadzie
skojarzeń (asocjacji).

Sieć wielowarstwowa ze wsteczną propagacją błędu nadaje
się do zdań rozpoznawania, jednak nie jest w stanie
symulować zdolności asocjacyjnych człowieka (ponieważ
nie ma pamięci). W tym celu należy zastosować sieć
neuronową rekurencyjną
.

Sieć neuronowa rekurencyjna posiada pętle sprzężenia
zwrotnego
od wyjść do wejść.

Sieć neuronowa rekurencyjna

background image

MSI-w5/13

Badanie stabilności sieci neuronowych było przedmiotem
badań w latach 1960 - 1970.

Początkowo, nie można było określić jakie i kiedy sieci ze
sprzężeniem zwrotnym będą stabilne. Powodowało to, że
sieci te uważano za słabe i nieużyteczne algorytmu.

Problem stabilności sieci rekurencyjnych został rozwiązany
dopiero w 1982 przez Johna Hopfielda, który sformułował
podstawy przechowywania informacji w tych sieciach.

Sieć Hopfielda

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/14

Jednowarstwowa n-neuronowa sieć

Hopfielda

x

i

x

1

x

2

x

n

I n p u t

S i g

n a

l s

y

i

y

1

y

2

y

n

1

2

i

n

O u t

p u t

S i g

n a

l s

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/15

„

Sieć Hopfielda reprezentuje asocjacyjny typ pamięci, co
pozwala na odzyskiwanie (ratowanie) zniszczonej lub
niekompletnej pamięci, ale nie pozwala na kojarzenie
różnych źródeł pamięci. Pamięć ludzka ma taką własność.

„

Aby łączyć różne źródła pamięci wymagane jest
zastosowanie kilku, połączonych ze sobą sieci.

„

Dwukierunkowe pamięci asocjacyjne (BAM) zostały
opracowane przez Barta Kosko. Pamięć pozwala na
kojarzenie zbioru wzorcowego A, z innym zbiorem
wzorcowym B i odwrotnie. Podobnie jak sieć Hopfielda
sieć BAM pozwala na prowadzenie wnioskowania przy
niekompletnych danych.

Nengnevintsky M.: Artificial Intelligence

Dwukierunkowe pamięci asocjacyjne

(BAM)

background image

MSI-w5/16

Działanie BAM

y

j

(p)

y

1

(p)

y

2

(p)

y

m

(p)

1

2

j

m

Output

layer

Input

layer

x

i

(p)

x

1

(p)

x

2

(p)

x

n

(p)

2

i

n

1

x

i

(p+1)

x

1

(p+1)

x

2

(p+1)

x

n

(p+1)

y

j

(p)

y

1

(p)

y

2

(p)

y

m

(p)

1

2

j

m

Output

layer

Input

layer

2

i

n

1

(a) Forward direction.

(b) Backward direction.

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/17

Główna cechą sieci neuronowych jest uczenie się na
podstawie danych pochodzących z obserwacji środowiska
oraz uczenie się
Wszystkie przedstawione sieci charakteryzują się uczeniem
się nadzorowanym (z nauczycielem; znany jest zbiór
wzorców).
Innym typem uczenia jest uczenie nienadzorowane (bez
nauczyciela);
na wejścia sieci podawane są różne zbiory
danych i sieć sama decyduje (odkrywa), które wartości są
istotne i które wartości można traktować jako wzorce dla
danych wejść.
Algorytmu uczenia się nienadzorowanego działają bardzo
szybko w czasie rzeczywistym

Uczenie nienadzorowane

background image

MSI-w5/18

W 1949 roku Donald Hebb sformułował jedno z
kluczowych praw uczenia biologicznego, znane
jako prawo Hebba.

Jeżeli neuron i jest wystarczająco blisko aby

pobudzić neuron j i ta sytuacja się powtarza,
połączenie między tymi dwoma neuronami jest
wzmacniane, neuron j staje się bardziej czuły na
sygnały pochodzące od neuronu i.
W odwrotnej sytuacji wprowadza się tzw.
współczynnik zapominania (osłabienie
połączenia).

Nengnevintsky M.: Artificial Intelligence

Uczenie Hebba

background image

MSI-w5/19

Uczenie Hebba w sieci neuronowej

i

j

I n p

u t

S i g

n a l

s

O

u t

p u t

S i

g n

a l

s

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/20

„

Neurony współzawodniczą między sobą o to, aby
być aktywowanym.

„

Podczas uczenia Hebba jest aktywowanych kilka
neuronów wyjściowych jednocześnie; w uczeniu
przez współzawodnictwo w jednym czasie jest
aktywowany tylko jeden neuron
.

„

Neuron wyjściowy, który wygrywa
współzawodnictwo jest nazywany neuronem
„zwycięzca bierze wszystko”.

Uczenie poprzez współzawodnictwo (1)

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/21

Kora mózgowa jest bardzo złożoną strukturą
składającą się z bilionów neuronów i wielokrotnie
większej liczby ich połączeń.
W mózgu wyróżnia się obszary odpowiedzialne za
różne działania i zachowania człowieka oraz
kojarzenie pamięci i bodźców odbieranych przez
zmysły.
Każdy ze zmysłów ma swój charakterystyczny
obszar w mózgu
Kora mózgowa jest samoorganizującą się mapą
w ludzkim mózgu.

Samoorganizująca się mapa Kohonena

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/22

Model mapy Kohonena

Input layer

Kohonen layer

(a)

Input layer

Kohonen layer

1

0

(b)

0

1

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/23

„

Inteligencja może być zdefiniowana jako zdolność
systemu (jednostki) do adoptowania swojego
zachowania w ciągle zmieniającym się środowisku.

„

Obliczenia ewolucyjne są symulacją ewolucji
przebiegającą w komputerze. Wynikiem takiej
ewolucji jest seria algorytmów optymalizacyjnych
opartych na bardzo prostych regułach działania.

„

Podejście ewolucyjne jest oparte na numerycznych
modelach naturalnej selekcji i genetyki. Nazywa się je
obliczeniami ewolucyjnymi. Wspólny termin łączący
algorytmy genetyczne i strategie ewolucyjne
nazywany jest programowaniem genetycznym.

Podstawy ewolucji

background image

MSI-w5/24

Cykl algorytmu genetycznego

1

0

1

0

X1

i

Generation i

0

0

1

0

X2

i

0

0

0

1

X3

i

1

1

1

0

X4

i

0

1

1

1

X5

i

f = 56

1

0

0

1

X6

i

f = 54

f = 36

f = 44

f = 14

f = 14

1

0

0

0

X1

i+1

Generation (i + 1)

0

0

1

1

X2

i+1

1

1

0

1

X3

i+1

0

0

1

0

X4

i+1

0

1

1

0

X5

i+1

f = 54

0

1

1

1

X6

i+1

f = 56

f = 56

f = 50

f = 44

f = 44

Crossover

X6

i

1

0

0

0

0

1

0 X2

i

0

0

1

0

X2

i

0

1

1

1 X5

i

0

X1

i

0

1

1

1 X5

i

1

0

1

0

0 1

0 0

1

1

1

0

1

0

Mutation

0

1

1

1

X5'

i

0

1

0

X6'

i

1

0

0

0

0

1

0

X2'

i

0 1

0 0

0

1 1

11

X5

i

1

1 1 X1"

i

1 1

X2"

i

0 1

0

0

X1'

i

1

1 1

0 1

0

X2

i

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/25

„

Podejście zaproponowane w Niemczech w latach 60tych
jako narzędzie pozwalające na przeprowadzanie
optymalizacji złożonych problemów

„

W 1963 dwóch studentów Uniwersytetu Technicznego w
Berlinie, Ingo Rechenberg i Hans-Paul Schwefel,
pracowali na opracowaniem optymalnych kształtów ciał
latających. Na przykładzie naturalnej mutacji przeprowadzali
losowe zmiany parametrów określających kształt. Jako
wynik opracowali strategię ewolucyjną SE.

„

W odróżnieniu od GA, w SE używa się tylko operatorów
mutacji.

Strategie ewolucyjne

background image

MSI-w5/26

„

Strategia ewolucyjna odzwierciedla naturę
chromosomów.

„

Pojedynczy gen może działać jednocześnie na
kilka cech charakterystycznych żyjących
organizmów.

„

Cecha charakterystyczna osobnika jest określana
poprzez jednoczesne interakcje kilku genów.

„

Selekcja naturalna działa na zbiory genów nie na
pojedyncze geny.

Charakterystyka strategii ewolucyjnej

background image

MSI-w5/27

„

Programowanie genetyczne jest rozszerzeniem AG, ale celem
nie jest otrzymanie reprezentacji w postaci kodu binarnego, ale
kodu programu komputerowego.

„

Programowanie genetyczne zostało opracowane w latach 90tych
przez Johna Koza’iego.

„

PG polega na przeszukiwaniu przestrzeni możliwych
programów komputerowych w celu wyszukania programu, który
najbardziej pasuje do danego problemu.

„

Program komputerowy jest sekwencją operacji (funkcji)
zastosowanych dla wartości (argumentów), ale różne języki
programowania mogą zawierać różne typy operacji i definicji.

„

Jak język programowania został wybrany LISP

Programowanie genetyczne

background image

MSI-w5/28

LISP ma strukturę symboliczną. Podstawowe
struktury danych to atomy i listy.

Przykłady atomów:
- 21,
- „To jest lancuch”.

LISP

background image

MSI-w5/29

Lista
(

− (

*

A B) C)

wywołuje funkcję odejmowania (

−) dla dwóch

argumentów – lista (*A B) i atomu C.
funkcja mnożenia (*) jest wywoływana dla dwóch
atomów A a B.
Po tym jak dla listy (*A B) wykonana jest funkcja
mnożenia, stosowana jest funkcja (

−) dla całej listy

(

− (

*

A B) C).

Struktura LISPa

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/30

B

A

*

C

Graficzna reprezentacja listy (

(*A B) C)

Nengnevintsky M.: Artificial Intelligence

background image

MSI-w5/31

Kroki programowania genetycznego

1. Określ zbiór symboli (zmiennych).
2. Wybierz zbiór prostych funkcji.
3. Zdefiniuj funkcję przystosowania.
4. Określ parametry kontrolujące uruchomienie PG.
5. Wybierz rozwiązanie optymalne.

Nengnevintsky M.: Artificial Intelligence


Document Outline


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron