Wstęp
Biologiczne inspiracje neurokomputingu
Podstawowy model neuronu i sieci neuronowej
Działanie sieci neuronowej i jej uczenie
Intuicyjne przedstawienie sposobu działania i procesu uczenia perceptronu wielowarstwowego
Popularność sieci neuronowych
Jest truizmem stwierdzenie, że w ostatnich latach bardzo gwałtownie wzrosło zainteresowanie sieciami neuronowymi. Nie jest to wynik zbiegu okoliczności czy efekt chwilowej mody. Sieci neuronowe po prostu okazały się wygodnym narzędziem, przydatnym przy realizacji bardzo wielu różnych praktycznych zadań. W istocie są one z powodzeniem stosowane w niezwykle szerokim zakresie problemów, w tak różniących się od siebie dziedzinach jak finanse, medycyna, zastosowania inżynierskie, geologia czy fizyka. W rzeczywistości zastosowań tych może być znacznie więcej, ponieważ sieci neuronowe mogą być zastosowane wszędzie tam, gdzie pojawiają się problemy związane z przetwarzaniem i analizą danych, z ich predykcją, klasyfikacją czy sterowaniem.
Efektywność sieci neuronowych jako nieliniowych modeli zjawisk i procesów
Sieci neuronowe są bardzo wyrafinowaną techniką modelowania, zdolną do odwzorowywania nadzwyczaj złożonych funkcji. W szczególności sieci neuronowe mają charakter nieliniowy, co istotnie wzbogaca możliwości ich zastosowań.
Rozwiniemy nieco ten temat, żeby wskazać na wagę formułowanych tu wniosków.
Przez wiele lat techniką powszechnie stosowaną matematycznego opisywania różnych obiektów i procesów było modelowanie liniowe. Takie postępowanie jest z powodzeniem stosowane także obecnie, przynosząc korzystne rezultaty, głównie z uwagi na dobrze znaną strategię optymalizacji stosowaną przy konstrukcji modeli tego typu. Jednak wszędzie tam, gdzie nie ma podstaw do aproksymacji liniowej występujących zjawisk i procesów (a przypadki takie są w praktyce dość częste), modele liniowe nie sprawdzały się, prowadząc niekiedy do formułowania niesłusznych opinii o całkowitym braku możliwości matematycznego opisywania takich czy innych systemów. W takich przypadkach, przy rozwiązywaniu tych trudnych i kłopotliwych zagadnień odwołanie się do modeli tworzonych z wykorzystaniem sieci neuronowych (a więc modeli, które bez trudu mogą odwzorować zależności nieliniowe) może być najszybszym i najwygodniejszym rozwiązaniem problemu.
Zalety sieci neuronowych nie ograniczają się jedynie do tego, że umożliwiają one swobodne i łatwe (bez konieczności samodzielnego formułowania przez użytkownika skomplikowanych hipotez) tworzenie modeli nieliniowych. Sieci umożliwiają także kontrolę nad złożonym problemem wielowymiarowości, który przy stosowaniu innych metod znacząco utrudnia próby modelowana funkcji nieliniowych z dużą liczbą zmiennych niezależnych (tzw. funkcji wektorowych).
Z wymienionych wyżej atutów na plan pierwszy wybija się zwłaszcza łatwość użycia. Sieci neuronowe w praktyce same konstruują potrzebne użytkownikowi modele, ponieważ automatycznie uczą się na podanych przez niego przykładach. Odbywa się to w taki sposób, że użytkownik sieci gromadzi reprezentatywne dane, pokazujące, jak manifestuje się interesująca go zależność, a następnie uruchamia algorytm uczenia, który ma na celu automatyczne wytworzenie w pamięci sieci potrzebnej struktury danych. Opierając się na tej samodzielnie stworzonej strukturze danych (w postaci tzw. współczynników wagowych) sieć realizuje potem wszystkie funkcje związane z eksploatacją utworzonego modelu.
Chociaż zatem użytkownik potrzebuje pewnej, w głównej mierze empirycznej wiedzy dotyczącej sposobu wyboru i przygotowania danych stanowiących przykłady, a także musi dokonać wyboru właściwego rodzaju sieci neuronowej oraz zadać sobie trud interpretacji rezultatów, to jednak poziom wymaganej od niego wiedzy teoretycznej, niezbędnej do skutecznego zbudowania modelu, jest przy stosowaniu sieci neuronowych znacznie niższy niż w przypadku stosowania tradycyjnych metod statystycznych.
Pociągająca jest również taka własność sieci neuronowych, że stanowią one (w jakimś zakresie) naśladownictwo działania ludzkiego umysłu.
Z całą pewnością można dzisiaj stwierdzić, że jest to metoda dobrze sprawdzona: sieci na setkach przykładów potwierdziły swoją przydatność i użyteczność. Sprawdzano i stosowano je w tak różniących się od siebie dziedzinach, jak rozmaite zastosowania inżynierskie, finansowe, medyczne, geologiczne czy fizyczne. W rzeczywistości dziedzin, w których sieci potwierdziły swoją użyteczność jest znacznie więcej; jestem skłonny nawet sformułować tezę, że bardzo trudno było by obecnie wskazać przynajmniej jedną dziedzinę wiedzy, w której sieci jeszcze nie zastosowano.
Mam w tym zakresie osobiste doświadczenia. Wielokrotnie mówiłem i pisałem o sieciach neuronowych na prośbę specjalistów z różnych konkretnych dyscyplin nauki i dziedzin dociekań praktycznych - i zawsze bez trudu znajdowałem liczne prace pokazujące zastosowania sieci w tym właśnie "zamówionym" obszarze. Na przykład gdy poproszono mnie o wygłoszenie referatu na konferencji związanej z technologią żywności - dokonałem szybkiego przeglądu literatury stojącej w mojej szafie i stwierdziłem nie bez zdziwienia, że nawet w mojej własnej biblioteczce są dziesiątki publikacji opisujących stosowanie sieci neuronowych do takich egzotycznych (dla mnie) dziedzin, jak sterowania procesem mieszania ciasta i wypieku pieczywa, ocena jakości mięsa i wykrywanie stopnia zaawansowania procesu fermentacji. Wspominam o tym drobnym konkretnym wydarzeniu, ponieważ zaskoczyło mnie to równie mocno, jak zlecenie z Akademii Teologii Katolickiej, które otrzymałem na ocenę wykonanej tam pracy habilitacyjnej związanej także z tematem sieci neuronowych (i innych symulacyjnych modeli systemów biologicznych).
Podsumowując ten wątek można zatem stwierdzić, że eksplorowanych obecnie zakresów i obszarów zastosowań sieci neuronowych jest tak ogromnie dużo, że niepodobna ich wszystkich tu wymieniać.
Uboczne aspekty popularności sieci neuronowych
Co powoduje, że to nowe i raczej egzotyczne (bo oparte głównie na biologicznej inspiracji) narzędzie obliczeniowe tak się w technice zakorzeniło? Jak już wyżej stwierdzono, przyczyną jest jego dobrze sprawdzona użyteczność. Po prostu dokonując tysięcy eksperymentów, prób i badań upewniono się, że sieci neuronowe bywają bardzo użyteczne.
Chciałbym jednak od razu przestrzec, że nie należy wyciągać zbyt pochopnych wniosków z tych licznych artykułów i wystąpień konferencyjnych, które mówią o tym, jak wspaniałe sukcesy odniósł badacz X w stosowaniu sieci do zagadnienia Y. Chociaż takich publikacji jest rzeczywiście bardzo dużo i chociaż nie ma żadnego powodu wątpić w prawdziwość zawartych w nich doniesień o sukcesach - to jednak wyciąganie z tych informacji wniosku, że sieci neuronowe nadają się zawsze i do wszystkiego byłoby daleko idącym uproszczeniem. Chciałbym bowiem zwrócić uwagę, że w dziedzinie tak interesującej i tak modnej dokonuje się na całym świecie tysięcy badań i milionów różnych prób. Każdy, kto w wyniku tych prób uzyska sukces - pisze artykuł lub prezentuje pracę na kongresie zwiększając grono tych szczęśliwców, którym się powiodło. Wiem jednak z setek moich własnych (i moich asystentów, doktorantów, magistrantów itp.) bezowocnych wysiłków i nieudanych prób, że w sieciach neuronowych, jak w każdej technice eksperymentalnej, jest znacznie więcej niepowodzeń i rozczarowań, niż osiągnięć i sukcesów. Tyle tylko, że każdy kto osiągnie sukces - pisze o tym obszernie i dokładnie, zaś ten, komu się nie udało siedzi cicho i nadal szuka szczęścia. Stąd imponująca statystyka doniesień o wspaniałych sukcesów badaczy sieci neuronowych absolutnie nie stanowi gwarancji sukcesu dla każdego, kto podąży ich drogą. Przepraszam za ten nieco minorowy ton, ale a mam świeżo w pamięci zmartwione miny moich doktorantów, którzy zbyt łatwo uwierzyli, że wystarczy wybrać "nośny" temat, a praca sama się zrobi.
Mimo sformułowanego wyżej zastrzeżenia można śmiało stwierdzić, że sieci neuronowe mogą być zastosowane z dużym prawdopodobieństwem sukcesu wszędzie tam, gdzie pojawiają się problemy związane z tworzeniem modeli matematycznych pozwalających automatycznie (w wyniku tzw. procesu uczenia) odwzorować w komputerze różne złożone zależności pomiędzy pewnymi sygnałami wejściowymi a wybranymi sygnałami wyjściowymi.
Zapotrzebowanie na tego typu usługi obliczeniowe jest - wbrew pozorom - bardzo szerokie. Dobrze zbudowany model matematyczny określonego zjawiska czy procesu pozwala sprawnie rozwiązywać liczne praktyczne zagadnienia związane z predykcją, klasyfikacją czy sterowaniem. Dlatego jeśli tylko można poszukujemy modeli różnych systemów, gdyż są one wysoce użyteczne. Niestety samodzielna budowa modelu zakłada, że trzeba znać strukturę systemu, prawa rządzące procesem lub zależności przyczynowe decydujące o przebiegu określonego zjawiska. Dla wielu procesów i systemów taką wiedzę posiadamy i dla nich zbudowano już bardzo dobre modele matematyczne, z których chętnie na co dzień korzystamy, nie zastanawiając się nawet często nad tym, że to właśnie dobrze zdefiniowany model matematyczny pozwala zaprojektować most, dobrać silnik czy ustalić cenę towaru.
Jednak obok tych licznych procesów i zjawisk, dla których modele dobrze znamy, występują także liczne procesy i zjawiska, których struktura lub prawa działania nie zostały jeszcze poznane i opisane w stopniu wystarczającym do tego, żeby zbudować ich efektywne modele. Co więcej, dla niektórych spośród tych zjawisk sam problem przyczynowości bywa otwarty, gdyż często nie jesteśmy pewni, jakie czynniki naprawdę wpływają na rozważane procesy, determinując ich przebieg i wyniki. Ogromną zaletą sieci neuronowych jest fakt, że pozwalają one poszukiwać modeli dla takich właśnie słabo znanych zjawisk i procesów, przy czym użytkownik sieci nie musi deklarować żadnej z góry zadanej formy poszukiwanego modelu, a nawet nie musi być pewny, że w ogóle jakaś dająca się matematycznie modelować zależność ma miejsce!
Moda czy metoda?
Z przytoczonych wyżej danych wynika, że w pełni uprawnione jest mówienie o sieciach neuronowych w kategoriach bardzo interesującej i nowoczesnej metody rozwiązywania problemów, metody o bardzo szerokich i do tej pory nie w pełni wyeksploatowanych możliwościach. Czy zatem patrzenie na to narzędzie z pobłażliwością wynikającą ze świadomości, że mamy oto do czynienia z pewną modą (być może nietrwałą i przemijającą) jest całkiem nie usprawiedliwione?
Również nie!
Technika sieci neuronowych nie jest już dziś szczególną nowością. A jednak od 1986 roku, kiedy to ogłoszenie przez Dawida Rumelharta koncepcji uczenia sieci metodą backpropagation spowodowało gwałtowny przypływ zainteresowania tą techniką, rokrocznie notuje się kilkudziesięcioprocentowy wzrost liczby doniesień dotyczących naukowych i praktycznych aspektów wykorzystania sieci neuronowych. Szacuje się (na podstawie danych IEEE z października 1998 roku), że obecnie na świecie średnio co pięć sekund pojawia się nowa publikacja lub nowe doniesienie konferencyjne dotyczące sieci neuronowych, zaś z analizy rynku księgarskiego wynika (dane wydawnictwa Springer z lipca 1999), że na temat sieci neuronowych wydano na świecie ponad 7 tysięcy tytułów różnych podręczników i książek, przy czym niektóre z nich rozeszły się w nakładach kilkunastu lub kilkudziesięciu tysięcy egzemplarzy.
Ta lawina papieru poświęconego bezpośrednio lub pośrednio technice sieci neuronowych ma także swój odpowiednik w postaci licznych dokumentów opracowanych i dystrybuowanych na ten temat wyłącznie w postaci elektronicznej: stronic WWW, specjalistycznych serwerów, list dyskusyjnych i internetowych publikacji. Liczba w ten sposób udostępnianych informacji o sieciach neuronowych jest porównywalna z liczbą publikacji "papierowych", chociaż mówiąc o elektronicznej formie prezentacji i dystrybucji informacji trzeba zawsze z dużą rezerwą podchodzić do wszelkich ocen ilościowych, ponieważ nie wszystkie internetowo udostępniane źródła informacji zawierają rzetelną i dokładną wiedzę. Łatwość publikowania w Internecie (aby stworzyć stronicę WWW wystarczy mieć komputer dołączony do sieci i dowolne narzędzie tworzenia dokumentów HTML) połączona z brakiem jakichkolwiek formalnych narzędzi kontroli jakości i poprawności publikacji (brak recenzji prezentowanych elektronicznie materiałów), prowadzi coraz częściej do tego, że obecnie znaczna część publikowanych w Internecie wiadomości jest niedokładna, niekompletna, a w skrajnym przypadku nawet zupełnie nieprawdziwa.
Stąd przy ocenach znaczenia i roli jakiejkolwiek dziedziny nauki bierze się pod uwagę głównie publikacje drukowane w sposób tradycyjny, co w przypadku wielu awangardowych dziedzin, zwłaszcza tych związanych z informatyką, prowadzi do ocen silnie zaniżonych w stosunku do rzeczywistej miary zainteresowania i "rezonansu intelektualnego" określonej tematyki, ale jest oparte na pracach, których wartość i użyteczność nie podlegają dyskusji. W przypadku sieci neuronowych, jak już wspomniano wcześniej, ocena ta wskazuje na bardzo duże i stale rosnące zainteresowanie, zdecydowanie mające wszelkie cechy mody. Nie należy jednak z tego wyciągać zbyt daleko idących, zwłaszcza negatywnych wniosków: dobra moda może być takim samym czynnikiem postępu, jak wiele innych wartościowych źródeł inspiracji!
| Powrót do spisu treści |
Biologiczne inspiracje neurokomputingu
Mózg człowieka jako prototyp sieci neuronowych
Jak wspomniano wyżej, sieci neuronowe powstały w wyniku badań prowadzonych w dziedzinie sztucznej inteligencji; szczególne znaczenia miały tutaj te prace, które dotyczyły budowy modeli podstawowych struktur występujących w mózgu.
Prace te miały na celu naśladowanie zwłaszcza tych cech charakterystycznych dla biologicznych systemów nerwowych, które mogą być szczególnie użyteczne technicznie. Do cech tych w pierwszym rzędzie zalicza się odporność systemów biologicznych na uszkodzenia nawet znacznej części ich elementów oraz ich nadzwyczajną zdolność do uczenia się.
Główne badania przeprowadzone na polu tak zwanej symbolicznej sztucznej inteligencji w latach 1960 - 1980 doprowadziły do powstania systemów ekspertowych. Systemy te oparte są na ogólnym modelu procesu sformalizowanego wnioskowania (w szczególności na koncepcji głoszącej, że procesy wnioskowania u człowieka oparte są na manipulowaniu symbolami). Bardzo szybko stało się oczywiste, że systemy te, chociaż bardzo użyteczne w pewnych dziedzinach, nie są w stanie wyjaśnić kluczowych aspektów inteligencji ludzkiej. Zgodnie z jednym z kierunków rozważań, powodem niepowodzenia systemów tego typu była ich niezdolność do naśladowania elementarnych struktur występujących w mózgu. Zrodziło to przekonanie, iż podejmując prace mające na celu skonstruowanie systemu, który można by było określić mianem w pełni inteligentny należy wzorować się na strukturze obdarzonych inteligencją systemów rzeczywistych, czyli na strukturze mózgu.
Modele neuronów
Każdy z neuronów jest specjalizowaną komórką biologiczną mogącą przenosić i przetwarzać złożone sygnały elektrochemiczne. Neuron na ogół posiada rozgałęzioną strukturę wielu wejść informacyjnych (dendryty), scalające sygnały ze wszystkich tych wejść ciało (perikarion) oraz opuszczający komórkę jako pojedyncze włókno nośnik informacji wyjściowej (akson), powielający potem przewodzony przez siebie wynik pracy neuronu i rozsyłający go do różnych neuronów odbiorczych poprzez rozgałęzioną strukturę wyjściową (telodendron).
Rys. 6. Budowane sztuczne sieci obejmują z reguły niewiele neuronów
Pobudzony przez synapsy neuron przechodzi do stanu aktywnego, co objawia się tym, że wysyła on poprzez swój akson wyjściowy sygnał elektrochemiczny o charakterystycznym kształcie, amplitudzie i czasie trwania. Ogólna forma sygnału pobudzonego neuronu jest identyczna dla wszystkich żywych organizmów, chociaż jego czas trwania jest różny dla różnych organizmów. Najkrótszy jest on u ssaków i dlatego mówi się często, że pobudzony neuron ssaka (w szczególności człowieka) wysyła impuls czynnościowy (iglicę, spike). Przejście od stanu bezczynności do stanu generacji impulsów zachodzi w typowych neuronach bardzo gwałtownie, dlatego mówi się często o "zapłonie" neuronu, który zaczyna generować na swoim wyjściu odpowiedni sygnał. Sygnał ten za pośrednictwem kolejnych synaps dociera do innych neuronów, które pod jego wpływem mogą również zostać postawione w stan zapłonu.
Neuron przechodzi w stan zapłonu tylko wówczas, gdy łączny sygnał, który dotarł do ciała komórki poprzez dendryty przekroczy pewien poziom progowy (poziom zapłonu). Siła otrzymanego przez neuron sygnału (i związana z tym szansa na zapłon) zależy w największym stopniu od efektywności (współczynnika wagi) synapsy do której dociera impuls. Ponieważ waga ta ma zasadnicze znaczenie z punktu widzenia objaśnienia działania sieci neuronowych - zarówno tych naturalnych (biologicznych) jak i ze względu na funkcjonowanie sztucznych sieci, przyjrzymy się odrobinkę dokładniej temu, co się dzieje w synapsach.
Synapsy - nośnik biologicznej pamięci
W każdej synapsie występuje szczelina wypełniona specjalną substancją, tak zwanym neurotransmiterem albo neuromediatorem.
Uczenie i samouczenie w neuronach i w sieciach neuronowych
Jeden z najbardziej znaczących badaczy systemów neurologicznych (Donald Hebb) głosił pogląd, że na proces uczenia składają się głównie zmiany "siły" połączeń synaptycznych. Na przykład, w klasycznym eksperymencie Pawłowa, dotyczącym odruchów warunkowych, w którym dźwięk dzwonka rozlega się przed podaniem psu obiadu, pies bardzo szybko uczy się łączyć dźwięk dzwonka z jedzeniem żywności (czemu towarzyszy wydzielanie śliny). Odbywa się to w ten sposób, że połączenia synaptyczne pomiędzy właściwą częścią kory słuchowej a gruczołami ślinowymi są wzmacniane w kolejnych doświadczeniach, w których dźwięk dzwonka towarzyszy karmieniu, co w końcu powoduje, że kiedy kora słuchowa jest stymulowana przez dźwięk dzwonka, pies zaczyna się ślinić.
Obecnie sądzi się, że korzystając z bardzo dużej liczby takich prostych mechanizmów uczenia oraz używając licznych, ale wyjątkowo prostych elementów przetwarzających informacje, jakimi są neurony, mózg jest zdolny do realizacji wszystkich tych wyjątkowo złożonych zadań jakie na codzień wykonuje. Oczywiście w rzeczywistym biologicznym mózgu występuje wiele bardziej złożonych mechanizmów przetwarzania informacji, angażujących wiele dodatkowych elementów (na przykład tak zwane komórki glejowe). W związku z tym neurofizjolgia opisuje wiele dalszych mechanizmów o bardziej złożonym charakterze - kwestie te jednak w tym miejscu nie będą omawiane.
Jest jednak rzeczą bardzo interesującą, a nawet intrygującą, że sztuczne sieci neuronowe mogą osiągać tak bardzo znaczące rezultaty praktyczne, korzystając z tak niesłychanie uproszczonego modelu neuronu, którego złożoność nie jest wiele większa od schematu polegającego na tym, że neuron jedynie wyznacza ważoną sumę swoich wejść i przechodzi do stanu zapłonu wtedy, gdy łączny sygnał wejściowy przekroczą pewien ustalony poziom progowy. Działanie tego uproszczonego modelu zostanie nieco dokładniej omówione niżej.
| Powrót do spisu treści |
Podstawowy model neuronu i sieci neuronowej
Założenie przyjmowane przy budowie neuronu i jego struktura
Chcąc odwzorować jedynie podstawową istotę biologicznych systemów nerwowych twórcy sztucznych sieci neuronowych zdecydowali, że sztuczny neuron zostanie zdefiniowany następująco:
Uproszczenia w modelu neuronu i ich konsekwencje
Przy tworzeniu matematycznego modelu neuronu stosuje się z reguły kilka zabiegów upraszczających, które pomagają w uzyskaniu wygodnej do eksploatacji formy sztucznego neuronu. Na przykład odjęcie wartości progowej od sumy ważonych wejść jest zabiegiem unifikującym postać funkcji przejścia. W wyniku tego zabiegu generowanie sygnału wyjściowego neuronu zachodzi zawsze w zależności od tego, czy wynik odejmowanie jest większy czy mniejszy od zera, a nie w zależności od jakiejś zmiennej (podlegającej także procesom uczenia) wartości progowej Q. Opisane postępowanie jest w końcowym rezultacie równoznaczne z porównaniem sumy ważonych wejść neuronu z wartością progową, co sugerują jako naturalny mechanizm wyniki badań neurofizjologicznych, jednak jest wygodniejsze do realizacji obliczeniowej.
W rzeczywistości mimo silnej "biologicznej legitymacji", progowa funkcja aktywacji jest rzadko stosowana w sztucznych sieciach neuronowych. Przyczyna jest prosta: sieci z taką funkcją aktywacji sprawiają kłopoty podczas uczenia (zostanie to wkrótce dokładniej omówione). Dlatego w sztucznych sieciach neuronowych chętnie sięgamy do funkcji aktywacji dostarczających sygnałów o wartościach zmieniających się w sposób ciągły. Najczęściej wykorzystuje się funkcję aktywacji w postaci tzw. sigmoidy.
Rozważając biologiczne uwarunkowania technicznego modelu neuronu należy również zauważyć, że w modelu wagi mogą być zarówno wartościami dodatnimi jak i wartościami ujemnymi, co więcej ta sama synapsa może zmienić w trakcie uczenia znak swojej wagi. Oznacza to, że w modelu pewien sygnał wejściowy może w trakcie uczenia zamienić swój wpływ na zachowanie neuronu - przy dodatniej wartości wagi ten sygnał może pobudzać neuron do zapłonu, podczas gdy po zamianie znaku wagi ten sam sygnał będzie oddziaływał raczej hamująco niż pobudzająco na rozważany neuron. Tymczasem w biologicznym mózgu drogi pobudzania i drogi hamowania są rozdzielone i wyróżnia się nawet specjalne oddzielne neurony hamujące, które występują dość obficie w mózgu jako elementy jego naturalnej sieci. W sztucznych sieciach neuronowych upraszcza się tę strukturę i wprowadza się synapsy "znakozmienne" poświęcając - nie po raz pierwszy i nie po raz ostatni - wierność biologii na rzecz praktycznego działania.
Struktura sieci
Powyższe uwagi dotyczyły pojedynczego neuronu. Następny problem dotyczy sposobu łączenia ze sobą neuronów. Jeżeli sieć ma mieć wartość użytkową, to musi posiadać wejścia (służące do wprowadzania wartości zmiennych obserwowanych na zewnątrz) oraz wyjścia (które wyznaczają wynik obliczeń - na przykład prognozowaną wartość akcji lub sygnał sterujący dla robota).
Ponieważ w tych pośredniczących neuronach zewnętrzny obserwator nie ma dostępu ani do ich wejść, ani do wyjść - neurony takie zwykło się opisywać jako tak zwane neurony ukryte, co brzmi nieco tajemniczo i budzi wątpliwości w rodzaju "co jest ukryte w neuronach ukrytych?" (jest to wolny przekład tytułu jednej z bardziej popularnych prac na temat sieci neuronowych). Jednak prawda jest znacznie mniej tajemnicza i znacznie prostsza, niż można by było sądzić: neurony ukryte (czy też całe warstwy ukryte) to po prostu te elementy sieci, których nie daje się bezpośrednio obserwować ani od strony wejścia, ani od strony wyjścia. Tyle i tylko tyle.
Neurony wejściowe, ukryte i wyjściowe muszą zostać wzajemnie połączone, co stawia przed twórca sieci problem wyboru jej struktury. Kluczową kwestią przy wyborze struktury sieci jest występowanie lub brak w tej strukturze sprzężenia zwrotnego. Proste sieci mają strukturę jednokierunkową (tzw. feedforward): sygnał przepływa w nich tylko w jednym kierunku - od wejść, poprzez kolejne neurony ukryte, osiągając ostatecznie neurony wyjściowe. Strukturę taką charakteryzuje zawsze stabilne zachowanie, co jest jej zaletą. Jednak jeśli sieć ma wbudowane sprzężenie zwrotne (tzn. zawiera połączenia powrotne od późniejszych do wcześniejszych neuronów), to wówczas może wykonywać bardziej skomplikowane obliczenia, w szczególności takie, które mają charakter rekurencyjny. Są też badania, z których wynika, że sieć o mniejszej liczbie neuronów, która zawiera jednak sprzężenia zwrotne, może dzięki nim wykonywać równie złożone obliczenia, jak sieć bez tych sprzężeń, zawierająca znacznie większą liczbę neuronów.
Co ciekawe: dość dużą użytecznością praktyczną cechują się sieci mające wyjątkowo dużo sprzężeń zwrotnych, konkretnie - sieci w których wszystkie połączenia mają charakter sprzężeń zwrotnych. Sieci takie są znane jako tzw. sieci Hopfielda i znajdują liczne zastosowania - m.in. jako tzw. pamięci asocjacyjne.
| Powrót do spisu treści |
Działanie sieci neuronowej i jej uczenie
Działanie sieci neuronowej jest wypadkową działania poszczególnych neuronów oraz zachodzących pomiędzy nimi interakcji. Pojedynczy neuron w typowych przypadkach realizuje (z matematycznego punktu widzenia) operację iloczynu skalarnego wektora sygnałów wejściowych oraz wektora wag. W efekcie odpowiedź neuronu zależy od wzajemnych stosunków geometrycznych pomiędzy wektorami sygnałów i wektorami wag.
| Powrót do spisu treści |
Intuicyjne przedstawienie sposobu działania i procesu uczenia perceptronu wielowarstwowego
Wzięcie pod uwagę rodzajów funkcji nieliniowych (funkcji przejścia) występujących w sieci wielowarstwowej w modelach poszczególnych neuronów umożliwia przedstawienie - także w sposób intuicyjny i poglądowy pewnych kluczowych kwestii dotyczących sposobu działania i metod uczenia perceptronów wielowarstwowych. Należy przypomnieć, że poziom pobudzenia neuronów w perceptronach wielowarstwowych jest ważoną sumą wejść (plus wartość progowa dodawana jako tzw. bias). Taki sposób realizacji obliczeń powoduje, że poziom pobudzenia neuronu jest w rzeczywistości po prostu pewną liniową funkcją wartości wejściowych. Wyznaczona w ten sposób wartość łącznego pobudzenia przepuszczana jest przez funkcję sigmoidalną (S - kształtną) w celu wyznaczenia sygnału odpowiedzi neuronu.
Kombinacja wielowymiarowej funkcji liniowej i jednowymiarowej funkcji sigmoidalnej daje charakterystyczną odpowiedź sieci, typową dla neuronów wchodzących w skład pierwszej warstwy ukrytej perceptronu wielowarstwowego. Odpowiedź ta, tworząca tak zwane "urwisko sigmoidalne" sprzyja dychotomii liniowej wejściowego zbioru danych. Zmieniając wartości wag i parametrów progowych można modyfikować kształt odpowiedzi sieci. W szczególności może zostać zmieniona zarówno orientacja powierzchni, jej przesunięcie w stosunku do początku układu współrzędnych, jak również stromość zbocza. Kształtowanie funkcjonału opisującego zachowanie neuronów sieci odbywa się z reguły automatycznie, w trakcie procesu ucznia, jednak mimo to warto znać kilka ogólnych prawidłowości rządzących formowaniem tego funkcjonału, ponieważ ułatwia to takie świadome kształtowanie parametrów sieci, by z największym prawdopodobieństwem osiągać stawiane cele. Warto więc na przykład wiedzieć, że strome zbocza "urwiska" sigmoidalnego odpowiadają dużym wartościom wag. Oznacza to, że w wyniku proporcjonalnego (z takim samym mnożnikiem) zwiększenia wartości wszystkich wag uzyskuje się taka samą orientację tego "urwiska" - ale inne (stromsze) jego nachylenie.
Tak działa jeden neuron. Sieć wielowarstwowa działa (w uproszczeniu) w taki sposób, że łączy razem pewną liczbę takich powierzchni poprzez wielokrotne zastosowanie kombinacji liniowej sygnałów wyjściowych z kolejnych neuronów warstwy ukrytej i nieliniowej funkcji aktywacji w neuronach warstwy wyjściowej. Powstaje w ten sposób powierzchnia o dowolnie złożonym kształcie (stopień złożoności formy tej powierzchni zależy tylko od liczby zastosowanych warstw ukrytych i liczby neuronów w tych warstwach). Podczas uczenia sieci powierzchnia ta zmienia się w następujący sposób. W początkowej fazie uczenia sieci wagom oraz wartościom progowym nadaje się wartości będące niewielkimi liczbami losowymi. Powoduje to, że powierzchnia odpowiedzi neuronów ma kształt losowo zaburzonej, ale generalnie raczej płaskiej powierzchni, zawierającej jedynie bardzo niewielkie nachylenia. Powierzchnie tego typu z reguły nie są przydatne do rozwiązywania stawianych przed sieciami problemów, co zresztą doskonale odpowiada intuicyjnemu rozumieniu określenia "sieć nie nauczona". W trakcie trwania uczenia powierzchnie odpowiedzi dla poszczególnych neuronów ulegają obróceniu i przesunięciu w sposób, zapewniający docelowo przyjęcie przez nie prawidłowej pozycji, wynikającej z pożądanej (oczekiwanej) funkcji decyzyjnej. Towarzyszy temu wzrost wartości wag prowadzący do tego, że powierzchnie te stają się znacznie bardziej wydatne, chociaż ich kształt pozostaje charakterystycznie tarasowaty. Jednak w miarę uczenia jedne obszary płaskie (plateau) podnoszone są coraz wyżej, a inne plasują się zdecydowanie coraz niżej. Równocześnie zbocza pomiędzy nimi stają się coraz stromsze i mają coraz bardziej wyrazisty przebieg, który podlega zresztą licznym modyfikacjom (granice tarasów są oczywiście modyfikowane w trakcie uczenia, bo na tym właśnie owo uczenie polega). Takie silnie uformowane, wielowarstwowo piętrzące się tarasy są w stanie modelować poszczególne części zadanej powierzchni odpowiedzi, a ich odpowiednie złożenie stanowić może podstawę do tworzenia właściwej funkcji odpowiedzi sieci.
Spróbujmy teraz opisowo przedstawić, co to znaczy "odpowiednia" powierzchnia.
W problemach klasyfikacyjnych funkcja neuronu wyjściowego sprowadza się do generowania mocnego sygnału (który umownie można określić jako +1) w sytuacji, gdy wejściowy przypadek należy do danej klasy, oraz słabego sygnału (który umownie można określić jako 0 lub -1), gdy nie należy on do tej klasy. Inaczej mówiąc, podczas nauczania sieci umiejętności rozpoznawania dokonywana jest próba modelowego ujęcia funkcji, mającej wartość równą 1 dla tej części przestrzeni wzorców, która zawiera przypadki zaliczane do rozważanej klasy, i mającą wartość 0 dla pozostałej części. W pracach z zakresu rozpoznawania obrazów funkcja taka jest określana mianem funkcji dyskryminującej. "Idealna" funkcja dyskryminująca składa się wyłącznie z wysokich i niskich "tarasów" (obszarów plateau), połączonych pionowymi ścianami. Ściany łączące górne i dolne tarasy przebiegają w tych obszarach przestrzeni sygnałów wejściowych, w których podejmowana prze sieć decyzja powinna być zmieniona na przeciwną. Funkcja taka jest łatwa do analizy, ponieważ wszystkie położone na niej punkty znajdują się albo na wysokości równej zero albo jeden. Mimo, że jest to pewna idealizacja rzeczywistej sytuacji, w jakościowych rozważaniach dotyczących uczenia sieci i ich zachowania taka wyidealizowana funkcja doskonale spełnia swoje zadanie.
| Powrót do spisu treści | |
| Następny artykuł | |