Sztuczna inteligencja wykład cz2


14
Sztuczne sieci neuronowe
Sieci biologiczne
System nerwowy istot żywych zbudowany jest z ogromnej
ilości komórek nerwowych, zwanych neuronami. Ich liczba
w ludzkim mózgu dochodzi do 100 miliardów.
synapsy
dendryty
ciało
akson
Rys. 3. Schemat biologicznego neuronu
Dentryty są wypustkami służącymi do wprowadzania
informacji do neuronu. Każdy neuron biologiczny ma jedną
wypustkę, zwaną aksonem, przez którą może wysyłać
informację do wielu innych neuronów. Każdy neuron
przekazuje pobudzenie innym neuronom przez złącza
nerwowe, zwane synapsami. Odbywa siÄ™ to na drodze
skomplikowanych procesów chemiczno-elektrycznych.
Pojedynczy neuron przyjmuje pobudzenie od ogromnej liczby
innych neuronów, dochodzącej do tysiąca.
Do każdego neuronu dochodzą sygnały, z których część ma
działanie pobudzające, a część  hamujące. Neuron sumuje te
impulsy. Jeżeli ich suma algebraiczna przekracza pewną
wartość progową, neuron wysyła poprzez akson sygnał do
wszystkich, połączonych z nim, neuronów.
Mózg można utożsamiać z ogromną siecią realizującą
równoległe przetwarzanie sygnałów. Najbardziej istotną cechą
15
mózgu jest jego zdolność do nauki. Uczy się on głównie
poprzez dopasowywanie struktury sieci neuronowej, bowiem
w czasie nauki zmianie ulegają siły połączeń między
neuronami.
Budowa i działanie sztucznego neuronu
x0=1
w0
x1
w1
x2 w2
s y
åð
f
xn
wn
Rys. 4. Model sztucznego neuronu
Wprowadzmy następujące oznaczenia:
x=[x1, x2, & , xn]  wektor wartości wejściowych,
w=[w1, w2, & , wn]  wektor wag synaptycznych,
w0  wartość progowa pobudzenia,
s  wartość zsumowana, y  wartość wyjściowa,
f  funkcja aktywacji.
16
Formuła opisująca działanie neuronu wyraża się zależnością
y =ð f (s)
( 1 )
w której
n
s =ð *ð wi
åðxi
( 2 )
i=ð0
Działanie sztucznego neuronu można w skrócie opisać
następująco:
Wartości wejściowe pobudzenia zostają wymnożone przez
odpowiadające im wagi, a następnie zsumowane do wartości s
w członie sumującym. Następnie suma ta zostaje
przekształcona za pomocą funkcji aktywacji f do wartości
wyjściowej neuronu y.
Szczególną rolę pełni stałe wejście x0=1, które za pomocą
wagi w0, pozwala ustawiać wartość progu pobudzenia.
Wiedza, którą posiada pojedynczy neuron, zawarta jest w
jego wagach. Uczenie neuronu polega na modyfikacji jego
wektora wag.
Cechy sztucznych sieci neuronowych
·ð Sieci neuronowe mogÄ… uczyć siÄ™ na przykÅ‚adach
·ð PotrafiÄ… poradzić sobie z zaszumionymi danymi
·ð PrzetwarzajÄ… dane w sposób równolegÅ‚y
·ð SÄ… zdolne do generalizowania wiedzy szczegółowej,
zdobytej w oparciu o przykłady
17
·ð Jeden fragment oprogramowania implementujÄ…cego
algorytmy sieci neuronowych może być wykorzystywany
do rozwiązywania różnorakich problemów
·ð Nie potrafimy wyjaÅ›nić dziaÅ‚ania sztucznych sieci
neuronowych - ekstrakcja jakichkolwiek reguł
decyzyjnych jest zwykle niemożliwa
·ð Proces treningu trwa zwykle bardzo dÅ‚ugo
·ð Nie istniejÄ… w 100% pewne zasady dotyczÄ…ce tego, jakie
sieci stosować i jak je uczyć dla konkretnego zadania.
Wiele elementów musi być dobieranych metodą prób i
błędów
·ð Niekompletny zbiór uczÄ…cy może powodować, że sieć
będzie dawać błędne wyniki podczas rzeczywistego
użytkowania.
Funkcje aktywacji
Neurony możemy podzielić na trzy kategorie ze względu na
użyte w nich funkcje aktywacji:
f (s) =ð s
·ð Liniowe funkcje aktywacji
·ð Nieliniowe nieciÄ…gÅ‚e funkcje aktywacji
·ð Nieliniowe ciÄ…gÅ‚e funkcje aktywacji
18
Przykłady funkcji nieliniowych nieciągłych:
·ð Funkcja signum (znak)
1 dla s >ð 0
ìð
ïð
f (s) =ð 0 dla s =ð 0
íð
ïð
-ð1 dla s <ð 0
îð
·ð Bipolarna funkcja skoku jednostkowego
1 dla s >ð 0
ìð
f (s) =ð
íð
(3)
-ð1 dla s <ð=ð 0
îð
·ð Unipolarna funkcja skoku jednostkowego
1 dla s >ð 0
ìð
f (s) =ð
íð
0 dla s <ð=ð 0
îð
Przykład funkcji nieliniowej ciągłej:
·ð Funkcja sigmoidalna unipolarna
1
f (s) =ð
1+ð e-ðbð *ðs
Jest to funkcja zależna od parametru ².
19
²=5 1 ²=0,5
1,0
0,8
0,6
0,4
0,2
0,0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Rys. 5. Przebieg unipolarnej funkcji sigmoidalnej dla
różnych wartoÅ›ci parametru ²
Perceptron
Działanie sztucznego neuronu i sposób jego wykorzystania
pokażemy na najprostszym sztucznym neuronie, zwanym
perceptronem.
Perceptron jest neuronem z bipolarnÄ… funkcjÄ… skoku
jednostkowego (3).
Perceptron ze względu na swoją funkcję aktywacji generuje
tylko dwie różne wartości wyjściowe y, może więc
klasyfikować wektory wejściowe x=[x1, x2, & , xn] do jednej z
dwóch klas.
W przypadku dwóch wejść x1, x2 perceptron dzieli
płaszczyznę na dwie części. Podział ten wyznacza prosta
(granica decyzyjna) o równaniu
w1* x1 + w2* x2 + w0 =0
20
x0=1
w0
x1
w1
x2 w2
s y
1
åð
-1
xn
wn
Rys. 6. Schemat perceptronu
Po przekształceniu równanie prostej będącej granicą
decyzyjną przybierze postać
w1 w0
x2 =ð *ð x1 -ð
w2 w2
x2
w1
wektor wag
w2 -w0/w2
x1
Rys. 7. Granica decyzyjna dla dwuelementowych
wektorów danych. Jest ona prostopadła do
wektora wag w=[w1, w2]
21
W ogólnym przypadku, gdy perceptron ma n wejść, dzieli
n-wymiarową przestrzeń wektorów wejściowych x na dwie
półprzestrzenie za pomocą n-1-wymiarowej hiperpłaszczyzny.
Granica ta dana jest równaniem
n
*ð wi +ð w0 =ð 0
åðxi
i=ð1
Zgodnie z tym, co zostało już powiedziane, perceptron
można uczyć. Będzie to tak zwane uczenie z nadzorem.
Polega ono na podawaniu na wejście neuronu ciągu uczącego
w postaci ciągu wektorów
x1=[x1, x2, & , xn]
x2=[x1, x2, & , xn]
& & & & & & &
dla których znamy prawidłowe wartości odpowiedzi d1, d2, &
Po podaniu każdego wektora wejściowego xi oblicza się
wartość wyjściową perceptronu yi. Następnie dobiera się wagi
na wejściu tak, aby zminimalizować błąd ri= |yi- di|.
Proces ten można powtarzać wielokrotnie dla tych samych
danych wejściowych, aż do osiągnięcia dla wszystkich
wektorów wejściowych błędów mniejszych od założonych.
Każde powtórne wykorzystanie tego samego ciągu uczącego
nazywamy epoką. Przed rozpoczęciem nauki wszystkim
wagom nadaje się losowe wartości początkowe.
Dla przedstawionego na rys. 8 zbioru uczÄ…cego wektorem
wartości wejściowych będzie zbiór wartości czterech
atrybutów, opisujących pogodę. Będą to liczby całkowite,
otrzymane w wyniku kodowania, np. dla wiatru: brak=0,
b.słaby=1, słaby=2, silny=3, b. silny=4. Wartość wyjściową
(samopoczucie) można opisać za pomocą wartości  1 i 1.
22
Aura Temp. Wilgot. Wiatr Samopocz.
xi
1 słoneczn. Ciepło mała brak dobre
2 pada Ciepło b. duża słaby dobre
3 mglisto chłodno b. duża słaby złe
4 słoneczn. b.ciepło b. mała brak dobre
5 słoneczn. Zimno b. mała silny złe
6 pochmur. Ciepło duża słaby dobre
7 pada b. zimno duża b. silny złe
Rys. 8. Przykładowy zbiór wektorów uczących
Sieć, która nabyła wiedzę, może klasyfikować wektory nie
należące do zbioru uczącego z wysokim stopniem pewności.
Model neuronu sigmoidalnego
Jest to neuron z funkcjÄ… aktywacji w postaci unipolarnej, lub
bipolarnej funkcji sigmoidalnej. Jak widać na rys. 5, funkcja ta
zapewnia płynne przejście od wartości 0 do 1 z progresją
zależnÄ… od parametru ². Ze wzrostem parametru ² przebieg
funkcji dąży do przebiegu unipolarnej funkcji skoku
jednostkowego.
Neuron sigmoidalny odgrywa dużą rolę w konstruowaniu
sieci neuronalnych. Jego ogromna zaletÄ… jest
różniczkowalność funkcji aktywacji, której pochodną można
łatwo obliczyć, co ma znaczenie przy szacowaniu błędu.
Dlaczego sieci neuronowe ?
Zakres możliwych problemów, które można rozwiązać,
stosując pojedyncze neurony, jest raczej wąski. Przykładowo,
pojedynczy neuron, który dla dwuelementowego wektora
23
wejściowego, klasyfikuje obiekty rozdzielając je prostą, nie
potrafi rozdzielić punktów, będących wynikiem znanej funkcji
logicznej, zwanej  wyłączne nie czyli XOR.
x1 x2 d=XOR(x1, x2)
+1 +1 -1
+1 -1 1
-1 +1 1
-1 -1 -1
Rys. 9. CiÄ…g uczÄ…cy dla problemu XOR
Z powyższej tabeli wynika, że nie istnieje prosta, która
oddzielałaby punkty o wartościach funkcji XOR równych  1
od punktów o wartościach +1. Neuron nie dobierze tak swoich
wag, aby rozwiązać problem XOR. Problemy takie są w stanie
rozwiązać sieci neuronowe, złożone z większej ilości
neuronów.
x2
1
-1 1
x1
-1
Rys. 10. Granica decyzyjna dla problemu XOR
Podobnie jak w mózgu, sztuczne neurony łączy się ze sobą,
tworzÄ…c wielowarstowe sieci neuronowe. Mamy wtedy do
czynienia z uczeniem sieci, w którym nabywanie wiedzy
przez poszczególne neurony jest procesem zależnym od
innych neuronów (zwykle sąsiednich) w sieci.
24
Główne sposoby łączenia sztucznych neuronów w sieć, a
także metody ich uczenia, zostaną omówione w następnym
rozdziale.
Zbiór wszystkich wag w sieci jest reprezentacją informacji
wykorzystywanej przez nią do rozwiązywania zadań. W
większości przypadków jest jednak niemożliwe dokonanie
interpretacji znaczenia poszczególnych wartości wag.
Topologie sieci neuronowych
Najważniejsze topologie (architektury połączeń) sztucznych
sieci neuronowych, to:
·ð Sieci jednokierunkowe, charakteryzujÄ…ce siÄ™ jednym
kierunkiem przepływu sygnałów i brakiem cykli w
połączeniach między neuronami. Ilość neuronów w
warstwach nie jest duża, warstwa ukryta nieraz nie
występuje.
Warstwa
wyjściowa
Warstwy ukryte
Warstwa
wejściowa
Rys. 11. Wielowarstwowa jednokierunkowa sieć neuronowa
W uczeniu sieci wielowarstwowych ważną rolę pełni
metoda, zwana wsteczną propagacją błędów. Zostanie ona
omówiona pózniej.
25
Dobór architektury dla sieci wielowarstwowych polega na
doborze liczby warstw sieci oraz ilości neuronów w każdej
warstwie. Ilości te silnie zależą od problemu, który chcemy
rozwiązać.
Zgodnie z tym, co już zostało powiedziane, pojedynczy
neuron dzieli płaszczyznę na dwie części. Natomiast dwie
warstwy mogą odwzorowywać już tzw. simpleksy czyli
wypukłe, ograniczone hiperpłaszczyznami wycinki
przestrzeni. Trzy warstwy dają już możliwość wydzielania w
zasadzie dowolnych obszarów. Trójwarstwowa sieć jest więc
w stanie rozwiązać szeroką gamę problemów klasyfikacji i
aproksymacji.
·ð Sieci rekurencyjne, czyli takie, w których wystÄ™pujÄ…
sprzężenia zwrotne. Oznacza to, że na wejście sieci
podawane są w sposób bezpośredni lub pośredni sygnały
wyjściowe sieci lub warstw.
wk
x1 x2 x1
Rys. 12. Sieć Hopfielda jako przykład sieci rekurencyjnej
Jednorazowe pobudzenie struktury ze sprzężeniem zwrotnym
powoduje, że sygnały z wyjścia ponownie trafiają na wejścia
neuronów, generując nowe sygnały. Proces ten trwa aż do
ustabilizowania się sygnałów wyjściowych. Zanim to się
jednak stanie wystąpić mogą oscylacje, polegające na
26
gwałtownym narastaniu, bądz opadaniu sygnałów
wyjściowych.
Najprostszym przykładem sieci rekurencyjnej jest sieć
Hopfielda. Jest to sieć jednowarstwowa o budowie
przedstawionej na rys.12.
Ciekawym wykorzystaniem sieci Hopfielda jest używanie jej
jako pamięci asocjacyjnej. Inne bardziej znane topologie sieci
rekurencyjnych, to:
żð sieć Hamminga - jest to sieć rekurencyjna
trójwarstwowa używana do rozpoznawania
obrazów,
żð sieć Elmana i sieci RTRN (Real Time Reccurent
Network), używane do modelowania przebiegów
czasowych i identyfikacji obiektów dynamicznych,
żð sieć BAM (Bidirectional Associative Memory)
realizująca pamięć typu heteroasocjacyjnego (to jest
polegają na kojarzeniu dwóch wektorów zupełnie
dowolnego typu).
Do wszystkich, dotychczas wymienionych rodzajów sieci
stosuje siÄ™ metody nauki z nauczycielem (z nadzorem).
·ð Sieci komórkowe, w których wystÄ™pujÄ… sprzężenia
wzajemne, ale dotyczą one tylko najbliższego sąsiedztwa.
Rys. 13. Przykład sieci komórkowej
27
Algorytm wstecznej propagacji błędów
Jest stosowany do uczenia wielowarstwowej sieci
neuronowej.
Algorytm zaczyna siÄ™ od podania pierwszego wektora
uczącego na wejścia neuronów pierwszej warstwy. Otrzymane
z wyjścia każdego neuronu warstwy pierwszej sygnały są
podawane na wejścia wszystkich neuronów następnej
warstwy. Proces ten powtarza się aż do warstwy ostatniej.
Znając sygnał wyjściowy warstwy ostatniej, oraz sygnał
wzorcowy z ciągu uczącego, oblicza się błąd dla wszystkich
neuronów warstwy ostatniej. Pozwala to na modyfikację wag
neuronów, ale tylko w warstwie ostatniej. Bowiem w ten
sposób nie można modyfikować wag neuronów warstw
poprzednich.
Dlatego błąd wyjściowy jest propagowany do tyłu, poprzez
wszystkie warstwy poprzednie, zgodnie z połączeniami
neuronów miedzy warstwami i z uwzględnieniem ich funkcji
aktywacji.
Taką modyfikację sieci przeprowadza się każdorazowo po
podaniu na wejście kolejnego wektora uczącego.
Inicjalizacja wartości wag początkowych sieci
Oczywistym jest, że im wartości startowe wag będą bliższe
wartości optymalnej (minimalizującej funkcję błędu), tym
uczenie będzie trwało krócej.
Funkcja błędu jest funkcją wielu zmiennych, którymi są
wszystkie wagi. Ma ona zwykle wiele minimów lokalnych, w
których może utknąć algorytm poszukujący minimalnej
wartości błędu.
minimum globalne
błąd
wagi
minimum lokalne
28
Najprostszą metodą usunięcia powyższej niedogodności jest
rozpoczynanie uczenia sieci od różnych wartości wag
poczÄ…tkowych.
Algorytm:
żð Wybieramy wagi losowo, zakÅ‚adajÄ…c rozkÅ‚ad
równomierny w określonym przedziale liczbowym,
żð UżywajÄ…c algorytmu wstecznej propagacji bÅ‚Ä™du
uczymy sieć,
żð Gdy bÅ‚Ä…d uczenia przestaje maleć, lub zaczyna rosnąć,
wybieramy ponownie losowo wagi, jednak z innego
przedziału liczbowego
żð Powtarzamy uczenie sieci i obserwujemy, czy bÅ‚Ä…d
uczenia jest mniejszy niż poprzednio. Jeśli tak, to
byliśmy w minimum lokalnym, więc powtarzamy
uczenie dla innych jeszcze losowych wartości
początkowych wag. Oczywiście to wydłuża proces
uczenia sieci.
Sieci samoorganizujÄ…ce z konkurencjÄ…
Omawiane dotychczas sieci były uczone z wykorzystaniem
algorytmów z nauczycielem, znaliśmy bowiem wzorcową
odpowiedz sieci na sygnał wejściowy.
Sieci samoorganizujące to sieci, które uczą się bez
nauczyciela (ten rodzaj uczenia nazywany jest czasem
uczeniem bez nadzoru). Ciąg uczący składa się więc jedynie z
wartości wejściowych. Sieci te mają szerokie zastosowania,
między innymi w zadaniach grupowania danych (klastering).
Sieci typu WTA
Jest to sieć samoorganizująca, a jej nazwa pochodzi od
algorytmu uczenia Winner Takes All.
29
x1
0

