„sieci neuronowe” - marek...

12
Micha Rutkowski 133350 Wrocaw, 4 czerwca 2007 „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka systemów autonomicznych” PROWADZ+CY: dr in/. Marek Piasecki 1 Trzy sowa wstpu W niniejszej pracy postaram si2 przedstawi3 zagadnienie sztucznych sieci neuronowych (SSN) lub jak kto woli z angielskiego artificial neural network (ANN). Zagadnienie te jest spore, wi2c nie b2dzie to kompleksowe przedstawienie problemu, a raczej krótka próba przybli/enia zagadnienia, wraz z omówieniem pewnych cech SSN b2d:cych ich unikalnymi wa;ciwo;ciami oraz pokazanie pewnych interesuj:cych przykadów zastosowania SSN. Od czego wi2c zacz:3. SSN jak to cz2sto w ;wiecie nauki bywa zostay zainspirowane przyrod:, a dokadniej mózgiem, a dokadniej rzecz ujmuj:c sposobem jakim mózg dziaa i pracuje. Nale/y wi2c zada3 pytanie:

Upload: others

Post on 15-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

Michał Rutkowski 133350

Wrocław, 4 czerwca 2007

„Sieci neuronowe”

praca zaliczeniowa z przedmiotu „Informatyka systemów autonomicznych”

PROWADZĄCY:

dr inż. Marek Piasecki

1 Trzy słowa wstępu

W niniejszej pracy postaram się przedstawić zagadnienie sztucznych sieci neuronowych (SSN)

lub jak kto woli z angielskiego artificial neural network (ANN). Zagadnienie te jest spore, więc nie

będzie to kompleksowe przedstawienie problemu, a raczej krótka próba przybliżenia zagadnienia,

wraz z omówieniem pewnych cech SSN będących ich unikalnymi właściwościami oraz pokazanie

pewnych interesujących przykładów zastosowania SSN.

Od czego więc zacząć. SSN jak to często w świecie nauki bywa zostały zainspirowane przyrodą,

a dokładniej mózgiem, a dokładniej rzecz ujmując sposobem jakim mózg działa i pracuje. Należy więc

zadać pytanie:

Page 2: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

2 Jak pracuje mózg

Czytając przeróżne czasopisma popularno naukowe czy też oglądając różne filmy z gatunku

dokumentalnego / edukacyjnego można się spotykać z określeniem, że mózgu to biologiczny

komputera. Porównanie to jest trafne jeśli chodzi o funkcje mózgu – można mózg traktować jako

centralną jednostkę obliczeniowa (z ang. CPU, czyli potocznie procesor) która podejmuje

najważniejsze decyzje w organizmie oraz steruje jego pracą. Jeśli jednak odnieść się do zasady

działania mózgu porównanie go do procesora jest zgoła nie właściwe. Mózg pracuje na odmiennych

zasadach, niż tradycyjny komputer. W zwykłym komputerze procesor wykonujący obliczenia jest

oddzielony od pamięci. W mózgu zaś rolę pamięci spełnia sama jego budowa. Mózg sam w sobie jest

czymś na miarę pamięci asocjacyjnej w której indeksami są obrazy, zapachy, wspomnienia czy też

rozmaite inne impulsy dostarczane do mózgu (np. ból, zachwianie równowagi, wzrost temperatury itp.,

itd).

Również, operacje jakie wykonuje mózg są znacznie prostsze niż operacje jakie wykonuje nasz

procesor AMD czy Intela, no bo czy ktoś umie w głowie policzyć sumę 2 liczb zmienno przecinkowych

(notabene działanie takie mózgowi nie jest do niczego potrzebne). Operacje jakie wykonuje mózg to

co najwyżej dodawania, odejmowanie, dzielenie i mnożenie. Nasuwa się, więc pytanie w czym tkwi

sekret, skoro mózg jest taki prosty to jak to się dzieje, że działa tak dobrze? Odpowiedz na to pytanie

jest dość prosta, mózg stawia na ilość operacji, a nie na ich skomplikowanie (coś jak procesory RISC),

a te ilości są naprwadę ogromne.

Ludzki mózg zbudowany jest z ok. 100 miliardów pojedynczych komórek nerwowych zwanych

neuronami. Pomiędzy neuronami znajdują się cieniutkie połączenia - aksony. Aksonów jest około 1015,

