Wasz wybór

Powiązane artykuły

Sieci neuronowe — jak działają sztuczne neurony i do czego służą

Sieci neuronowe to jedna z tych idei, które brzmiały jak science fiction, a okazały się fundamentem współczesnej technologii. Rozpoznawanie twarzy na zdjęciach, transkrypcja mowy, diagnozowanie nowotworów z obrazów medycznych — za każdym z tych zastosowań kryje się ten sam mechanizm: warstwa za warstwą, neuron za neuronem, sieć uczy się wzorców z danych. Żeby naprawdę zrozumieć, jak działają sieci neuronowe, trzeba zacząć od elementarnej jednostki — sztucznego neuronu.

Budowa sztucznego neuronu — wejścia, wagi i funkcja aktywacji

Neuron sztuczny to matematyczna abstrakcja inspirowana biologicznym odpowiednikiem. Przyjmuje kilka sygnałów wejściowych, przetwarza je i produkuje jeden sygnał wyjściowy. Brzmi prosto — i w zasadzie jest proste, dopóki pamiętamy o kilku detalach.

Budowa sztucznego neuronu — wejścia, wagi i funkcja aktywacji

Każde wejście ma przypisaną wagę — liczbę, która mówi, jak bardzo dany sygnał wpływa na neuron. Waga równa 0 oznacza, że wejście jest ignorowane; waga duża (np. 2.5) sprawia, że sygnał jest wzmocniony. Neuron sumuje iloczyny wejść i wag, dodaje do tego tzw. bias (przesunięcie), a wynik przepuszcza przez funkcję aktywacji.

Przykład liczbowy pozwoli to ukonkretnić. Przyjmijmy neuron z dwoma wejściami: x₁ = 0.8 i x₂ = 0.3. Wagi wynoszą odpowiednio w₁ = 1.2 i w₂ = -0.5, a bias b = 0.1. Suma ważona to: (0.8 × 1.2) + (0.3 × (-0.5)) + 0.1 = 0.96 − 0.15 + 0.1 = 0.91. Ta wartość trafia do funkcji aktywacji.

Funkcja aktywacji decyduje, czy neuron „odpali” i z jaką siłą. Historycznie stosowano funkcję skokową (0 lub 1), dziś dominują funkcje ciągłe. Sigmoid sprowadza wynik do przedziału (0, 1) i dobrze sprawdza się w klasyfikacji binarnej. ReLU (Rectified Linear Unit) zwraca po prostu max(0, x) — szybka i skuteczna w głębokich sieciach. Softmax z kolei zamienia wektor liczb na rozkład prawdopodobieństwa i jest standardem w warstwie wyjściowej przy klasyfikacji wieloklasowej. Dla naszego przykładu sigmoid z wartości 0.91 zwróci około 0.713 — i to jest sygnał wychodzący z neuronu.

Perceptron — pierwszy krok i jego ograniczenia

Perceptron to historycznie pierwsza formalizacja sztucznego neuronu. Frank Rosenblatt opisał go w 1958 roku jako model obliczeniowy zdolny do nauki przez przykłady. Perceptron z jedną warstwą radził sobie z liniowo separowalnymi problemami — potrafił nauczyć się funkcji AND czy OR.

Problem pojawił się z funkcją XOR. Marvin Minsky i Seymour Papert udowodnili w 1969 roku, że jednowarstwowy perceptron nie jest w stanie jej odwzorować. To odkrycie, wraz z ograniczeniami sprzętowymi epoki, doprowadziło do pierwszej „zimy AI” — kilkunastu lat, w których finansowanie badań nad sieciami neuronowymi gwałtownie wyschło. Odpowiedzią okazało się coś prostego w koncepcji, choć wymagającego mocy obliczeniowej: sieci wielowarstwowe.

Warstwy sieci — od wejścia do wyjścia

Sztuczna sieć neuronowa (ang. artificial neural network, w skrócie ANN) składa się z neuronów zorganizowanych w warstwy. Dane wchodzą jedną stroną, wynik pojawia się po drugiej, a pomiędzy dzieje się całe uczenie.

Warstwy sieci — od wejścia do wyjścia

Warstwa wejściowa nie przetwarza danych — przekazuje je dalej. Jej rozmiar odpowiada liczbie cech w danych wejściowych. Jeśli klasyfikujemy zdjęcia o rozdzielczości 28×28 pikseli (standard zbioru MNIST), warstwa wejściowa ma 784 neurony. Przy strukturach tabelarycznych z dziesięcioma kolumnami — dziesięć neuronów.

