Jak nauczyliśmy maszyny liczyć i myśleć za nas? Część 49.: Sieci neuronowe – początek drogi do sztucznego mózgu

W pierwszych eksperymentach z sieciami neuronowymi nauczycielem był człowiek. Potem jednak to usprawniono i obecnie w roli „nauczyciela” występuje program komputerowy posiadający tzw. zbiór uczący, czyli zbiór przykładowych zadań wraz z ich prawidłowymi rozwiązaniami.

Publikacja: 29.06.2023 21:58

Jak nauczyliśmy maszyny liczyć i myśleć za nas? Część 49.: Sieci neuronowe – początek drogi do sztucznego mózgu

Foto: AdobeStock

Dzisiaj opowiem o systemach, które opierają się na naśladowaniu struktury i funkcjonowaniu mózgu. Wprawdzie ze względu na ograniczenia techniczne owe komputerowe modele tak się mają do gigantycznego ludzkiego mózgu (zawierającego aż sto miliardów neuronów, czyli biologicznych procesorów przetwarzających informacje), jak objętość główki szpilki do objętości całej kuli ziemskiej. Ale że są na mózgu wzorowane – to nie ulega wątpliwości.

Biologiczny fundament

O fundamentalnym znaczeniu mózgu jako siedliska procesów psychologicznych oraz inteligencji wiedziano od dawna, ale wiedza o wewnętrznej budowie mózgu i o funkcjonowaniu jego elementów została zdobyta dopiero pod koniec XIX wieku. Pierwszy krok wykonał Włoch Camillo Golgi, który w 1873 r. wynalazł metodę barwienia preparatów mikroskopowych pochodzących z mózgu, które po raz pierwszy ujawniły, że w tym tajemniczym tworze, dawniej traktowanym przez anatomów jako syncytium, są jednak jakieś struktury wewnętrzne. Myśl naukową Golgiego rozwinął Hiszpan Santiago Ramón y Cajal, który w 1887 r. sformułował fundamentalne przypuszczenie, że komórki nerwowe łączą się ze sobą w taki sposób, że akson rozważanego neuronu (włókno niosące sygnał wyjściowy) łączy się z dendrytami (wypustkami zbierającymi sygnały wejściowe) innych komórek. Obaj dostali za to w 1906 r. Nagrodę Nobla. Miejsca złącz (synaps) badał w 1897 r. sir Charles Scott Sherrington, za co w roku 1932 dostał Nagrodę Nobla. Nagrodę tę w tym samym roku otrzymał także Edgar Douglas Adrian, który w 1928 r. odkrył, że aktywność neuronów ma charakter elektryczny i polega na wysyłaniu przez neurony impulsów. Jeśli łączne pobudzenie neuronu przez wszystkie synapsy przekroczy pewną wartość (próg pobudzenia), to neuron wysyła impuls. Jeśli pobudzenie jest za słabe („podprogowe”) – to neuron milczy. Ta reguła „wszystko albo nic” jest uznawana do dziś.

Czytaj więcej

Jak nauczyliśmy maszyny liczyć i myśleć za nas? Część 48.: Jak się rozwijała sztuczna inteligencja?

To, że przy przekazywaniu informacji w synapsach wykorzystywane są różne substancje chemiczne (neuromediatory), odkrył w 1940 r. sir Henry Hallett Dale we współpracy z Austriakiem Otto Loewim. Loewi swoje badania zaczął jeszcze w 1921 r., ale musiał je porzucić, by wyemigrować w 1938 r. do Anglii w obawie przed hitlerowcami. Ale to właśnie on wykazał, że neuromediator jest niezbędny przy przekazywaniu informacji od jednego neuronu do drugiego, a obaj wymienieni uczeni wykazali, że neuron odbierający sygnał może być pobudzony silniej albo słabiej w zależności od ilości wydzielonego w synapsie mediatora, za co otrzymali w 1936 r. Nagrodę Nobla.

