Czas czytania artykułu
Perceptron – to on tu rządzi
Wyobraź sobie, że prosisz sztuczną inteligencję o namalowanie psa (czyli promptujesz). Wpisujesz szczegółowy opis (prompt zresztą) jak ten pies ma wyglądać. Enter. Sieć neuronowa, która została wytrenowana na oglądaniu miliardów obrazów – w tym psów, zaczyna tworzyć obraz – ten Twój. Psa. Zgodnie z promptem. Krok po kroku dobiera kolejne elementy tak, aby najlepiej pasowały do Twojego opisu. Coś musi sprawić, że spośród ogromu możliwości, tylko niektóre zostaną wybrane do Twojego obrazu psa. Jak strażnik, to coś musi przepuścić lub odrzucić dane pasujące lub nie do Twojego rysunku. Tym jest perceptron. Takim najmniejszym decydentem w sztucznej sieci neuronowej. Strażnikiem, czy też nazwij jak chcesz, ale to on decyduje. Rozumiesz? To teraz opowiedzmy akademickim językiem.
Perceptron jest najprostszym modelem sztucznego neuronu oraz podstawową jednostką obliczeniową sztucznych sieci neuronowych. Został zaproponowany przez amerykańskiego psychologa i informatyka Franka Rosenblatta w 1957 roku jako matematyczny model inspirowany sposobem działania neuronów biologicznych. Jego celem było stworzenie systemu zdolnego do automatycznego uczenia się na podstawie przykładów oraz podejmowania prostych decyzji klasyfikacyjnych. Z matematycznego punktu widzenia perceptron realizuje funkcję, która przekształca zestaw danych wejściowych w pojedynczą decyzję wyjściową. Brzmi trochę poważnie, prawda? Szczególnie końcówka. To po kolei. I może łatwiej.
Wejście perceptronu
Ty myślisz, że sztuczna sieć neuronowa maluje Twojego psa kolorami, a ona wykonuje ciągłe obliczenia matematyczne. W sieciach neuronowych są tylko liczby, a dane wejściowe perceptronu, które nazywane są wektorami wejścia, to uporządkowane zbiory liczb według ustalonej kolejności cech. Wszystko poukładane, logiczne i według wzoru. Może drogi Czytelniku jesteś zaciekawiony jakiej kolejności cech? Już wyjaśniam.
Waga połączenia (coś w stylu synapsy)
Każda wartość wejściowa (ten wektor) ma przypisaną własną wagę. Przypominam – wektor to uporządkowany ciąg liczb. To, co dokładnie znajduje się w tym ciągu liczb, zależy wyłącznie od tego, jaki problem sieć neuronowa ma rozwiązać (czyli to jest ta kolejność cech do zanalizowania). Wektor wejściowy to po prostu cyfrowy opis rzeczywistości, którą sieć ma przeanalizować. Każda pojedyncza liczba w tym ciągu to jedna konkretna cecha. Perceptron mnoży każdą tę liczbę przez jej wagę. Dopiero potem wszystkie wyniki dodaje.
I teraz, jeśli jakaś cecha jest bardzo istotna, to jej waga będzie duża. Jeżeli ma niewielkie znaczenie, jej waga będzie bliska zeru. A jeśli dana cecha wręcz przemawia przeciwko podjęciu określonej decyzji, jej waga może być ujemna – skoro sieć ma narysować Twojego psa, to cecha typu skrzydła nie tylko nie pomoże, ale wręcz zasugeruje, że to chyba nie jest pies.
Najważniejsze jest to, że sztuczna sieć neuronowa uczy się poprzez zmianę wag. Nie zmianę perceptronu. Gdy sieć popełni błąd, algorytm poprawia wagi, czasami miliardy wag, a nie perceptron. Niezwykłe, prawda?
W biologicznych sieciach neuronowych jest dość podobnie. Podczas uczenia się, kluczowe zmiany zachodzą nie tyle w samym sercu neuronu, ile w sile połączeń synaptycznych między nimi.
Dlatego właśnie mówi się, że waga połączenia w sztucznej sieci neuronowej jest funkcjonalnym odpowiednikiem siły synapsy. I to jest właśnie ta inspiracja biologicznymi sieciami neuronowymi.
No dobrze, perceptron wykonał już wszystkie obliczenia. Otrzymał jedną liczbę. Ale sama liczba nie mówi jeszcze kolejnym perceptronom, co mają z nią zrobić (wiesz przecież, że tych perceptronów jest cała sieć – tak jak sieć neuronów w mózgu). Potrzebny jest więc mechanizm, który przekształci ten wynik w sygnał możliwy do dalszego przetwarzania. Tym mechanizmem jest funkcja aktywacji.
Funkcja aktywacji
Opowiedzmy akademicko. Po obliczeniu ważonej sumy sygnałów wejściowych perceptron otrzymuje pojedynczą wartość liczbową, nazywaną potencjałem aktywacji (nie uwierzysz, ale ten potencjał ma bardzo podobną logikę w biologicznych sieciach neuronowych).
Sama ta wartość nie stanowi jeszcze sygnału przekazywanego do kolejnych elementów sztucznych sieci neuronowych. Jest jedynie wynikiem operacji matematycznych wykonanych na danych wejściowych oraz odpowiadających im wagach (to już rozumiesz, prawda?).
Dopiero funkcja aktywacji przekształca tę wartość zgodnie z określoną regułą matematyczną, tworząc wartość wyjściową perceptronu. Taka ostatnia decyzja. Kropka na końcu zdania.
Pokażmy to na przykładzie Twojego psa.
Jeśli wynik wcześniejszych obliczeń (jak napisałam wyżej: pomnożenia każdej wartości wejściowej przez odpowiadającą jej wagę, a następnie zsumowania otrzymanych wyników) wskazuje, że ta informacja może być przydatna podczas tworzenia Twojego obrazu psa, to funkcja aktywacji daje zielone światło, aby przekazać ten wynik, który stanie się jedną z wartości wejściowych kolejnego perceptronu.
Wyjście perceptronu
Po przejściu przez funkcję aktywacji powstaje wartość wyjściowa perceptronu. Nie jest to jeszcze gotowy obraz Twojego psa. To kolejna liczba, która trafia jako wejście do następnych perceptronów. W ogromnej sieci neuronowej taki proces powtarza się miliony razy, aż z wielu prostych obliczeń powstanie końcowy wynik.
Teraz już wiesz, że gdy prosisz sztuczną sieć neuronową o wykonanie jakiegoś zadania, w tym czasie Twojego oczekiwania sieć dokonuje milionów operacji.
I podobnie jak w mózgu jeden neuron, tak tutaj jeden perceptron potrafi naprawdę niewiele. Dopiero gdy połączymy ich tysiące lub miliony, zaczynają rozpoznawać twarze, rozumieć język czy generować obrazy. Tych możliwości jest bardzo wiele.
Autor: Magdalena Siatkowska