a liczba operacji na sekundę jaką wykonuje mózg to około 108GHz (dla porównania procesor Intel

Core 2 Duo zmuszono do pracy z częstotliwością 6GHz, tyle że procesor był chłodzony ciekłym

azotem).

Podsumowując, porównanie mózgu do procesora można nazwać obrazą, jeśli wziąć pod uwagę

zakres operacji jakie mózg wykonuje i nadzoruje oraz z jaką gracją mu to wychodzi. Mózg można

raczej przyrównać do klastra, gdzie ogromne ilości operacji i danych są wykonywane w ułamkach

sekund (przy czym klastra bardzo wyspecjalizowanego i prostego).

Przyjrzyjmy się, więc budowie neuronu.

Page 3: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

3 Neuron

Żywy neuron przedstawia się następująco:

Rysunek 1. Neuron.

Objaśnienie:

Jądro - "centrum obliczeniowe" neuronu. To tutaj zachodzą procesy kluczowe dla funkcjonowania

neuronu.

Akson - "wyjście" neuronu. Za jego pośrednictwem neuron powiadamia inne neurony o swojej reakcji

na dane wejściowe. Neuron ma tylko jeden akson.

Wzgórek aksonu - stąd wysyłany jest sygnał wyjściowy, który wędruje dalej poprzez akson.

Dendryt - "wejście" neuronu. Tędy trafiają do jądra sygnały mające być w nim później poddane

obróbce. Dendrytów może być wiele.

Synapsa - możne być traktowana jako brama do jądra neuronu. Może ona zmienić moc sygnału

napływającego poprzez dendryt.

Wzorując się na żywym neuronie można przyjąć model :

Rysunek 2. Model neuron.

Page 4: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

Mamy już jeden neuron. Właściwie to nawet jeden neuron można zmusić do działania, gdyż

właściwie jest to sieć jednoelementowa. Aby jednak móc użyć sieci w jakimś poważnym celu, trzeba

użyć większej ilości neuronów. Jak widać z rysunków 1 i 2 , neuron może mieć jeden lub więcej

dendrytów (a dla każdego po jednej synapsie) i dokładnie jeden akson. Łączymy je w prosty sposób:

po pierwsze układamy je warstwami. Można zbudować sieć o jednej, dwóch, trzech lub więcej

warstwach – przy czym przy typowych zastosowaniach stosuje się najczęściej trzy warstwy. Neurony

należące do danej warstwy nie mają ze sobą żadnego kontaktu (w najprostszym modelu). Wygląda to

mniej więcej tak:

Rysunek 3. Model sieci neuron.

Na rysunku powyżej przedstawiono sieć jednokierunkową. W takiej sieci sygnały płyną równo i

spokojnie od wejścia poprzez warstwy ukryte do wyjścia. Inną odmianą SSN są sieci rekurencyjne

(rysunek 4). Różnica polega na tym, że w sieci rekurencyjnej występują tzw. sprzężenia zwrotne. Za

ich pośrednictwem sygnały mogą po przejściu danej warstwy wracać na jej wejście, zmieniając przy

tym swoje wartości, co powtarza się wiele razy, aż do osiągnięcia pewnego stanu ustalonego.

Page 5: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

Wyjścia sieci

Wejścia sieci

NEURON NEURON NEURON NEURON NEURON

NEURON NEURON

Warstwapierwsza

Warstwawewnętrzna

Warstwawyjściowa

NEURONNEURONNEURONNEURON

NEURON

Rysunek 4. Model sieci neuron ze sprzężeniem zwrotnym.

Czarna strzałka sprzężenie zwrotne z wyjścia na wejścia neuronów.

4 Co potrafią sieci neuronowe

• Klasyfikacja i rozpoznawanie – sieć uczy się podstawowych cech prezentowanych wzorców i

na jej podstawie podejmuje odpowiednią decyzję klasyfikacyjną.

Rysunek 5a i b. Klasyfikacja i rozpoznawanie

• Aproksymacja – siec pełni rolę uniwersalnego apoksymatora funkcji wielu zmiennych,

realizując funkcję nieliniową postaci y=f(x)

• Asocjacja – sieć zapamiętuje zbiór wzorców w taki sposób, aby po zaprezentowaniu nowego

wzorca reakcją sieci było wytworzenie zapamiętanego wzorca, który jest najbardziej podobny

do nowego.

Page 6: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