Mógłbym jeszcze długo wyliczać badaczy, którzy przybliżyli nas do poznania budowy struktur neuronowych i zrozumienia zasad ich działania, ale poprzestanę na tych najwcześniejszych, które niewątpliwie stały się podstawą pierwszych prób budowy sztucznych sieci neuronowych – najpierw teoretycznych, a potem także praktycznych.

Sztuczna sieć oparta na logice

Pierwszą próbą stworzenia sztucznego modelu komórki nerwowej był neuron binarny zaproponowany w 1943 r. przez Warrena McCullocha i Waltera Pittsa. Wykorzystali oni wykrytą przez Adriana zasadę „wszystko albo nic” do tego, aby ich sztuczne neurony działały tak, jak znane już wtedy binarne urządzenia telekomunikacyjne lub elementy składowe pierwszych komputerów. Na wyjściu każdego neuronu mogła się pojawić jedynka lub zero, co można było także interpretować jako oceny logiczne: prawda albo fałsz. Gdy się takie neurony połączyło w sieć, to mogła ona wyciągać wnioski z danych wejściowych, które także były binarne. Niektóre informowały, że coś jest prawdziwe, a inne, że coś jest fałszywe. Na wyjściach neuronów znajdujących się na końcu sieci można było uzyskiwać wnioski (w postaci 1 lub 0, czyli prawda albo fałsz) ustalane automatycznie po wykonaniu przez całą sieć bardzo skomplikowanych przekształceń logicznych.

Działanie neuronów McCullocha i Pittsa było zależne od tzw. współczynników wagowych. Odpowiadały one wykrytym przez Dale’ego oraz Loewiego porcjom neuromediatora wydzielanego w synapsach. Tam, gdzie tego neuromediatora wydziela się więcej – każda nadchodząca „jedynka” mocniej pobudza neuron. Stąd nazwa „współczynnik wagowy” albo w skrócie waga. Duża waga to silny wpływ wejściowego sygnału na zachowanie neuronu. Mała waga – to wpływ słabszy. Jak wykazali Dale i Loewi, jedne neuromediatory pobudzają neurony, a inne powstrzymują je od działania (mówi się wtedy o synapsach hamujących). McCulloch i Pitts skwapliwie to wykorzystali i wymyślone przez nich neurony mogły mieć wagi dodatnie albo ujemne.

Na koniec każdy neuron w sieci musiał ustalić, czy na swoim wyjściu wygeneruje sygnał 0 czy 1. Do tego służył dodatkowy parametr mogący także mieć mniejszą albo większą wartość. Parametr ten nazwano progiem. Gdy suma sygnałów wejściowych przemnożonych przez przypisane do poszczególnych wejść wagi dosięgała progu lub go przekraczała, neuron generował i przesyłał dalej w sieci „jedynkę” (symbol prawdy). Gdy suma przemnożonych przez wagi sygnałów wejściowych nie dosięgała progu, neuron wysyłał na swoim wyjściu „zero”.

Neurony McCullocha i Pittsa były bardzo pomysłowe, zwłaszcza koncepcja wag była genialna i jest stosowana we wszystkich sieciach neuronowych do dzisiaj. Miały one jednak jedną wadę: wartości wszystkich wag i wszystkich progów we wszystkich neuronach musiał wymyślić i ustalić człowiek, twórca sieci. Dlatego chociaż sieci te były bardzo pomysłowe i okazały się bardzo użyteczne przy ustalaniu prawdziwości skomplikowanych formuł logicznych, nie odegrały większej roli w praktyce.

Początek owocnej drogi: uczenie sieci