Warstwy ukryte to serce sieci. To tutaj sieć tworzy wewnętrzne reprezentacje danych — stopniowo abstrakcyjne wzorce. W klasycznej sieci feedforward sygnał płynie tylko do przodu: każdy neuron warstwy n jest połączony z każdym neuronem warstwy n+1. Głęboka sieć może mieć dziesiątki lub setki warstw ukrytych — stąd termin „deep learning” (głębokie uczenie).

Warstwa wyjściowa generuje końcowy wynik. Przy klasyfikacji binarnej ma jeden neuron z sigmoid. Przy klasyfikacji do dziesięciu klas (np. rozpoznawanie cyfr) — dziesięć neuronów z softmax, z których każdy daje prawdopodobieństwo przynależności do danej klasy.

Rozmiar i liczba warstw ukrytych to hiperparametry — decyzje projektowe, które mocno wpływają na zdolność sieci do generalizacji. Zbyt mała sieć nie nauczy się złożonych wzorców (underfitting), zbyt duża może bezmyślnie zapamiętać dane treningowe zamiast uczyć się reguł (overfitting).

Jak sieć neuronowa uczy się na błędach — propagacja wsteczna

Sieć neuronowa co to takiego bez zdolności do uczenia? Jedynie statyczny filtr. To backpropagation — propagacja wsteczna — sprawia, że sieć poprawia swoje wagi na podstawie popełnianych błędów.

Jak sieć neuronowa uczy się na błędach — propagacja wsteczna

Proces uczenia przebiega w kilku ściśle określonych krokach. Na początku wszystkie wagi inicjalizowane są losowo (lub według określonych schematów, jak inicjalizacja He dla ReLU). Następnie wykonywany jest forward pass: dane wejściowe przepływają przez kolejne warstwy, aż sieć wyprodukuje wynik.

Ten wynik porównujemy z oczekiwaną odpowiedzią za pomocą funkcji straty (loss function). Przy regresji typową miarą jest MSE (błąd średniokwadratowy), przy klasyfikacji — entropia krzyżowa. Im wyższy błąd, tym gorzej sieć radzi sobie na tym przykładzie.

Backpropagation liczy, w jaki sposób zmiana każdej wagi wpłynęłaby na zmniejszenie błędu. Robi to za pomocą reguły łańcuchowej różniczkowania — oblicza gradient funkcji straty względem każdej wagi w sieci, cofając się warstwę po warstwie od wyjścia do wejścia. Gradient wskazuje kierunek wzrostu błędu, więc wagi przesuwamy w przeciwnym kierunku.

Tę korektę wykonuje optymalizator. Klasyczny gradient descent aktualizuje wagi po przejściu przez cały zbiór treningowy. SGD (stochastic gradient descent) robi to po każdym przykładzie lub małej partii (mini-batch). Najpopularniejszy współcześnie Adam łączy adaptacyjne tempo uczenia z momentem, co sprawia, że zbiega szybciej i stabilniej niż klasyczne metody.

Tempo aktualizacji kontroluje learning rate — zbyt wysokie powoduje oscylacje i rozbieżność, zbyt niskie drastycznie wydłuża trening. Po każdym przejściu przez zbiór danych (epoce) cykl się powtarza, a błąd treningowy sukcesywnie maleje.

Typy sieci neuronowych i ich zastosowania

Nie wszystkie problemy wymagają tej samej architektury. Przez dekady badań wyłoniło się kilka typów sieci neuronowych, z których każdy dominuje w innym obszarze.

Sieci konwolucyjne — wzorce w przestrzeni

Sieci konwolucyjne (CNN, Convolutional Neural Networks) zaprojektowano z myślą o danych z przestrzenną strukturą — głównie obrazach, ale też dźwięku czy szeregach czasowych. Zamiast łączyć każdy neuron z każdym, CNN stosuje filtry konwolucyjne: małe macierze wag, które przesuwa się po całym obrazie, wykrywając lokalne cechy — krawędzie, tekstury, a w głębszych warstwach coraz bardziej złożone wzorce.

Przełomem była sieć AlexNet, która w 2012 roku wygrała konkurs ImageNet z przewagą kilkunastu punktów procentowych nad drugą w kolejności metodą opartą na tradycyjnym uczeniu maszynowym. To wydarzenie otworzyło erę deep learningu w zastosowaniach wizyjnych. Dziś CNN napędzają systemy autonomicznych pojazdów, detekcję zmian na zdjęciach satelitarnych i analizę obrazów medycznych.

