Pobierz
najnowszy numer

Newsletter

Zapisz się do naszego Newslettera, aby otrzymywać informacje o nowościach z branży!

Jesteś tutaj

AI dla każdego. Część 3

Printer Friendly and PDF

W poprzedniej części omówiłem ogólnie klasyfikację procesów zachodzących w ramach sztucznej inteligencji z podziałem na uczenie maszynowe i procesy wspomagające. Dziś pora skupić się na samym uczeniu i podstawach działania sztucznych sieci neuronowych.

Neurony – atomy inteligencji

Zmysły słuchu, wzroku, zapachu, dotyku i smaku, a także pamięć, mowa, widzenie barwne, zdolność do uczenia się i wiele innych umiejętności ludzki organizm zawdzięcza najlepszemu superkomputerowi na świecie, jakim jest mózg. Dzięki zdolności do jednoczesnego przetwarzania wielkiej ilości informacji, neuroplastyczności (o tym dalej) i pamięci o ogromnej pojemności w strukturze o małej objętości ludzki mózg to jedno z najbardziej niesamowitych i fascynujących dzieł natury. Inteligencja naturalna, o której pisałem w pierwszej części cyklu, w nr 1/2019 Zabezpieczeń, rodzi się w mózgu i śmiało można pokusić się o stwierdzenie, że ludzkie neurony są niejako atomami, z których owa inteligencja powstaje.

Zatrzymam się nieco dłużej przy budowie neuronu naturalnego, gdyż wiedza o jego funkcjonowaniu znacznie ułatwi zrozumienie działania sztucznych sieci neuronowych.