Gdyby każdemu zastosowaniu sieci neuronowej towarzyszyła konieczność „ręcznego” ustalania wartości wag i progów wszystkich neuronów, zapewne ta technika by się specjalnie nie przyjęła jako nadmiernie pracochłonna. Okazało się jednak, że jeżeli neurony w sieci mają możliwość samodzielnego zmieniania wag (i progów) – to możliwe jest uruchomienie procesu uczenia, w którym wszystkie neurony same będą sobie dostrajały swoje wagi na podstawie informacji pochodzącej od nauczyciela. W pierwszych eksperymentach z sieciami neuronowymi nauczycielem był człowiek. Sam często występowałem w tej roli w stosunku do sieci, które budowałem w latach 70. Potem jednak to usprawniono i obecnie w roli „nauczyciela” występuje program komputerowy posiadający tzw. zbiór uczący, czyli zbiór przykładowych zadań wraz z ich prawidłowymi rozwiązaniami.

Pierwszą pracą wyjaśniającą mechanizmy uczenia w biologicznych strukturach neuronowych była książka Donalda Hebba „The Organization of Behavior” wydana w 1949 r. W połączeniu z pracami McCullocha i Pittsa dała ona podstawę do budowy pierwszych sztucznych uczących się sieci neuronowych. W 1951 r. taką sieć o nazwie SNARC zbudował Marvin Minsky, ale prawdziwą sensację wywołał neurobiolog Frank Rosenblatt, budując w 1957 r. sieć o nazwie Perceptron. Sieć ta złożona była z 256 sztucznych neuronów, które w trakcie uczenia mogły same zmieniać swoje wagi. Owa samodzielna zmiana wag została osiągnięta w bardzo pomysłowy sposób. W latach 50. XX w. nie było układów elektronicznych, które by mogły zmieniać swoje parametry, dlatego zastosowano rozwiązanie elektromechaniczne. Wagą była zmienna oporność potencjometru (używanego w tamtych czasach głównie do regulacji głośności w radioodbiornikach i jasności obrazu w telewizorach), a zmianę tej oporności uzyskiwano, obracając gałkę potencjometru za pomocą małego silniczka elektrycznego, sterowanego przez mechanizm uczenia sieci. W ten sposób wagi mogły być zamieniane automatycznie, przez uczącą się sieć. To działało!

Za pomocą Perceptronu Rosenblatta wykazano szereg właściwości sieci neuronowych, które są wykorzystywane do dziś. Po pierwsze, dowiedziono, że sieć potrafi się uczyć. Do wejścia Perceptronu dołączona była specjalnie skonstruowana kamera elektroniczna, która przekazywała do sieci obrazy, które należało rozpoznawać. W tamtych czasach kamer cyfrowych jeszcze nie było, Rosenblatt zestawił więc matrycę z fotokomórek o rozmiarach 20 x 20 elementów. Prymitywną, ale działającą! Przed ową kamerą ustawiano planszę z obrazem, który miał być rozpoznany. Były to początkowo obrazy figur geometrycznych, które sieć miała rozpoznawać, potem uczono identyfikacji liter, a nawet próbowano rozpoznawać znaki pisma chińskiego. Sieć sygnalizowała, do jakiej kategorii zaliczyła pokazywany obraz (np. do kategorii „trójkąty” albo „różnie pisane litery A”), po czym nauczyciel wysyłał do sieci sygnał aprobaty („nagrody”) albo informację o błędzie („to nie jest okrąg tylko kwadrat”). W przypadku aprobaty wagi neuronów pozostawały niezmienione, natomiast w przypadku błędu neurony same zmieniały wagi w taki sposób, żeby w przyszłości unikać błędnego rozpoznania oraz żeby zwiększyć prawdopodobieństwo uzyskania rozpoznania poprawnego.

Zadziwiające wyniki uczenia sieci neuronowej

Prowadząc doświadczenia z Perceptronem, Rosenblatt był jak odkrywca poznający nowy ląd. Wszystko, co zaobserwował, było całkiem nowe, przez nikogo wcześniej nieopisane. Najpierw musiał wprowadzić pojęcie epoki w procesie uczenia. Proces ten przebiegał dość wolno, a tymczasem zapas rysunków, które pokazywano Perceptronowi, żeby je rozpoznał, szybko się wyczerpywał. Wprowadzono więc zasadę, że jednorazowe pokazanie wszystkich posiadanych obrazków i jednorazowe zasygnalizowanie przez nauczyciela popełnianych błędów będzie nazywane „epoką”. Uczenie wymagało wielu epok, ale w każdej kolejnej epoce błędów wymagających interwencji nauczyciela było mniej.

