Mamy coraz lepsze komputery, ale wciąż ich możliwości w wielu dziedzinach ustępują znacznie możliwościom, jakie ma ludzki mózg. Dlatego podejmujemy próby zbudowania technicznego modelu mózgu, gdyż liczymy, że taki model może mieć właściwości, których współczesne komputery nie posiadają. O najnowszych próbach modelowania mózgu napiszę innym razem, natomiast dzisiaj zapraszam do przeczytania opowiadania o tym, jak to się wszystko zaczęło...
Ryszard Tadeusiewicz. Biocybernetyk z AGH. Zajmuje się naukowym badaniem pogranicza biologii i techniki z pożytkiem dla obydwu.
Człowiekiem, który jako pierwszy zbudował elektroniczny działający model mózgu, był Frank Rosenblatt. Był on profesorem na Uniwersytecie Cornell w USA, z wykształcenia psychologiem, który prowadził - między innymi - badania nad procesami uczenia się u zwierząt.
Na podstawie swoich obserwacji stworzył koncepcję systemu, który złożony z uczących się sztucznych neuronów (technicznych odpowiedników biologicznych komórek nerwowych) mógłby wykazywać zdolność nabywania wiedzy podobną do tej, jaką posiadają ludzie i niektóre zwierzęta.
Proces uczenia się i poziom zdobytej wiedzy można demonstrować w różny sposób. Szczury badane przez psychologów musiały na przykład wykazywać swoje umiejętności poprzez trafne wybieranie drogi w labiryncie albo poprzez manipulowanie różnymi dźwigniami i przyciskami, które powodowały albo udostępnienie im przysmaku (jako nagrody gdy ich działanie było zgodne z zamierzeniami eksperymentatora), albo bolesny szok elektryczny (jako karę za popełniony błąd). Ale takie skomplikowane zachowania trudno jest odwzorować w modelu. Dlatego Rosenblatt założył, że tworzony przez niego system będzie uczył się rozpoznawania. Nazwał go Perceptronem, gdyż czynność pozyskiwania informacji z otoczenia oraz ich klasyfikowania, identyfikowania, rozpoznawania itp. nazywana jest w psychologii percepcją. Szkic koncepcji Perceptronu Rosenblatta przedstawia poniższy schemat. Wykorzystano na nim oryginalny rysunek Rosenblatta (z 1958 roku) z uzupełniającym opisem autora.
Koncepcja Perceptronu była oryginalna i bardzo atrakcyjna, ale pojawiło się pytanie, czy taka struktura naprawdę potrafi rozpoznawać, oraz - co ważniejsze - czy potrafi uczyć się rozpoznawania?
Rosenblatt chociaż nie był technikiem (tylko psychologiem) postanowił zbudować Perceptron żeby udowodnić, że to jest naprawdę możliwe. W ten sposób zapisał swoje nazwisko na trwale w historii techniki, chyba nawet bardziej trwale, niż w historii psychologii. Chociaż wcale nie miał na to ochoty i pierwsze wyniki badań wykonanych przy pomocy Perceptronu publikował w "Psychological Review", co pokazano na obrazku rozpoczynającym ten wpis. Nasuwa się tu analogia z dokonaniem Thora Heyerdahla, który nie będąc żeglarzem (tylko antropologiem) przepłynął na własnoręcznie zbudowanej tratwie ocean, żeby udowodnić, że wyspy Polinezji mogli zasiedlić Indianie z Ameryki Południowej. W antropologii jego koncepcja nie doczekała się uznania, natomiast został jednym z najsłynniejszych żeglarzy wszechczasów.
Wróćmy jednak do koncepcji Perceptronu stworzonej przez Rosenblatta.
Podlegający rozpoznawaniu obraz odbierany był przez receptor (naśladującą siatkówkę oka cyfrową kamerę) i w efekcie rozbijany był na setki punktów, których jasność była rejestrowana. Dziś taki sposób przedstawienia obrazu jest dla każdego oczywisty - tak działają przecież nowoczesne aparaty fotograficzne. Nie zapominajmy jednak, że był to rok 1958. Cyfrowe aparaty fotograficzne miały się pojawić dopiero za kilkadziesiąt lat. Rosenblatt musiał więc sam zbudować swoją cyfrową kamerę układając w odpowiednią matrycę setki fotokomórek.
To była jednak najłatwiejsza część pracy.
Prawdziwa przygoda zaczęła się, gdy Rosenblatt przystąpił do budowy najważniejszego elementu Perceptronu - sieci uczących się sztucznych neuronów. Wiadomo było, że biologiczna komórka nerwowa ma wiele wejść (przyjmuje liczne sygnały od innych komórek a także od narządów zmysłów) i jedno wyjście, za pomocą którego wysyła swój sygnał (będący wynikiem przetworzenia tych wszystkich zebranych z wielu wejść informacji) do połączonych z nią odbiorników.
Tymi odbiornikami mogą być inne neurony - i w ten sposób tworzą się przetwarzające informację sieci neuronowe. Odbiornikami są też - w żywym organizmie - mięśnie, dzięki którym wynik rozpoznawania jest manifestowany odpowiednim działaniem. Na przykład rozpoznanie zagrożenia skutkuje ucieczką.
Sztuczny Perceptron uciekać nie mógł, więc manifestował swoje działanie za pomocą sygnalizatorów (lampek). Rozpoznanie określonego obiektu skutkowało zapaleniem odpowiedniej lampki. W trakcie procesu uczenia (o którym będzie mowa dalej) badacz mógł wymusić określone powiązanie zapalanych lampek i rozpoznawanych obiektów.
Wejście i wyjście Perceptronu już znamy: Pozyskiwał on informacje z cyfrowej kamery i sygnalizował efekt swego działania za pomocą lampek. Najważniejsze jednak było to, co znajdowało się między wejściem a wyjściem. Zasługą Rosenblatta było to, że jako pierwszy na świecie zbudował on elektroniczne neurony i połączył je, tworząc system zdolny do samodzielnego uczenia się.
Sztuczne neurony zbudowane w technologii dostępnej w latach 60. ubiegłego wieku były bardzo duże. Na fotografii poniżej współpracujący z Rosenblattem elektronik trzyma jeden z tych neuronów i widać, jak wielka to była maszyna.
Na skutek tych rozmiarów i związanych z nimi kosztów Rosenblatt musiał bardzo ograniczyć liczbę neuronów wchodzących w skład Perceptronu. Było ich zaledwie 256. Warto przypomnieć, że mózg człowieka zawiera sto miliardów neuronów. Maszyna, która miałaby zawierać podobną liczbę sztucznych neuronów miałaby rozmiary ogromnego budynku.
Kilka słów o budowie pierwszych sztucznych neuronów, które wykorzystano w Perceptronie. Z badań biologicznych wiadomo było (także w latach 60. dwudziestego wieku), że prawdziwy biologiczny neuron dokonuje dwóch czynności: integruje sygnały ze swoich wielu wejść, żeby wypracować pojedynczy sygnał wyjściowy, oraz że sposób tej integracji podlega procesowi uczenia. Ten ostatni jest tu szczególnie ważny, więc poświęcimy mu trochę uwagi.
Działaniem sztucznego neuronu najłatwiej jest sterować, gdy powiąże się jego wejścia z tak zwanymi "wagami". Jeśli waga danego wejścia jest duża, to sygnał jaki do niego dociera ma silny wpływ na zachowanie neuronu. Jeśli waga jest mała - to wpływ jest także mały. Wyobraźmy sobie neuron, do którego docierają sygnały z dwóch zmysłów - węchu i wzroku. Neuron będzie zbierał te sygnały i na ich podstawie będzie określał, czy obiekt, którego cechy ocenia, podoba mu się - czy nie.
Wiedząc, że zmienne wagi są kluczem do procesu automatycznego uczenia Perceptronu Rosenblatt zaprojektował je w bardzo pomysłowy sposób: Otóż w strukturze sztucznego neuronu umieszczone były potencjometry. To są elementy za pomocą których zmienia się na przykład głośność w radio albo jasność w telewizorze. Obecnie są one sterowane elektronicznie (zwykle za pomocą pilota), ale w czasie konstruowania Perceptronu potencjometry pokręcało się ręcznie, gałką. Tymczasem Perceptron miał się uczyć sam, więc o żadnym kręceniu gałką przez człowieka nie mogło być mowy! Rosenblatt to także rozwiązał: w jego neuronach potencjometry obracane były przez specjalne silniczki elektryczne (do każdego potencjometru osobny silniczek), które zwiększały albo zmniejszały wagi odpowiednich wejść neuronu pod wpływem sygnału "nagrody" albo "kary".
Sygnały nagrody i kary wysyłał pokazujący obiekty do rozpoznawania i oceniający zachowanie Perceptronu nauczyciel. Za każdy sukces (prawidłowe rozpoznanie) - nagroda. Z każde niepowodzenie - kara. Pomysłowy algorytm, wymyślony przez Rosenblatta, wiążący: cechy rozpoznawanego obiektu, działania poszczególnych neuronów i oceny nauczyciela - z kierunkiem i wielkością zmian nastaw potencjometrów okazał się nadzwyczaj skuteczny: Perceptron naprawdę uczył się, całkiem sam się uczył - i w miarę upływu czasu popełniał coraz mniej błędów.
Nauka była powolna i uciążliwa, co widać na przytoczonej wyżej "krzywej uczenia", pokazującej spadek błędu w trakcie procesu uczenia. Warto zwrócić uwagę, że na tym wykresie pozioma oś opisana jest przez kolejne setki pokazów w trakcie procesu uczenia. Żeby uzyskać cały prezentowany na rysunku przebieg trzeba było wielokrotnie powtórzyć cykl czynności:
- pokazanie (do kamery cyfrowej) planszy z kolejnym obiektem,
- zaobserwowanie, jaka lampka się zapaliła na wyjściu,
- sprawdzenie, czy jest to właściwa lampka,
- wysłanie sygnału "nagrody" lub "kary".
Cały ten cykl trzeba było powtórzyć dwa tysiące razy, co pokazuje, jak pracochłonne były opisywane tu badania. Jednak wyniki były wielce zadowalające.
Stawiając "kroplę nad i" wyjaśnijmy jeszcze, że "właściwa lampka" to ta, którą nauczyciel związał z prawidłowym rozpoznaniem pokazanego obiektu. Było to robione arbitralnie - po prostu przed rozpoczęciem procesu uczenia nauczyciel przypisywał do lampek wyjściowych Perceptronu odpowiednie kategorie rozpoznawanych obiektów - na przykład "trójkąt", "koło", "kwadrat" przy rozpoznawaniu figur geometrycznych albo "litera A", "litera B" itd. przy rozpoznawaniu liter. To, jaką kategorię przypisano do jakiej lampki nie miało znaczenia - ważne było tylko to, żeby raz ustalone nazwy konsekwentnie stosować w trakcie całego procesu uczenia.
Nauczyciel wysyłał do Perceptronu sygnał "nagrody" przy rozpoznaniu poprawnym albo "kary" w przypadku błędu - i to wystarczało. Tak to wyglądało w praktyce:
Wynik polegający na tym, że maszynę można było zmusić do prawidłowego działania bez podawania jakichkolwiek reguł, zasad czy algorytmów, poprzez samo tylko pokazywanie przykładów i korygowanie błędów - był w tamtych czasach sensacyjny. Ale Rosenblatt miał w zanadrzu jeszcze kilka dalszych sensacji.
Pierwsza związana była z budową użytej sztucznej sieci neuronowej. Opisałem wyżej, jak zbudowane były sztuczne neurony i jaką rolę odgrywały w nich samodzielnie nastawiane przez Perceptron wagi. Ale jak te neurony były ze sobą połączone? Współcześnie używane sieci neuronowe, będące odległymi "potomkami" Perceptronu, mają z reguły bardzo regularną budowę.
Natomiast rzut oka na Perceptron widziany w taki sposób, że szafa zawierająca sztuczne neurony jest na dalszym planie, podczas gdy na pierwszym planie są widoczne kable łączące neurony w strukturę sieci
ujawnia rzecz niepokojącą - wygląda na to, że neurony łączono bez żadnego planu, w sposób przypadkowy. I tak było w rzeczywistości!
Dla osób obserwujących eksperymenty Rosenblatta zdumiewające było to, że taka kolekcja elementów przypadkowo ze sobą połączonych (zbudowana bez żadnego planu i bez żadnego sensu, wbrew wszelkim zasadom sztuki inżynierskiej!) potrafi tak skutecznie działać.
Eksperyment Rosenblatta dowiódł, że system zbudowany z elementów uczących się (sztucznych neuronów) może wykazywać celowe i skuteczne działanie nawet wtedy, gdy jego struktura nie zawiera w sobie żadnych elementów ukierunkowanych na osiągnięcie tego celu. W ten sposób Rosenblatt wykazał po 2,5 tysiącach lat słuszność przypuszczenia Arystotelesa, który twierdził, że człowiek rodzi się bez żadnych wrodzonych predyspozycji i zdolności, a jego umysł jest jak "biała, nie zapisana karta" (po łacinie tabula rasa). Dopiero kontakty z innymi ludźmi, wychowanie w rodzinie i w społeczeństwie, zdobywane doświadczenia, nabywana wiedza szkolna i pozaszkolna - wypełniają tę "kartę", dzięki czemu człowiek staje się istotą rozumną.
Dziś wiemy, że Arystoteles nie miał racji. Wrodzone zdolności istnieją, a czynniki genetyczne determinują inteligencję człowieka przynajmniej w tym samym stopniu, jak proces uczenia się. Jednak Rosenblatt dowiódł, że Arystoteles mógł mieć rację. Jego Perceptron z całkowicie chaotyczną, przypadkową strukturą, w momencie "narodzin" nie miał żadnej wiedzy, żadnych zdolności, żadnych predyspozycji. Pełny chaos + możliwość uczenia się. I okazało się, że możliwość uczenia wystarcza do tego, żeby z sukcesem mógł realizować stawiane przed nim zadania!
Znam jeszcze kilka smakowitych ciekawostek na temat Perceptronu i samego Rosenblatta (to był bardzo ciekawy człowiek!), ale zostawię to sobie na późniejsze wpisy. Natomiast wszystkich Państwa, których ten temat zainteresował, zapraszam do odwiedzenia strony, na której można pozyskać programy (bezpośrednio wykonywalne oraz kody źródłowe w C#) pozwalające tworzyć i badać systemy podobne do Perceptronu na własnym domowym komputerze. Jest też dostępna w formie pełnego tekstu książka objaśniająca, jak się tymi programami bawić i co warto zaobserwować.