Rysunek 6. Asocjacja

• Heteroasocjacja – sieć zapamiętuje i kojarzy pary obrazów i nawet zniekształcony obraz

wejściowy może wywołać właściwą heteroasocjację na wyjściu (heteroasocjacja obejmuje

problem klasyfikacji)

Rysunek 7. Heteroasocjacja

• Optymalizacja – pozwala na minimalizację pewnych funkcji kosztu, zwykle zadanych przez

użytkownika. Sieć samoczynnie poszukuje minimum tzw. funkcji energii (wartości zależnej od

stanu sieci), dochodzi do stanu o minimalnej energii i w nim zostaje (np. problem

szeregowania zadań)

• Grupowanie danych i wykrywanie cech:

o grupowanie danych – sieć samoczynnie wykrywa podobieństwo w przetwarzanych

danych

o wykrywanie cech – często jest związane z redukcją wymiarów. Mogą realizować

odwzorowanie cech wielowymiarowego sygnału wejściowego o złożonej strukturze na

płaszczyznę (np. prowadzone są eksperymenty z kompresją obrazów za pomocą

SSM, wyniki takiej kompresji są lepszej jakości niż kompresji algorytmami

tradycyjnymi, ale niestety czas takiej kompresji jest znacznie dłuższy)

Page 7: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

5 Uczymy się

Sieć, podobnie jak człowiek, może zarówno być uczona przez nauczyciela, jak i zdobywać

wiedze całkiem samodzielnie.

SSNX Y

BŁĄDODP

Rysunek 8a. Uczenie nadzorowane Rysunek 8b. Uczenie nienadzorowane

Uczenie nadzorowane – dla każdej wartości wchodzącej w skład sygnały wejściowego znana jest

poprawna odpowiedz (wartość wyjściowa). Na podstawie różnicy między wartością rzeczywistą, a

wartością pożądaną następuje korekcja wag.

Uczenie nie nadzorowane - różni się od zwykłego uczenia głównie tym, że sieć otrzymuje tylko obiekt

wejściowy, bez narzuconego dla niego wyjścia. Nikt jej nie sugeruje, jak ma na dany obiekt reagować.

Wagi każdego z neuronów w uczeniu nie nadzorowanym zmieniają się zgodnie z zasadą, że:

• neurony, które silnie zareagowały na sygnał wejściowy (akceptacja), zostają nauczone tak,

aby reagować na ten sygnał jeszcze silniej

• neurony, które zareagowały słabo (obojętność), nie są uczone;

• neurony, które zareagowały silną odpowiedzią ujemną (odrzucenie), są uczone tak, aby

jeszcze bardziej zdecydowanie odrzucały ten sygnał.

Page 8: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

6 Zastosowania SSN Rozpoznawanie obrazów.

Jest najstarszym z zastosowań sieci neuronowych. W zagadnieniu rozpoznawania obrazu wyróżnia

się szczególnie dwa procesy: wyodrębnianie obiektów i ich identyfikację. Wyodrębnianie obiektów

polega na ich wykryciu na analizowanym obrazie. Wykonuje się przy tym kilka działań takich jak:

wykrywanie krawędzi, wyznaczanie konturów, ocenę powierzchni. W realizacji tych zadań wygrywają

sieci neuronowe w szczególności dzięki ich zdolności do funkcjonowania w warunkach zakłóceń. W

odróżnieniu od pozostałych algorytmów analizy obrazów sieci neuronowe nie potrzebują wstępnego

preprocessing obrazu.

Prognozowanie

Prognozowanie polega na przewidywaniu na podstawie zdobytej wiedzy następnych wydarzeń. Sieci

neuronowe są narzędziami, które znalazły sobie miejsce w dziedzinie ekstrapolacji, czyli

przewidywaniu przyszłego rozwoju zjawiska na podstawie obserwacji jego dotychczasowego

przebiegu. Jakość prognoz może być różna, w dużej mierze zależy to od stopnia nauczenia sieci.

Możliwe jest jednak stworzenie sieci wykorzystującej adaptacyjne zdolności sieci i zbudować taką sieć

neuronową, która nie tylko będzie uwzględniała wiedzę o prognozowanym zjawisku, nabytą w trakcie

treningu, ale także pozytywne lub negatywne doświadczenia zdobywane podczas realnego

