Propagacja wsteczna to metoda, której sieci neuronowe używają do obliczania gradientów: o ile zmieniłaby się strata, gdyby nieco zmienić każdą wagę lub bias. Mówiąc prościej, mówi modelowi, które parametry przesunęły predykcję w złą stronę i o ile.
Krótka wersja jest prosta: uruchamiasz sieć w przód, mierzysz błąd, a potem cofasz się przez te same obliczenia, używając reguły łańcuchowej. Dzięki temu głęboki model staje się łatwiejszy do opanowania, bo każda warstwa wnosi tylko małą lokalną pochodną.
Co oblicza propagacja wsteczna
Propagacja wsteczna nie aktualizuje parametrów sama z siebie. Oblicza gradienty takie jak i , gdzie to strata. Optymalizator, taki jak spadek gradientowy, używa tych gradientów do wykonania właściwej aktualizacji.
Jeśli model i funkcja straty są różniczkowalne, albo przynajmniej odcinkowo różniczkowalne na tyle, by działały metody gradientowe, propagacja wsteczna pozwala efektywnie obliczyć te gradienty w jednym przejściu wstecz.
Dlaczego reguła łańcuchowa jest kluczową ideą
Pomyśl o sieci neuronowej jak o długim łańcuchu obliczeń. Każda warstwa bierze wejście, przekształca je i przekazuje wynik do następnej warstwy. Gdy docierasz do straty, końcowy błąd zależy od każdej wcześniejszej decyzji.
Propagacja wsteczna zadaje lokalne pytanie na każdym kroku: jeśli ta wartość pośrednia trochę by się zmieniła, to jak zmieniłaby się końcowa strata? Te lokalne efekty mnożą się ze sobą, gdy cofasz się wstecz. To właśnie reguła łańcuchowa opisana prostym językiem.
Przykład propagacji wstecznej z jednym neuronem
Użyjmy jednego neuronu z jednym wejściem:
Tutaj to wejście, to waga, to bias, to predykcja, to wartość docelowa, a to funkcja sigmoidalna.
Przyjmijmy
Krok 1: Przejście w przód
Najpierw oblicz ważoną sumę neuronu:
Teraz zastosuj sigmoidalną:
Teraz oblicz stratę:
Predykcja jest poniżej wartości docelowej, więc strata jest dodatnia.
Krok 2: Przejście wstecz
Teraz oblicz gradient względem wagi.
Zacznij od straty i przechodź do środka:
Dla sigmoidalnej,
A dla ważonej sumy,
Teraz połącz te elementy razem:
Podstaw liczby:
Znaki ujemne mają znaczenie. Mówią, że niewielkie zwiększenie lub zmniejszyłoby tutaj stratę, co pasuje do sytuacji, bo obecna predykcja jest zbyt niska.
Jeśli użyjesz spadku gradientowego ze współczynnikiem uczenia , to
To cała idea w miniaturze: przejście w przód, strata, przejście wstecz, aktualizacja.
Dlaczego propagacja wsteczna działa w głębokich sieciach
W głębszej sieci robisz dokładnie to samo, warstwa po warstwie. Główna różnica polega na tym, że każda warstwa ukryta wpływa na stratę pośrednio przez późniejsze warstwy, więc jej gradient zawiera więcej czynników z reguły łańcuchowej.
Propagacja wsteczna pozostaje praktyczna, bo każda warstwa potrzebuje tylko swojej lokalnej pochodnej i sygnału przychodzącego z warstwy po niej. Nie trzeba od nowa wyprowadzać całej sieci dla każdego parametru.
Typowe błędy w propagacji wstecznej
Mylenie propagacji wstecznej ze spadkiem gradientowym
Propagacja wsteczna oblicza gradienty. Spadek gradientowy używa tych gradientów do aktualizacji parametrów. Są ze sobą ściśle powiązane, ale nie są tym samym krokiem.
Zapominanie, że strata znajduje się na końcu
Przejście wstecz zaczyna się od straty, a nie od dowolnej warstwy ukrytej. Jeśli stracisz z oczu to, od czego zależy strata, łańcuch pochodnych zwykle się urywa.
Ignorowanie zachowania funkcji aktywacji
Niektóre funkcje aktywacji dają bardzo małe gradienty w pewnych obszarach. Jeśli dzieje się tak wielokrotnie w wielu warstwach, uczenie może stać się powolne.
Zakładanie, że jedno przejście wstecz oznacza, że model już się nauczył
Jedno przejście wstecz daje jeden zestaw gradientów dla jednej partii danych. Trenowanie zwykle wymaga wielu aktualizacji na wielu przykładach.
Kiedy używa się propagacji wstecznej
Propagacja wsteczna to standardowa metoda obliczania gradientów przy trenowaniu wielu sieci neuronowych, w tym perceptronów wielowarstwowych, sieci konwolucyjnych, modeli rekurencyjnych i transformerów.
Dokładny optymalizator może się zmieniać, a niektóre architektury dodają praktyczne sztuczki, ale podstawowa idea zwykle pozostaje taka sama: obliczyć stratę, propagować gradienty wstecz i aktualizować parametry, aby zmniejszyć przyszły błąd.
Praktyczny sposób, by to zapamiętać
Propagacja wsteczna to uporządkowany sposób przypisywania zasług i winy wewnątrz modelu warstwowego. Jeśli wyjście jest błędne, metoda śledzi ten błąd wstecz, tak aby każdy parametr dostał sygnał o tym, jak się do niego przyczynił.
Dlatego określenie „jak uczą się sieci neuronowe” jest w dużej mierze trafne. Uczenie zachodzi przez wielokrotne aktualizacje parametrów, a propagacja wsteczna sprawia, że te aktualizacje są oparte na informacji, a nie losowe.
Spróbuj podobnego zadania
Zachowaj ten sam przykład, ale zmień wartość docelową z na . Oblicz ponownie i , a potem sprawdź, jak zmieniają się znaki. Ta jedna zmiana pokazuje rolę straty znacznie wyraźniej niż samo zapamiętywanie wzorów.
Potrzebujesz pomocy z zadaniem?
Prześlij pytanie i otrzymaj zweryfikowane rozwiązanie krok po kroku w kilka sekund.
Otwórz GPAI Solver →