Sieci rekurencyjne i LSTM — pamięć w danych sekwencyjnych

Klasyczne sieci feedforward przetwarzają każdy przykład niezależnie — nie „pamiętają” poprzednich kroków. Sieci rekurencyjne (RNN) rozwiązują ten problem przez pętle: wyjście z poprzedniego kroku staje się dodatkowym wejściem w kroku bieżącym.

Problem z klasycznymi RNN to zanikający gradient — przy długich sekwencjach sieć traci informacje z odległych kroków. LSTM (Long Short-Term Memory) rozwiązuje to przez mechanizm bramkowania: oddzielne struktury decydują, co zapamiętać, co zapomnieć i co przekazać dalej. LSTM przez lata dominowały w rozpoznawaniu mowy i tłumaczeniu maszynowym, zanim transformery (architektura stojąca za GPT czy BERT) nie wyprzedziły ich w większości zadań NLP.

Zestawienie głównych architektur w skrócie:

Typ sieciDomenaPrzykładowe zastosowanie
Feedforward (MLP)Dane tabelaryczneOcena zdolności kredytowej
CNNObraz, dźwiękKlasyfikacja zdjęć, ASR
RNN / LSTMSekwencje, szeregi czasoweTłumaczenie maszynowe
TransformerNLP, obrazModele językowe (GPT, BERT)

Od perceptronu Rosenblatta do renesansu deep learningu

Historia sztucznych sieci neuronowych to historia długich zim i gwałtownych wiosen. Perceptron Rosenblatta z 1958 roku wzbudził olbrzymi entuzjazm — prasa pisała o maszynach, które uczą się jak człowiek. Euforię szybko studziły ograniczenia: moc obliczeniowa epoki nie pozwalała trenować sieci z wieloma warstwami, a krytycy (vide Minsky i Papert) celnie wskazywali na matematyczne bariery.

Odrodzenie przyszło w latach 80., kiedy Geoffrey Hinton i współpracownicy spopularyzowali backpropagation jako praktyczny algorytm uczenia sieci wielowarstwowych. Pojawiły się pierwsze aplikacje — sieć NETtalk zamieniała tekst na mowę, LeNet-5 Yanna LeCuna rozpoznawała pisane cyfry na czekach bankowych już w latach 90. Jednak druga zima AI — spowodowana trudnościami z uczeniem głębokich sieci i rosnącą popularnością SVM — znów ograniczyła zainteresowanie.

Prawdziwy przełom nastąpił po 2006 roku. Hinton pokazał, że głębokie sieci da się skutecznie inicjalizować przez warstwowe pre-trenowanie. W 2009 roku Fei-Fei Li opublikowała ImageNet — bazę milionów oznaczonych zdjęć. W 2012 roku AlexNet, trenowana na GPU, rozsadziła benchmarki rozpoznawania obrazów. Od tego momentu deep learning rósł wykładniczo: liczba publikacji, dostępność bibliotek (TensorFlow, PyTorch), skala modeli.

  • Dostępność dużych zbiorów danych treningowych zrewolucjonizowała możliwości uczenia sieci.
  • GPU i dedykowane układy (TPU) skróciły czas treningu od tygodni do godzin.
  • Otwarte frameworki obniżyły próg wejścia z kilkunastu do jednego-dwóch lat nauki.
  • Modele pretrenowane (transfer learning) sprawiły, że nie każde zadanie wymaga danych od zera.

Renesans deep learningu nie wynikał z jednego odkrycia — to zbieg danych, mocy obliczeniowej i algorytmicznych drobnych ulepszeń, które razem dały efekt kuli śnieżnej. Dziś sztuczne sieci neuronowe przetwarzają więcej informacji dziennie niż cały internet generował dekadę temu, a ich możliwości nadal rosną szybciej, niż większość analityków prognozowała jeszcze pięć lat wstecz.

Natalia Grzybowska
Natalia Grzybowska
Junior SEO Specialist Natalia specjalizuje się w SEO, skupiając się na stabilnym wzroście widoczności stron w wynikach wyszukiwania. Z zaangażowaniem analizuje dane, optymalizuje treści i nieustannie szuka sposobów na poprawę pozycji w Google.
Popularne