prognozowania. W takim wypadku mamy do czynienia z douczaniem sieci. Prognozowanie przez sieci

neuronowe znalazło zastosowanie w przewidywaniach finansowych.

Sterowanie.

SSN są wykorzystywane do sterowania robotami przeznaczonymi do pracy w najtrudniejszych

warunkach. Wykorzystuje je się również w planowaniu do racjonalizacji ruchów robota w nieznanym

mu wcześniej otoczeniu, ponadto dobrze radzą sobie ze sterowaniem procesami produkcji.

Analiza sygnałów.

Pod sygnał można podciągnąć wszystkie przedstawione zależności różnych wielkości od siebie ( np.

natężenie prądu od czasu, mocy sygnału od jego częstotliwości) Sieci neuronowe potrafią wykrywać

istotne stany lub ich sekwencje co ma bardzo ważne znaczenie przy podejmowaniu odpowiedniej

reakcji na odpowiedni stan sygnału ( np. załamki zapisu EKG).

Page 9: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

7 Zastosowania SSN w medycynie Spore możliwości działania mają sieci neuronowe w medycynie, sprawdzają się między innymi w:

• Inteligentnym wspomaganiu decyzji: diagnozy medyczne, zalecenia dodatkowych testów,

decyzje w nagłych przypadkach. Należy tu jednak zaznaczyć pewien opór i środowiska i

pacjentów gdyż ludzie nie chętnie składają swoje życie w ręce cudze, a już zupełnie nie jest

im po myśli gdy maszyna ocenia ich szanse na przeżycie (patrz [1] ) czy określa sposób

postępowania z nim

• Klasyfikacji struktur: rozpoznawanie symptomów, klasyfikacja stanu zdrowia, zachowań

człowieka, sensu wypowiedzi.

• Kontroli: sprawdzanie dawek leków, możliwych interakcji leków, potencjalnych

przeciwwskazań

• Planowaniu: terapii, diety, optymalizacja działań w trakcie jej przebiegu.

• Sterowaniu: urządzeń podtrzymujących funkcje życiowe, monitorowanie stanu pacjenta i

ostrzeganie w sytuacjach kryzysowych.

• Analizie obrazów: rozpoznawanie i interpretacja obrazów z aparatury medycznej, kontrola

jakości obrazu.

• Detekcji regularności: wykrywanie niebezpiecznych symptomów w sygnałach EKG, EEG i

innych.

• Separacji sygnałów z wielu źródeł: oczyszczanie obrazów z szumów, filtracja sygnałów

elektrycznych (np. mrugania powiek z EEG)

• Prognozowaniu: rozwój choroby.

8 Zastosowania SSN w medycynie – studium przypadku

Przytoczę tutaj rezultaty badań zawartych w [5]. Celem badań było stworzenie systemu

wspomagającego diagnostykę typu przewlekłego zespołu bólowego twarzy. Klasycznie wyróżnia się 5

głównych typów zachorowania:

• Trigeminal neuralgia Type 1

• Trigeminal neuralgia Type 2

• Trigeminal neuropathic pain

• Symptomatic trigeminal neuralgia

• Atypical facial pain

Page 10: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

W oparciu o kwestionariusz z 18 pytaniami autorzy eksperymentu zaprojektowali i nauczyli ANN w celu

diagnozy choroby. Zaprojektowana przez nich sieć ma 4 warstwy (2 ukryte), 18 wejść (18 pytań tak/nie)

oraz 5 wyjść (5 typów zachorowania) i wygląda następująco:

Rysunek 9. ANN przeznaczona do diagnostyki zachorowań na przewlekły zespołu bólowy twarzy

Następnie 100 chętnych z zdiagnozowaną chorobą zostało poproszonych o wypełnienie

kwestionariuszy. Odpowiedzi z ankiet zostały poddane ocenie ANN. Sieć była w stanie wywnioskować

typ choroby w przypadku 95 osób na 100. Eksperyment dowodzi o sporym potencjale ANN w

zastosowaniu przy diagnostyce przewlekłego zespołu bólowego twarzy, jaki i generalnie w medycynie.

Możliwe jest również zastosowanie ANN do auto-diagnostyki pacjentów – wystarczy zbudować

odpowiednią stronę WWW i podpiąć pod nią sieć neuronową co umożliwi pacjentom wstępną

diagnozę przed wizyta u lekarza.

Page 11: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

9 Quo vadis

