Struktura sieci neuropodobnych

Zasada maksymalnej prostoty (w miejsce biologicznej wierności) przyświeca twórcom sztucznych sieci neuropodobnych także w czasie wyboru ich struktury. Neuroanatomia i histologia tkanki nerwowej dostarczają obecnie dosyć dużo szczegółowych danych na temat tego, jak komórki w mózgu są ze sobą połączone, jak wymieniają informacje, jak się wzajemnie pobudzają itp. Wszystko to pozwala na uzyskanie sieci neuronowej, której budowa byłaby wierną kopią struktury jakiegoś fragmentu kory mózgowej lub struktur rdzenia kręgowego. Jednak przy budowie sztucznych sieci neuropodobnych rzadko czerpie się z tych przesłanek, ustalając strukturę połączeń sieci raczej na podstawie arbitralnych założeń — znowu tak dobranych, by była to struktura maksymalnie uproszczona, a przez to tania w realizacji. Dlatego przyjmuje się, że sztuczna sieć składać się będzie z neuronów ułożonych warstwami.

Rysunek 3. Typowa struktura sieci neuropodobnej

(aby obejrzeć powiększony rysunek, kliknij w miniaturkę)

Wyróżnia się przy tym warstwę wejściową (do której doprowadzone są sygnały stanowiące dane dla rozwiązywanego zadania), warstwę wyjściową (na której oczekiwać będziemy rozwiązania podanego przez sieć) oraz kilka (zwykle od zera do trzech) warstw pośrednich, tzw. ukrytych. Taka struktura pozwala na dosyć łatwą realizację sieci, nawet w przypadku, kiedy zawiera ona dużą liczbę elementów, i to zarówno wtedy, kiedy sieć jest realizowana w formie programu symulacyjnego, jak i wtedy, gdy wykorzystujemy do jej realizacji specjalizowane układy (elektroniczne lub optoelektroniczne). Neurony sieci muszą się ze sobą komunikować, bo taka jest właśnie istota działania sieci. Oznacza to, że powinny one być ze sobą połączone, zaś logika nakazuje, by struktura tych połączeń odpowiadała wymaganiom wynikającym z natury rozwiązywanego zadania. Problem polega na tym, że sieci neuropodobnych używa się najczęściej do rozwiązywania takich zadań, dla których metoda rozwiązania nie jest znana (wątek ten będzie dalej rozwinięty). Oznacza to również brak praktycznych możliwości ustalenia, które elementy sieci powinny być ze sobą połączone, a które nie. Aby nie pominąć żadnego potencjalnie potrzebnego połączenia, zwykle stosuje się w sieciach neuropodobnych technikę organizacji połączeń typu "każdy z każdym". Takie kompletne łączenie obejmuje przeważnie tylko elementy dwóch sąsiednich warstw, ale i tak liczba pierwotnie zadawanych w sieci połączeń jest bardzo duża. Na szczęście w trakcie procesu uczenia zbyteczne połączenia (nie wnoszące żadnych pożytecznych informacji) są ignorowane, w wyniku czego po zakończonym procesie uczenia można je usunąć z "wytrenowanej" sieci (istnieją dla realizacji tego zadania znane i wypróbowane techniki — tzw. pruningu). Nie zmienia to faktu, że na początku procesu uczenia trzeba brać pod uwagę wszystkie możliwe połączenia, połączenia elementów sieci co powoduje, że dla stworzenia modelu sieci zawierającej neuronów trzeba mieć do dyspozycji miejsc w pamięci w celu reprezentacji wiedzy, którą sieć w procesie uczenia będzie gromadziła w swoich wagach synaptycznych związanych z występującymi w niej połączeniami. Jest to jedna z ważniejszych barier utrudniających tworzenie i eksploatację sieci o dużych rozmiarach. Koszt (w tym przypadku pamięciowy), wiążący się z wygodą korzystania z sieci bez konieczności podawania jawnie sugestii dotyczących sposobu rozwiązywania rozważanego zadania, jest czymś dosyć typowym. W dalszym tekście tego artykułu spotkamy się jeszcze kilka razy z tym, że budując sieć możemy nie myśleć o szczegółach jej budowy i działania, ale zawsze odbywa się to jakimś kosztem — najczęściej kosztem czasu obliczeń (związanego głównie z uczeniem sieci, ale do pewnego stopnia również z szybkością jej eksploatacji). Kolejnym ważny założeniem upraszczającym, bardzo często przyjmowanym przy budowie sieci, jest założenie o jednokierunkowym charakterze przepływu informacji przez sieć. Zdecydowana większość praktycznie używanych sieci charakteryzuje się tym, że informacje są w nich przesyłane ściśle jednokierunkowo — od wejścia do wyjścia. Struktury sieci zawierających sprzężenia zwrotne należą do rzadkości, chociaż niektóre z nich (np. sieci Hopfielda) zyskały pewną popularność. Dlaczego tak się dzieje? Otóż jeśli w sieci nie występują sprzężenia zwrotne, to po podaniu kompletu danych na wejścia sieci (co można traktować jak postawienie modelowi neuropodobnemu pewnego pytania) następuje w niej taki przepływ sygnałów, że po krótkim czasie zostają ustalone wartości odpowiedzi na wszystkich wyjściach sieci — czyli system podaje potrzebne rozwiązanie. Jeśli natomiast w sieci występują sprzężenia zwrotne, to część odpowiedzi trafia z powrotem na wejścia sieci i zmienia warunki uzyskiwania rozwiązania i musi zostać obliczone kolejne rozwiązanie, które poprzez sprzężenie zwrotne znowu trafi na wejście sieci itd. Jak z tego wynika, w sieciach ze sprzężeniami zwrotnymi zamiast jednorazowego aktu znalezienia rozwiązania (charakterystycznego dla sieci jednokierunkowych) mamy do czynienia z rekurencyjnym procesem poszukiwania rozwiązania. Proces ten czasem może być zbieżny: po pewnym czasie (czasem dosyć długim) sieć ostatecznie ustabilizuje wszystkie sygnały, a więc definitywnie ustali i poda na swoich wyjściach potrzebne rozwiązanie. Często jednak zdarza się, że w sieci ze sprzężeniami impulsy krążą bez końca, warunki bez przerwy się zmieniają, a na wyjściu zamiast potrzebnego rozwiązania otrzymujemy jakąś dziwną sekwencję sygnałów — czasem periodyczną, a czasem chaotyczną. Zwykle takie "rozwiązanie" jest po prostu nieprzydatne.

Copyright © 1997-2024 Wydawnictwo Naukowe PWN SA
infolinia: 0 801 33 33 88