AI 101
Co to jest propagacja wsteczna?

Co to jest propagacja wsteczna?
Systemy głębokiego uczenia się są w stanie nauczyć się bardzo złożonych wzorców, a osiągają to, dostosowując swoje wagi. Jak dokładnie są dostosowywane wagi głębokiej sieci neuronowej? Są dostosowywane za pomocą procesu zwanego propagacją wsteczną. Bez propagacji wstecznej, głębokie sieci neuronowe nie byłyby w stanie wykonywać zadań takich jak rozpoznawanie obrazów i interpretowanie języka naturalnego. Zrozumienie, jak działa propagacja wsteczna, jest kluczowe do zrozumienia głębokich sieci neuronowych w ogóle, więc omówmy propagację wsteczną i zobaczmy, jak proces jest używany do dostosowania wag sieci.
Propagacja wsteczna może być trudna do zrozumienia, a obliczenia używane do wykonania propagacji wstecznej mogą być dość złożone. Artykuł ten będzie starał się dać Ci intuicyjne zrozumienie propagacji wstecznej, używając niewielkiej ilości skomplikowanej matematyki. Jednak pewna dyskusja na temat matematyki za propagacją wsteczną jest konieczna.
Cel propagacji wstecznej
Zacznijmy od zdefiniowania celu propagacji wstecznej. Wagi głębokiej sieci neuronowej są siłą połączeń między jednostkami sieci neuronowej. Kiedy sieć neuronowa jest ustanowiona, zakłada się pewne założenia dotyczące połączeń między jednostkami w jednej warstwie a warstwami połączonymi z nią. Kiedy dane przechodzą przez sieć neuronową, wagi są obliczane, a założenia są robione. Kiedy dane docierają do ostatniej warstwy sieci, robiona jest predykcja dotycząca tego, jak cechy są powiązane z klasami w zbiorze danych. Różnica między przewidywanymi wartościami a rzeczywistymi wartościami jest błędem/stratą, a celem propagacji wstecznej jest zmniejszyć stratę. To jest osiągane przez dostosowanie wag sieci, czyniąc założenia bardziej podobnymi do prawdziwych relacji między cechami wejściowymi.
Szkolenie głębokiej sieci neuronowej
Przed wykonaniem propagacji wstecznej na sieci neuronowej, musi zostać wykonany regularny/przedni przebieg szkolenia sieci neuronowej. Kiedy sieć neuronowa jest tworzona, zestaw wag jest inicjowany. Wartość wag będzie zmieniana podczas szkolenia sieci. Przedni przebieg szkolenia sieci neuronowej można postrzegać jako trzy odrębne kroki: aktywacja neuronu, transfer neuronu i propagacja w przód.
Kiedy szkolimy głęboką sieć neuronową, musimy użyć wielu funkcji matematycznych. Neurony w głębokiej sieci neuronowej składają się z danych wejściowych i funkcji aktywacji, która określa wartość niezbędną do aktywacji węzła. Wartość aktywacji neuronu jest obliczana z kilku składników, będąc ważoną sumą wejść. Wagi i wartości wejściowe zależą od indeksu węzłów używanych do obliczania aktywacji. Inna liczba musi być brana pod uwagę przy obliczaniu wartości aktywacji, wartość biasu. Wartości biasu nie zmieniają się, więc nie są mnożone razem z wagą i wejściami, są po prostu dodawane. To wszystko oznacza, że następujące równanie mogłoby być użyte do obliczania wartości aktywacji:
Aktywacja = suma(waga * wejście) + bias
Po aktywacji neuronu, funkcja aktywacji jest używana do określenia, jaki będzie rzeczywisty wynik neuronu. Różne funkcje aktywacji są optymalne dla różnych zadań uczenia, ale powszechnie używane funkcje aktywacji obejmują funkcję sigmoidalną, funkcję tangens hiperboliczny i funkcję ReLU.
Kiedy wyniki neuronu są obliczane przez przeprowadzenie wartości aktywacji przez pożądaną funkcję aktywacji, propagacja w przód jest wykonana. Propagacja w przód jest po prostu pobieraniem wyników jednej warstwy i robieniem ich wejściami następnej warstwy. Nowe wejścia są następnie używane do obliczania nowych funkcji aktywacji, a wynik tej operacji jest przekazywany do następnej warstwy. Ten proces jest kontynuowany aż do końca sieci neuronowej.
Propagacja wsteczna w sieci
Proces propagacji wstecznej pobiera ostateczne decyzje przebiegu szkolenia modelu, a następnie określa błędy w tych decyzjach. Błędy są obliczane przez porównywanie wyników/decyzji sieci i oczekiwanych/pożądanych wyników sieci.
Kiedy błędy w decyzjach sieci są obliczone, ta informacja jest propagowana wstecznie przez sieć, a parametry sieci są zmieniane w trakcie. Metoda, która jest używana do aktualizacji wag sieci, opiera się na rachunku różniczkowym, konkretnie, opiera się na regule łańcuchowej. Jednak zrozumienie rachunku różniczkowego nie jest konieczne do zrozumienia idei za propagacją wsteczną. Po prostu wiedz, że kiedy wartość wyjściowa jest podana z neuronu, nachylenie wartości wyjściowej jest obliczane z funkcją transferu, wytwarzając pochodną. Kiedy wykonujemy propagację wsteczną, błąd dla konkretnego neuronu jest obliczany zgodnie z następującym wzorem:
błąd = (wartość_oczekiwana – wartość_aktualna) * nachylenie wartości wyjściowej neuronu
Kiedy operujemy na neuronach w warstwie wyjściowej, wartość klasy jest używana jako wartość oczekiwana. Po obliczeniu błędu, błąd jest używany jako wejście dla neuronów w warstwie ukrytej, co oznacza, że błąd dla tej warstwy ukrytej jest ważonym błędem neuronów znalezionych w warstwie wyjściowej. Obliczenia błędów podróżują wstecznie przez sieć wzdłuż wag sieci.
Po obliczeniu błędów dla sieci, wagi w sieci muszą być zaktualizowane. Jak wspomniano, obliczanie błędu obejmuje określenie nachylenia wartości wyjściowej. Po obliczeniu nachylenia, proces znany jako gradientowy zstępowania może być użyty do dostosowania wag w sieci. Gradient jest nachyleniem, którego kąt/steepness może być zmierzony. Nachylenie jest obliczane przez naniesienie “y nad” lub “wzrost” nad “biegiem”. W przypadku sieci neuronowej i stopy błędu “y” jest obliczonym błędem, podczas gdy “x” są parametry sieci. Parametry sieci mają relację do obliczonych wartości błędu, a podczas dostosowywania wag sieci błąd wzrasta lub maleje.
“Gradientowy zstępowania” jest procesem aktualizacji wag, tak aby stopa błędu zmalała. Propagacja wsteczna jest używana do przewidywania relacji między parametrami sieci neuronowej a stopą błędu, co przygotowuje sieć do gradientowego zstępowania. Szkolenie sieci z gradientowym zstępowaniem obejmuje obliczanie wag przez propagację w przód, propagację wsteczną błędu, a następnie aktualizację wag sieci.