Rejestrując liczbę błędów w kolejnych epokach, Rosenblatt odkrył krzywą uczenia. Był to wykres pokazujący, jak w miarę kolejnych epok uczenia maleje liczba błędów. Rysując wykres, na którego osi poziomej odkładany był numer epoki uczenia, a na osi pionowej – liczba popełnianych błędów w trakcie jednej epoki, dostawało się krzywą przypominającą dużą literę L. Liczba błędów, początkowo bardzo duża (bo wagi w neuronach były całkowicie nieprzygotowane do rozwiązywania stawianego przed Perceptronem zadania), najpierw bardzo szybko malała, ale w miarę postępów procesu uczenia neurony musiały się coraz subtelniej dostosowywać do wymagań, więc błąd malał wolniej. Natomiast pod koniec obserwowano, że proces zmniejszania liczby błędów zatrzymywał się. Perceptron osiągał wtedy pewien poziom końcowego błędu, który był niewielki, ale zwykle nie zerowy.

Niezwykły wynik przyniósł kolejny eksperyment Rosenblatta, który postanowił zbadać, jak na proces uczenia wpływać będzie kompetencja nauczyciela. Uruchomił po raz kolejny uczenie Perceptronu, ale nakazał nauczycielowi, by ten popełniał błędy. Wyglądało to tak: pokazywano obrazek. Perceptron sygnalizował odpowiedź, a nauczyciel rzucał kostką i decydował: powiedzieć prawdę albo nie. Jak wypadła liczba oczek większa od 1 – to działanie nauczyciela było adekwatne do sytuacji: potwierdzał prawdziwość dobrego wyniku albo wprowadzał sygnał korekty, zmieniając nieprawidłowe rozpoznanie na to właściwe. Ale jak wypadła 1, to nauczyciel celowo się mylił. Albo potwierdzał rozpoznanie maszyny, gdy było ono błędne, albo kwestionował dobre rozwiązanie, wymuszając jego zmianę na inne (nieprawidłowe).

Krzywa uczenia ze złym nauczycielem nie przypominała już litery L, tylko była bardzo „postrzępiona”, bo psuły ją te nieprawidłowo zaliczane sukcesy albo „wmawiane” sieci błędy. Ale krzywa ta wykazała dwie niezwykłe właściwości. Gdy malejący błąd maszyny dotarł do poziomu 1/6, czyli 17 proc. (taki był poziom błędów popełnianych celowo przez nauczyciela), to Perceptron – nadal ucząc się – zaczął notować błędy mniejsze niż popełniał nauczyciel. Uczeń przerósł mistrza! Najciekawsze było jednak to, że końcowa wartość błędu, ta, poniżej której nie udawało się zejść z dobrym, grzecznie uczącym nauczycielem, też została pokonana! Sieć neuronowa źle uczona osiągała z zasady lepsze wyniki niż ta uczona cały czas poprawnie!

W następnym felietonie opiszę Państwu jeszcze więcej niezwykłych właściwości sieci neuronowych.

Autor jest profesorem Akademii Górniczo-Hutniczej w Krakowie

Historia
Zaprzeczał zbrodniom nazistów. Prokurator skierował akt oskarżenia
Materiał Promocyjny
Z kartą Simplicity od Citibanku można zyskać nawet 1100 zł, w tym do 500 zł już przed świętami
Historia
Krzysztof Kowalski: Kurz igrzysk paraolimpijskich opadł. Jak w przeszłości traktowano osoby niepełnosprawne
Historia
Kim byli pierwsi polscy partyzanci?
Historia
Generalne Gubernatorstwo – kolonialne zaplecze Niemiec
Materiał Promocyjny
Sieć T-Mobile Polska nagrodzona przez użytkowników w prestiżowym rankingu
Historia
Tysiąc lat polskiej uczty