Rys. 1. Schematyczna budowa neuronu ludzkiego (autor: Qasar Jarosz, źródło: https://en.wikipedia.org/wiki/Neuron#/media/File:Neuron_Hand-tuned.svg). Opis uproszczony na potrzeby artykułu

 

Pojedynczy neuron (rys. 1.) to komórka nerwowa, której najistotniejszą cechą jest zdolność do przetwarzania informacji w formie sygnałów elektrycznychI. W dużym uproszczeniu można powiedzieć, że neuron ma wiele „odbiorników” i jeden „nadajnik” informacji. „Odbiorniki” to dendryty, czyli wypustki nerwowe, których zgrupowanie przypomina koronę drzewa. Pień tego drzewa (który pod mikroskopem wygląda bardziej jak długi ogon) to akson. Na końcu „pnia”, po drugiej stronie neuronu, znajduje się zakończenie aksonu, czyli „nadajnik” informacji, także w postaci wypustek nerwowych. Sygnały elektryczne biegną od dendrytów przez akson do zakończenia aksonu. W bardzo podobny sposób funkcjonuje sztuczny neuron.

Naturalna sieć neuronowa

Jeden neuron nie jest niczym szczególnym, ale połączenie bardzo wielu z nich w sieć jest już czymś absolutnie niesamowitym. Dendryty jednego neuronu mogą łączyć się z aksonami innych neuronów, tworząc w ten sposób sieć neuronową. Miejsce styku dendrytu z aksonem to synapsa – w tym miejscu impulsy elektryczne są przekazywane z jednego neuronu do innego. Taką aktywność elektryczną mózgu medycyna potrafi mierzyć i obrazować za pomocą badania elektroencefalograficznego (EEG). Proces powstawania i ciągłej modyfikacji sieci połączeń między neuronami to neuroplastycznośćII. Każdy nowy dla nas kolor, smak, zapach, kształt, dźwięk, wrażenie, uczucie itd. to nowa trasa połączeń między neuronami. Jednym z najważniejszych efektów neuroplastyczności jest modelowanie tych tras. Bodźce silne i regularnie powtarzane powodują wzmacnianie i powielanie połączeń międzyneuronalnych. Brak powtarzalności i ekspozycji na określony rodzaj bodźców powoduje zmniejszanie wagi określonych połączeń, a nawet ich zanikanie. Doskonałym tego przykładem są ludzkie zdolności lingwistyczne. Praktykując regularną komunikację w języku obcym, wzmacniamy i budujemy nowe połączenia międzyneuronalne, natomiast brak konwersacji, choćby przez kilka miesięcy, powoduje widoczny spadek sprawności komunikacyjnej, która jednak szybko się odtwarza po powrocie do regularnego używania języka obcego (osłabione połączenia neuronalne zostają ponownie wzmocnione).

Obecnie naukowcy potrafią oszacować liczbę neuronów u człowieka jedynie w przybliżeniu. Według różnych badań w ludzkim mózgu znajduje się średnio od 86 do 100 miliardów neuronów, a każdy z nich może utworzyć nawet do kilku tysięcy połączeń z innymi neuronamiIII. Realnie połączeń tych może być mniej, a ze względu na skalę zagadnienia można mówić jedynie o ilościach szacunkowych. Przyjmuje się, że w ludzkim mózgu jest ok. 100 kwintylionów potencjalnych połączeń nerwowychIII (jedynka i 32 zera w zapisie dziesiętnym), czyli wielokrotnie więcej niż wynosi szacowana liczba gwiazd w naszej galaktyceIV. Określenie „astronomiczna liczba” nabiera tu więc zupełnie nowego znaczenia.

Podglądanie natury, czyli sztuczny neuron

Pierwszym matematycznym odwzorowaniem ludzkiego neuronu i zarazem modelem sztucznego neuronu był model McCullocha-PittsaV (rys. 2.). Jest to najprostsza forma przedstawienia podstawowego elementu sieci neuronowych.

Rys. 2. Sztuczny neuron wg modelu McCullocha-Pittsa wraz z analogiami do neuronu naturalnego, graf.: P. Rogalewski

 

Dla ułatwienia zrozumienia działania tego modelu na rys. 2. na zielono zaznaczone zostały analogiczne elementy neuronu naturalnego. Tak więc odpowiednikami synaps są wejścia od x1 do xn, na które podawane są sygnały (dane wejściowe). Każde wejście ma przypisaną do niego, określoną wagę w postaci liczby rzeczywistej. Im większa jest ta liczba, tym większe znaczenie będzie miał sygnał z tego wejścia. Jest to podstawa działania mechanizmu analogicznego do wzmacniania tras w naturalnej sieci neuronowej i fundamentalny element neuroplastyczności w sztucznych sieciach neuronowych. Sygnały wejściowe, opisane swoimi wagami, trafiają do sumatora oznaczonego grecką literą „Σ”. Ten odcinek drogi sygnału odpowiada dendrytom w neuronie naturalnym. W sumatorze następuje wyliczenie sumy ważonej sygnałów z poszczególnych wejść. Wartość ta jest następnie przekazywana do funkcji wyzwalającej f. Z kolei wynik działania funkcji f jest przekazywany do wyjścia y, odpowiadającego zakończeniu aksonu w neuronie naturalnym, a odcinek drogi sygnału od sumatora Σ do wyjścia y można porównać do samego aksonu.

Pora teraz na prostą matematykę – krok po kroku wszystko dokładnie wyjaśnię. Działanie sztucznego neuronu według modelu McCullocha-Pittsa opisuje poniższy wzór:

We wzorze zmienna y to wynik działania funkcji f. Argument tej funkcji, jak wspomniałem wyżej, jest wyliczany na podstawie sumy (Σ) iloczynów wartości z wejść x oraz odpowiadających im wag w. Pełna suma obejmuje wejścia i wagi od 1 do n. Dla lepszego wyjaśnienia posłużę się przykładem. Załóżmy, że sztuczny neuron ma analizować temperaturę z trzech czujników zainstalowanych przy procesorze, zasilaczu i dysku twardym systemu komputerowego. Czujniki są podłączone do trzech wejść sztucznego neuronu: x1 (zasilacz), x2 (dysk twardy) oraz x3 (procesor). Zmierzona temperatura z każdego czujnika może mieć umowną wartość z zakresu od 0 (zimno) do 5 (gorąco). Zasilacz bez szkody dla swojej struktury może się znacznie nagrzać. Mniej odporny na temperaturę jest dysk twardy, natomiast najbardziej newralgicznym elementem jest procesor. Tak więc trzem wejściom pomiarowym przyporządkowane są odpowiednie wagi: w1 (zasilacz), w2 (dysk twardy) i w3 (procesor), którym przypisane zostają wartości, odpowiednio, 1, 2 i 3. Sygnał na wyjściu y neuronu ma spowodować uruchomienie alarmu, jeśli umowna wartość skumulowanej temperatury w systemie przekroczy próg 10. Przekroczenie tego progu będzie badać funkcja f. Załóżmy teraz, że zasilacz jest gorący (x1 = 5), dysk lekko ciepły (x2 = 2), a procesor zupełnie zimny (x3 = 0). Przykładowa suma iloczynów xi . wi wyniesie: 5·1 + 2·2 + 0·3 = 9. Zasilacz jest gorący, ale waga tego sygnału jest niska (w1 = 1), a dysk jest lekko ciepły (x2 = 2) i choć waga tego wejścia jest wyższa, to przy zimnym procesorze (x3 = 0) suma daje wynik zbyt niski do wyzwolenia alarmu. Rozpatrzmy inny przypadek – zasilacz i dysk są zimne (x1 i x2 = 0), a procesor jest mocno rozgrzany (x3 = 4). Otrzymamy: 0·1 + 0·2 + 4·3 = 12, czyli funkcja f uruchomi alarm, bo przekroczony jest próg 10, mimo że sygnał z dwóch pozostałych wejść miał wartość zerową. Powyższy przykład jest oczywiście bardzo uproszczony i w praktyce taki system może być zrealizowany dużo prostszymi metodami niż sztuczny neuron, jednak dobrze nadaje się do wyjaśnienia zagadnienia. Funkcja f w tym przykładzie bada tylko próg wartości, ale w rzeczywistości może ona być o wiele bardziej złożona i np. przyjmować charakter trygonometryczny, statystyczny, kwadratowy, logarytmiczny itd.

Sztuczna sieć neuronowa

Tak samo jak w naturze, w przypadku sztucznej inteligencji sieć neuronowa powstaje na skutek połączenia wielu neuronów. Dla ścisłości, już pojedynczy sztuczny neuron sam w sobie stanowi najprostszą sieć neuronową. Struktura zbudowana z neuronów McCullocha-Pittsa to perceptron, który jest najprostszym rodzajem sztucznej sieci neuronowejVI. Perceptron jest siecią jednokierunkową (sygnały biegną od wejścia do wyjścia) i może składać się z jednej lub wielu warstw sztucznych neuronów. W sieci wielowarstwowej (perceptronie wielowarstwowym) zawsze występuje warstwa wejściowa, do której doprowadzane są dane do analizy, oraz wyjściowa, gdzie otrzymujemy wynik działania sieci. Pomiędzy nimi może znajdować się jedna lub więcej warstw ukrytych, które krok po kroku (warstwa po warstwie w głąb sieciVII) analizują dane z warstwy wejściowej. Perceptron wielowarstwowy jest najpopularniejszym typem sztucznej sieci neuronowej. Tego typu sieć najczęściej uczy się metodą nadzorowaną (nauka z trenerem)VIII. Doskonałym przykładem jest system diagnostyki medycznej bazujący na analizie zdjęć rentgenowskich. Zgodnie z metodyką nadzorowanego uczenia się perceptron otrzymuje jako materiał do nauki pary danych treningowych – wejściowych i wyjściowych. W tym konkretnym przypadku danymi wejściowymi mogą być np. zdjęcia RTG zmian patologicznych różnych narządów wewnętrznych, a danymi wyjściowymi diagnozy chorób odpowiadających tym zmianom. Gdy perceptron, nauczony takimi parami danych treningowych, otrzyma zupełnie nieznane mu zdjęcie RTG, będzie starał się, na podstawie wcześniejszej nauki, dopasować charakterystykę tego zdjęcia do jednej ze znanych mu diagnoz. Takie systemy już działają i osiągają bardzo spektakularne wyniki. Innym przykładem może być system prognozowania opadów, przedstawiony na rysunku 3.

Rys. 3. Przykład prostego perceptronu wielowarstwowego, graf.: P. Rogalewski

 

Informacje o temperaturze powietrza, zachmurzeniu, sile i kierunku wiatru oraz zamgleniach trafiają do pierwszej warstwy sieci, gdzie otrzymują odpowiednie wagi (im informacja jest istotniejsza ze względu na określenie możliwości wystąpienia opadów, tym waga jest większa). Wstępnie zważone informacje trafiają do warstwy ukrytej (pośredniej), gdzie następuje ich analiza w funkcjach meteorologicznych f1 i f2 w celu określenia wilgotności powietrza i ciśnienia atmosferycznego. Wyniki tej analizy trafiają następnie do warstwy wyjściowej, gdzie funkcja f3 określa prawdopodobieństwo wystąpienia opadów. Oczywiście taka analiza ma sens, gdy perceptron został wcześniej wytrenowany historycznymi danymi meteorologicznymi.

W kolejnym artykule wyjaśnię, w jaki sposób sieć neuronowa potrafi się uczyć, oraz opiszę ogólnie kilka innych typów sieci.

Piotr Rogalewski

Przypisy:

  1. G. M. Edelman, J. P. Changeux, The Brain, Transaction Publishers, wydanie 1., Piscataway, New Jersey 2000.
  2. S. Herculano-Houzel, R. Lent, Isotropic Fractionator: A Simple, Rapid Method for the Quantification of Total Cell and Neuron Numbers in the Brain, (w:) „Journal of Neuroscience” wol. 25, wydanie 10., 9.03.2005.
  3. V. Ross, Numbers: The Nervous System, From 268-MPH Signals to Trillions of Synapses, (w:) „Discover Magazine”, marzec 2011.
  4. J. Binney, M. Merrifield, Galactic Astronomy, Princeton University Press, Princeton 1998.
  5. Zob. AI dla każdego. Część I, „Zabezpieczenia” nr 1/2019.
  6. M. L. Minsky, S. A. Papert, Perceptrons, MIT Press, Cambridge (Massachusetts) 1969.
  7. Stąd właśnie wywodzi się określenie „głębokie uczenie się” (ang. deep learning).
  8. Zob. AI dla każdego. Część II, „Zabezpieczenia” nr 2/2019.

 

Zabezpieczenia 3/2019

Wszelkie prawa zastrzeżone. Kopiowanie tekstów bez zgody redakcji zabronione / Zasady użytkowania strony