Jaka jest przyszłość SSN? Wydaje się, iż SSN jako narzędzia identyfikacji obiektów i

rozpoznawania mają już pozycje ugruntowana. Podobnie ma się sprawa z wspomaganiem decyzji,

gdzie sieci neuronowe dobrze sprawdzają się w akcji szczególnie użyteczne są systemy hybrydowych

gdzie łączy się SSN z inną metodą poszukiwania rozwiązania np. zbiorami rozmytymi, algorytmami

genetycznymi czy ewolucyjnymi. Jeśli chodzi o obróbkę, analizowanie i rozpoznawanie obrazów to

można pokazać pewne analogie w działania nowoczesnych procesorów przeznaczonych do ww.

zadań i sieci neuronowych, podobnie jak w sieciach w uP inżynierowie stawiają na ilość równolegle

wykonywanych operacji przez rdzenie autonomicznie działające (np. NEC produkuje układy

zawierające 40 rdzeni, z tym, że nie są to procesory ogólnego przeznaczenia, ale wysoce

wyspecjalizowane jednostki obróbki obrazu).

Jednak jak każda dziedzina wiedzy tak i ta ma swoje ograniczenia. Podstawowym problemem

rozwoju sztucznych sieci neuronowych jest to, że nie wiem jak działa do końca żywa sieć, na której

wzorujemy ANN, oczywiście prowadzone są badania i tworzone nowe metody grupowania neuronów,

pobudzania ich wyliczania wag itp. Itd., lecz jest to po części takie naukowe zgadywanie, przy czym

jak dokładnie przełożyć model biologiczny nie wiem i jeszcze długo przy naszym stanie wiedzy i

techniki nie będziemy w stanie tego dokonać.

Jeśli chodzi o hardwarowe implementacje SSN, czyli o tematy poruszane w filmach takich jak

„Terminator” czy „Matrix”, to obecny stan techniki nie jest w stanie nawet zamarzyć o układzie

cyfrowym działającym podobnie do naszego mózgu. Jest kilka czynników uniemożliwiających

stworzenie inteligentnych procesorów: jako że mózg zawiera miliardy komórek nerwowych a liczba

tranzystorów w obecnie produkowanych procesorach liczona jest w milionach (tranzystorach nie

mówiąc o bramkach logicznych), to mamy tutaj różnice kilku wielkości, po drugie nawet jeśli udałoby

się upakować tyle bramek na krzemie układ taki byłby fizycznie wielki, a co za tym idzie realizacja jego

seryjna (czy jakakolwiek inna) nie byłaby możliwa wystąpienie zanieczyszczenia w krzemie na którym

produkowane są uP jest proporcjonalne do wielkości powierzchni (im większa tym wystąpienie

zanieczyszczenia większe), po trzecie wiem że powinno być dużo elektronicznych neuronów, ale do

końca też nie wiadomo jak to powinno wyglądać.

Page 12: „Sieci neuronowe” - Marek Piaseckimarek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/isa/2007/... · 2007. 6. 7. · „Sieci neuronowe” praca zaliczeniowa z przedmiotu „Informatyka

10 Literatura

1. “Decision-Support Systems designed for Critical Care”, M. Frize, H.C.E. Trigg, F.G. Solven,

M. Stevenson. B.G. Nickerson, University of New Brunswick, Fredericton, N.B. , Canada E3B 5A3

2. Artificial Neural Networks in Medicine World Map, http://www.phil.gu.se/ann/annworld.html

3. “Zastosowanie sieci neuronowych w systemach hybrydowych”, Monika Joanna Pabich,

http://aragorn.pb.bialystok.pl/~radev/ai/se/zal04/selic/pabich.htm,

4. “Comparison of artificial neural network and logistic regression models for prediction of mortality in

head trauma based on initial clinical data”, Behzad Eftekhar, Kazem Mohammad,

Hassan Eftekhar Ardebili , Mohammad Ghodsi, Ebrahim Ketabchi

5. “Design of an Artificial Neural Network for Diagnosis of Facial Pain Syndromes”, Kim J. Burchiel ,

Farhad M. Limonadi, Shirley McCartney, Department of Neurological Surgery, Oregon Health &

Science University, Portland, Oreg. , USA

6. “Sztuczne sieci neuronowe”, Joanna Szumowska, http://www.neuron.kylos.pl/pliki/start.html