Podglądamy najlepszych: sieci neuronowe #7
Chyba każdy się zgodzi, że uczenie się przez naśladowanie jest bardzo skutecznym sposobem na zdobywanie wiedzy i często sprawdza się w życiu. Dzieci naśladują rodziców, mniej doświadczeni specjaliści naśladują bardziej doświadczonych, chińskie firmy podglądają amerykańskie i tak dalej 🙂 Jeżeli u kogoś takie zachowanie czy podejście zadziałało, to istnieje duża szansa, że sprawdzi się również u nas.
Istnieją bardzo ciekawe nauki zwane bioniką i biomimetyką (ang. biomimicry), które “podglądają” naturę i to stanowi źródło inspiracji na sprawdzone mechanizmy: samolot inspirowany ptakami, radar inspirowany nietoperzami, struktura komórkowa a architektura, kolce kaktusa a systemy nawadniające, ryby jako wzór dla łodzi podwodnych, bioluminescencja a kamuflaże. Takich przykładów znajdziesz więcej w książce Janine Benyus pt. „Biomimicry: Innovation Inspired by Nature”.
Ale istnieje na tej planecie gatunek wyjątkowy, który przez różne nurty filozoficzne oraz religie obdarzany jest niesamowitym szacunkiem. Jest to człowiek. To jesteśmy My. A konkretnym wcieleniem tej naszej wyjątkowości jest nasz mózg (który w harmonii z sercem kształtuje naszą ludzką istotę - taka mała dygresja poetycka 😉)
Jeżeli podglądanie natury jest takie skuteczne, to dlaczego nie podglądać tego, co jest najbardziej wyjątkowe - czyli ludzki mózg?
W uproszczeniu, właśnie to jest genezą powstania sztucznych sieci neuronowych, które jako rodzaj algorytmów uczenia maszynowego, są bardzo skuteczne w wielu dziedzinach sztucznej inteligencji (wizji, rozumieniu języka naturalnego, rozpoznawaniu mowy itd).
A więc, posiadamy w naszych głowach 1200-1400 gramów szarej substancji, która czyni nas wyjątkowymi. Ta substancja składa się z komórek - neuronów. Szacuje się, że neuronów jest ok. 80 miliardów, a każdy neuron może być połączony z wieloma innymi neuronami (nawet do 100 tys. synaps). Łączna liczba połączeń między neuronami szacuje się na 100 bilionów (jedynka i 14 zer!). Możecie sobie wyobrazić stopień skomplikowania?! Czy nie rozpiera Was duma, że aż tak skomplikowani i wyjątkowi jesteśmy? 😉
Tu jest przedstawiono uproszczoną strukturę neuronu biologicznego:
- Dendryty - odbierają sygnały od innych neuronów i przekazują je do ciała komórkowego
- Ciało komórkowe - zawiera jądro, kontroluje funkcjonowanie neuronu, gromadzi i integruje sygnały.
- Aksony - odprowadzają sygnał od ciała komórkowego do innych neuronów po przekroczeniu odpowiednich progów pobudzenia.
Sieć neuronowa składa się z wielu neuronów. Jako ciekawostkę warto wspomnieć, że nie ma bezpośredniego fizycznego kontaktu między neuronami (czyli akson pierwszego neuronu nie “dotyka” dendrytu kolejnego). Sygnał natomiast jest przekazywany drogą elektrochemiczną (elektrony “latają” między nimi). Uproszczony schemat jest pokazany niżej:
A jak wygląda sztuczny neuron?
Jest zdecydowanie prostszy w swojej strukturze, ale ma kluczowe elementy:
- Wagi (ang. weights) przypominają dendryty oraz określają jak duży wpływ ma dana wartość wejściowa na wynik
- Suma ważona sygnałów wraz z funkcją aktywacji w przybliżeniu odpowiada ciału komórkowemu, ponieważ agreguje sygnały wejściowe i decyduje, czy impuls pójdzie dalej
- Sygnał wyjściowy można porównać do aksonu.
A czym są te “inputy” ze schematu powyżej? Czym są sygnały w sztucznej inteligencji? To są dane! Na przykład, x1, x2, …, xn mogą przedstawiać kolejne wartości z tabeli. Mogą to być słowa z tekstu, czy piksele z obrazku, lub również wartości z szeregu czasowego. Jedynym warunkiem jest, jak wspomniano już wcześniej, to, że muszą to być liczby.
Pokazałem, czym jest neuron. Czym zatem jest sieć neuronowa? Jak się domyślacie, to wiele neuronów połączonych razem. Poniżej schematycznie została pokazana sieć neuronowa, która ma warstwy neuronów:
- warstwa na samym początku nazywa się warstwą wejściową (ang. input layer),
- warstwa na samym końcu nazywa się warstwą wyjściową (ang. output layer),
- warstwy pośrodku (może ich być jedna lub więcej) - to warstwy ukryte (ang. hidden layers).
Każde “kółko” na tym schemacie - to sztuczny neuron, który ma strukturę opisaną powyżej. A strzałka, która łączy dwa neurony - to wagi (czyli sztuczne dendryty).
Sieci neuronowe mogą mieć przeróżne architektury - różną liczbę warstw, różną liczbę neuronów w każdej warstwie, różne typy neuronów (te przedstawione powyżej są najprostsze), różne typy funkcji aktywacji itd.
Dobór optymalnej architektury sieci neuronowej oraz właściwe wytrenowanie jej na odpowiednich danych to proces skomplikowany, kosztowny obliczeniowo oraz bardzo czasochłonny.
Sieci neuronowe mają bardzo szerokie zastosowanie, przykładowo:
- procesowanie języka naturalnego (klasyfikacja tekstu, generowanie tekstu, tłumaczenia),
- wizji komputerowej (wykrywanie obiektów na obrazkach czy wideo,
klasyfikacja obrazów, generowanie obrazów),
- rozpoznawanie mowy (wykrywanie osób mówiących, transkrypcja audio).
Warto też podkreślić, że cała rewolucja GenAI opiera się właśnie na sieciach neuronowych, a zwłaszcza na słynnej architekturze zwanej “transformers”, opracowanej w 2017 roku przez zespół Google. Te wszystkie słynne duże modele językowe (LLM) bazują właśnie na sieciach neuronowych, tylko duuuużo bardziej skomplikowanych, niż ta pokazana wyżej.
Aby być nieco bardziej konkretnym, na schemacie powyżej widzimy “strzałki” - wagi, które są parametrami sieci neuronowych wyliczanymi iteracyjnie na podstawie danych treningowych. I takich strzałek widzimy na schemacie 32. Czyli, w uproszczeniu, można powiedzieć, że ten model ma 32 parametry.
A ile parametrów mają LLMy? To setki miliardów, a nawet ponad bilion parametrów (15 zer)! Ale o tym w następnych artykułach, do śledzenia których gorąco zachęcam 🙂

Comments