x2
.
0

.
1
. Sð
xn
0

Blok rywalizacji
Rys. 14. Sieć samoorganizująca typu WTA
Sygnał wejściowy x=[x1, x2,& , xn] trafia wejścia wszystkich
neuronów. Tutaj następuje wyznaczenie miary podobieństwa
(odległości) sygnału wejściowego x do wszystkich wektorów
wag wi.
Neuron charakteryzujący się najmniejszą odległością
wektora wag od sygnału wejściowego, przyjmuje na swym
wyjściu wartość 1, pozostałe neurony  wartość 0.
W dalszym procesie uczenia tylko wagi tego neuronu sÄ…
modyfikowane. Tak więc  zwycięzca bierze wszystko a inni
na niego pracujÄ… .
Działanie sieci samoorganizującej sprowadza się do
podzielenia M podanych na wejściu wzorców na N
rozłącznych klas, gdzie N jest liczbą neuronów w sieci.
Po nauczeniu sieci każdy neuron reprezentuje inną klasę.
Zadaniem uczenia jest więc taki dobór wartości wszystkich
wag, aby dla wektora wejściowego x, który należy do i-tej
klasy, jego odległość od i-tego wektora wag była jak
najmniejsza.
Sieć WTA była wykorzystana do rozwiązania problemu
kwiatu irysa. Na podstawie czterech jego cech: długości i
szerokości płatka, oraz długości i szerokości liścia, należało
określić do którego gatunku dany kwiat należy.
30
Każdy wejściowy wektor uczący składał się więc z
czterech składowych, również liczba wejść każdego neuronu,
a co za tym idzie  liczba wag to cztery. Ponieważ liczba
rozróżnialnych gatunków to 3, więc użyto trzech neuronów w
sieci. Zatem Å‚Ä…cznie w procesie uczenia dobierano 12 wag.
Użyto 120 wektorów uczących. Okazało się po podaniu
wektorów testujących, że jeden z gatunków siec rozpoznaje
bezbłędnie, natomiast w przypadku dwóch pozostałych
popełnia czasem błędy.
Sieci typu WTM
Są to sieci samoorganizujące, w których oprócz zwycięzcy,
korekty wag dokonują również jego sąsiedzi. Stąd nazwa
sieci, pochodzÄ…ca od Winner Takes Most. Najbardziej
znanymi algorytmami uczenia, wykorzystywanymi przez te
sieci, sÄ…: tzw. algorytm gazu neuronowego, oraz algorytm
Kohenena.
W tej ostatniej metodzie wprowadza się sąsiedztwo na stałe,
łącząc neurony w siatkę, w sposób pokazany na rys. 13.
Bardzo ciekawą propozycją sieci bez nauczyciela jest sieć
typu ART (Adaptive Resonanse Theory). Celem działania tej
sieci jest rozpoznawanie konkurencyjne nieznanych wcześniej
obrazów binarnych.
Uwaga końcowa
Sieć neuronowa jest definiowana przez następujące elementy:
·ð Funkcje aktywacji neuronów,
·ð ArchitekturÄ™ (topologiÄ™) sieci, czyli wzorzec poÅ‚Ä…czeÅ„
między neuronami
·ð Algorytm uczenia lub treningu, czyli sposób
dokonywania zmian wag połączeń.


Wyszukiwarka