Propagacja wsteczna w sieciach neuronowych: algorytm uczenia maszynowego i przykład
⚡ Inteligentne podsumowanie
Propagacja wsteczna to podstawowy algorytm treningowy sieci neuronowej, który dostraja każdą wagę błędu zmierzonego w poprzedniej epoce, dzięki czemu model lepiej generalizuje się na niewidzianych danych, warstwa po warstwie.
Co to jest sztuczna sieć neuronowa?
Sztuczna sieć neuronowa to grupa połączonych jednostek wejścia/wyjścia, gdzie każde połączenie ma swoją wagę. Pomaga ona budować modele predykcyjne z dużych baz danych, a jej konstrukcja zapożycza słownictwo z ludzkiego układu nerwowego. Sieci tego typu wspierają rozumienie obrazów, uczenie maszynowe, mowę komputerową i wiele innych zadań związanych z rozpoznawaniem wzorców.
Propagacja wsteczna to algorytm decydujący o tym, jakie powinny być te wagi, dlatego te dwie koncepcje najlepiej rozpatrywać łącznie.
Co to jest propagacja wsteczna?
Propagacja wsteczna stanowi istotę uczenia sieci neuronowych. Jest to metoda precyzyjnego dostrajania wag sieci neuronowej na podstawie współczynnika błędów uzyskanego w poprzedniej epoce (tj. iteracji). Prawidłowe dostrojenie wag pozwala zmniejszyć współczynniki błędów i zwiększyć wiarygodność modelu poprzez zwiększenie jego generalizacji.
Propagacja wsteczna w sieci neuronowej to skrót od „wstecznej propagacji błędów”. Jest to standardowa metoda uczenia sztucznych sieci neuronowych. Metoda ta pomaga obliczyć gradient funkcji straty w odniesieniu do wszystkich wag w sieci.
Dwa terminy są często mylone. Tylko propagacja wsteczna oblicza gradient; optymalizator taki jak gradient zstępujący to właściwie to, co zmiany wagi używające tego gradientu. Prawie każdy nowoczesny framework automatycznie przeprowadza propagację wsteczną za pomocą swojego silnika autodiff.
Jak działa algorytm propagacji wstecznej
Algorytm propagacji wstecznej w sieciach neuronowych oblicza gradient funkcji straty dla pojedynczej wagi zgodnie z regułą łańcuchową. W przeciwieństwie do prostego obliczenia bezpośredniego, efektywnie oblicza on jedną warstwę na raz. Oblicza gradient, ale nie definiuje sposobu jego wykorzystania. Uogólnia obliczenia w regule delta.
Reguła łańcuchowa zapewnia wydajność tego rozwiązania. Wpływ jednej z początkowych wag na ostateczną stratę jest iloczynem pochodnych lokalnych na drodze do wyjścia, więc algorytm buforuje pośredni wynik każdej warstwy w drodze powrotnej i ponownie go wykorzystuje dla każdej wagi w warstwie poniżej, zamiast przeliczać całą sieć według wagi.
Aby to zrozumieć, rozważ poniższy przykładowy diagram sieci neuronowej z propagacją wsteczną. Rysunek tracto jeden pełny przebieg: dane wejściowe trafiają z lewej strony, aktywacje przesuwają się do przodu przez ukrytą warstwę do wyjścia, a zmierzony błąd powraca tymi samymi połączeniami, aby skorygować wagi.
- Wejścia X docierają wstępnie podłączoną ścieżką
- Dane wejściowe modelowane są przy użyciu rzeczywistych wag W. Wagi dobierane są zazwyczaj losowo.
- Oblicz wynik dla każdego neuronu, począwszy od warstwy wejściowej, poprzez warstwy ukryte, aż do warstwy wyjściowej.
- Oblicz błąd w wynikach:
ErrorB= Actual Output – Desired Output
- Wróć z warstwy wyjściowej do warstwy ukrytej, aby dostosować wagi w taki sposób, aby zmniejszyć błąd.
- Powtarzaj proces aż do uzyskania pożądanego rezultatu.
Wiele podręczników podaje tę samą ilość pożądany minus rzeczywisty. Obie konwencje działają, ponieważ znak jest absorbowany, gdy optymalizator subskrybujetracchodzi o gradient, pod warunkiem, że zachowasz jedną konwencję w całej sieci.
W praktyce błąd rzadko jest gołym podrzędnymtracFunkcja straty, taka jak średni błąd kwadratowy w regresji lub entropia krzyżowa w klasyfikacji, konwertuje różnice dla poszczególnych wyników na pojedynczą liczbę, której wsteczna propagacja gradientu jest faktycznie obliczana.
Dlaczego potrzebujemy propagacji wstecznej?
Najbardziej widoczne zalety propagacji wstecznej to:
- Propagacja wsteczna jest szybka, prosta i łatwa do zaprogramowania
- Nie dodaje żadnych własnych nowych parametrów; dostrajanie, które wykonujesz, należy do optymalizatora i sieci, głównie do szybkości uczenia się i liczby wejść
- Jest to metoda elastyczna, gdyż nie wymaga wcześniejszej wiedzy o sieci
- Jest to standardowa metoda, która na ogół działa dobrze
- Aby się tego nauczyć, nie trzeba specjalnie wspominać o cechach funkcji.
Mówiąc prościej, bez wydajnego sposobu uzyskiwania gradientów, trenowanie czegokolwiek głębszego niż pojedyncza warstwa byłoby obliczeniowo niepraktyczne.
Co to jest sieć przesyłania dalej?
Sieć neuronowa z wyprzedzeniem to sztuczna sieć neuronowa, w której węzły nigdy nie tworzą cyklu. Ten rodzaj sieci neuronowej składa się z warstwy wejściowej, warstw ukrytych i warstwy wyjściowej. Jest to pierwszy i najprostszy rodzaj sztucznej sieci neuronowej.
To rozróżnienie ma tutaj znaczenie, ponieważ przebieg do przodu propagacji wstecznej jest dokładnie przebiegiem do przodu; tylko korekcja błędów przebiega w przeciwnym kierunku.
Rodzaje sieci propagacji wstecznej
Dwa typy sieci propagacji wstecznej to:
- Statyczna propagacja wsteczna
- Powtarzająca się propagacja wsteczna
Statyczna propagacja wsteczna
Jest to jeden z rodzajów sieci propagacji wstecznej, która generuje mapęping statycznego wejścia dla statycznego wyjścia. Jest to przydatne do rozwiązywania problemów z klasyfikacją statyczną, takich jak optyczne rozpoznawanie znaków.
Powtarzająca się propagacja wsteczna
Powtarzająca się propagacja wsteczna w data mining jest podawany do przodu, aż do osiągnięcia ustalonej wartości. Następnie błąd jest obliczany i propagowany wstecz.
Główną różnicą pomiędzy tymi dwiema metodami jest to, że mapaping jest szybki w statycznej propagacji wstecznej, a niestatyczny w rekurencyjnej propagacji wstecznej. Poniższa tabela zestawia te dwa zjawiska.
| Kryterium | Statyczna propagacja wsteczna | Powtarzająca się propagacja wsteczna |
|---|---|---|
| Mapaping | Statyczne wejście do statycznego wyjścia | Niestatyczny; sieć stabilizuje się przed użyciem błędu |
| Prędkość | Szybko, jedno przejście na próbkę | Wolniej, aktywacja jest powtarzana, aż do momentu stabilizacji |
| Kształt sieci | Sprzężenie zwrotne, brak cykli | Zawiera połączenia zwrotne |
| Typowe zastosowanie | Optyczne rozpoznawanie znaków, klasyfikacja o stałym rozmiarze | Problemy, których wynik zależy od ustalonego stanu wewnętrznego |
Historia wstecznej propagacji
- W 1961 roku J. Kelly, Henry Arthur i E. Bryson wyprowadzili podstawową koncepcję ciągłej propagacji wstecznej w kontekście teorii sterowania.
- W 1969 roku Bryson i Ho opracowali wieloetapową metodę dynamicznej optymalizacji systemu.
- W 1970 roku Seppo Linnainmaa opublikował odwrotny tryb automatycznego różniczkowania, metodę obliczeniową, na której opiera się współczesna propagacja wsteczna.
- W 1974 Werbos stwierdził możliwość zastosowania tej zasady w sztucznej sieci neuronowej.
- W 1982 roku Hopfield przedstawił swój pomysł sieci neuronowej.
- W 1986 roku, dzięki staraniom Davida E. Rumelharta, Geoffreya E. Hintona, Ronalda J. Williamsa, propagacja wsteczna zyskała uznanie.
- W 1989 roku Yann LeCun i jego współpracownicy nauczyli sieć konwolucyjną z wykorzystaniem propagacji wstecznej odczytywać ręcznie pisane cyfry. Było to jedno z pierwszych zastosowań praktycznych na dużą skalę.
- W 1993 roku Wan jako pierwsza osoba wygrała międzynarodowy konkurs rozpoznawania wzorców za pomocą metody propagacji wstecznej.
- W 2006 r. prace Hintona nad głębokimi sieciami przekonań i wstępnym trenowaniem warstwowym rozbudziły na nowo zainteresowanie trenowaniem głębokich sieci, które wcześniej zanikło z powodu zanikających gradientów.
- W 2010 roku Xavier Glorot i Yoshua Bengio przeanalizowali, dlaczego sieci głębokie są trudne do trenowania i wprowadzili ulepszoną inicjalizację wag, która wraz z aktywacjami ReLU sprawiła, że głęboka propagacja wsteczna stała się praktyczna.
- W 2012 roku AlexNet (Krizhevsky, Sutskever i Hinton) wygrał konkurs ImageNet, wykorzystując akcelerowaną przez GPU propagację wsteczną, co zapoczątkowało współczesny boom na głębokie uczenie się.
- W 2014 r. wprowadzono optymalizator Adam (Kingma i Ba), który szybko stał się domyślną odmianą metody gradientu zstępującego stosowaną w propagacji wstecznej.
- W 2015 roku normalizacja wsadowa i sieci resztkowe (ResNet) rozwiązały problemy przepływu gradientowego w bardzo głębokich sieciach, umożliwiając propagację wsteczną przez setki warstw.
- W latach 2015–2017 TensorFlow i PyTorch uczynił automatyczne różnicowanie standardową funkcją oprogramowania, dzięki czemu gradienty nie musiały być już wyprowadzane ręcznie.
- W 2017 r. wprowadzono architekturę Transformer, która jest trenowana od początku do końca z wykorzystaniem propagacji wstecznej, podobnie jak duże modele językowe zbudowane na niej.
- W 2019 roku Bengio, Hinton i LeCun otrzymali nagrodę ACM AM Turing Award za pracę nad głębokimi sieciami neuronowymi.
- W 2020 roku w artykule „Backpropagation and the Brain” (Lillicrap, Santoro, Marris, Akerman i Hinton) przedstawiono tezę, że mózg może przypominać uczenie się metodą propagacji wstecznej, co ponownie otworzyło debatę na temat wiarygodności biologicznej tego zjawiska.
- W 2022 roku Hinton zaproponował algorytm Forward-Forward, metodę szkoleniową całkowicie zapobiegającą podaniom wstecznym.
- W 2024 roku John Hopfield i Geoffrey Hinton otrzymali Nagrodę Nobla w dziedzinie fizyki za fundamentalne odkrycia, które umożliwiły uczenie maszynowe za pomocą sztucznych sieci neuronowych.
- W roku 2025 metody „do przodu-do przodu” rozszerzono na sieci splotowe, co pokazało, że uczenie bez propagacji wstecznej może być skuteczne w zadaniach klasyfikacji obrazów.
- Od 2026 r. propagacja wsteczna pozostaje standardowym algorytmem szkoleniowym dla praktycznie wszystkich modeli głębokiego uczenia, podczas gdy wciąż trwają badania nad metodami uczenia bez gradientów, lokalnymi i równoległymi, które zmniejszają zapotrzebowanie na pamięć i koszty obliczeniowe.
Kluczowe punkty dotyczące propagacji wstecznej
- Uproszczenie struktury sieci poprzez usunięcie ważonych łączy, które mają najmniejszy wpływ na trenowaną sieć
- Należy przestudiować grupę wartości wejściowych i aktywacyjnych, aby opracować relację między wejściową i ukrytą warstwą jednostek.
- Pomaga ocenić wpływ, jaki dana zmienna wejściowa ma na wynik sieci. Wiedzę zdobytą w wyniku tej analizy należy przedstawić w postaci reguł.
- Propagacja wsteczna jest szczególnie przydatna w przypadku głębokich sieci neuronowych pracujących nad projektami podatnymi na błędy, takimi jak rozpoznawanie obrazu lub mowy.
- Propagacja wsteczna wykorzystuje reguły łańcuchowe i potęgowe, co pozwala jej działać z dowolną liczbą wyjść.
Najlepsze praktyki w zakresie propagacji wstecznej
Propagację wsteczną w sieciach neuronowych można wyjaśnić za pomocą analogii do „sznurowadła”. Aktualizacja ciężaru zachowuje się podobnie jak naprężenie sznurowadła: zbyt mała – nic się nie trzyma, zbyt duża – coś pęka.
| Napięcie koronki | Co to oznacza podczas treningu |
|---|---|
| Za małe napięcie | Zbyt mało ograniczeń i bardzo luźno — model nie pasuje |
| Zbyt duże napięcie | Zbyt duże ograniczenia (przetrenowanie); zbyt długi czas trwania (stosunkowo powolny proces); większe prawdopodobieństwo złamania |
| Ciągnięcie jednej koronki mocniej niż drugiej | Dyskomfort (błąd) – jedna część sieci dominuje nad dopasowaniem |
Z tej analogii wynikają dwa praktyczne nawyki: skaluj dane wejściowe przed rozpoczęciem treningu, tak aby żadna pojedyncza cecha nie wymagała większego wysiłku niż pozostałe, oraz obserwuj utratę walidacji, aby napięcie zostało rozładowane zanim dojdzie do przetrenowania.
Wady stosowania propagacji wstecznej
- Rzeczywista wydajność propagacji wstecznej w przypadku konkretnego problemu zależy od danych wejściowych.
- Algorytm propagacji wstecznej w eksploracji danych może być dość wrażliwy na zaszumione dane
- W przypadku mini partii propagację wsteczną należy wdrożyć przy użyciu podejścia opartego na macierzy;ping pojedynczo jest zauważalnie wolniejsze.
- W głębokich sieciach wielokrotne mnożenie małych pochodnych może zmniejszać gradienty w kierunku zera, przez co najwcześniejsze warstwy ledwo się uczą — problem zanikającego gradientu opisany w Google Awaryjny kurs uczenia maszynowego.
Żadna z tych rzeczy nie wyklucza tej metody. To właśnie z tych powodów praktycy sięgają po aktywacje ReLU, normalizację i precyzyjne harmonogramy tempa uczenia się, gdy przechodzą z płytkiej sieci do sieci głęboka nauka model.

