Różnice między technikami propagacji zwrotnej


17

Dla zabawy próbuję rozwinąć sieć neuronową.

Teraz dla propagacji wstecznej widziałem dwie techniki.

Pierwszy jest używany tutaj i w wielu innych miejscach.

Co to robi:

  • Oblicza błąd dla każdego neuronu wyjściowego.
  • Propaguje go z powrotem do sieci (obliczając błąd dla każdego wewnętrznego neuronu).
  • Aktualizuje wagi za pomocą wzoru: (gdzie jest zmiana masy, szybkość uczenia się, błąd neuronu odbierającego sygnał wejściowy z synapsy i będący wynikiem wysyłanym przez synapsę).
  • Powtarza się dla każdego wpisu zestawu danych tyle razy, ile jest to wymagane.

Jednak sieć neuronowa zaproponowana w tym samouczku (dostępna również na GitHub) używa innej techniki:

  • Wykorzystuje funkcję błędu (druga metoda ma funkcję błędu, ale nie używa jej do szkolenia).
  • Ma inną funkcję, która może obliczyć błąd końcowy, zaczynając od wag.
  • Minimalizuje tę funkcję (poprzez opadanie gradientu).

Którą metodę należy zastosować?

Myślę, że pierwszy jest najczęściej używany (ponieważ widziałem różne przykłady z jego użyciem), ale czy on również działa?

W szczególności nie wiem:

  • Czy nie podlega bardziej lokalnym minimum (ponieważ nie używa funkcji kwadratowych)?
  • Ponieważ na zmianę każdej masy wpływa wartość wyjściowa jej neuronu wyjściowego, czy wpisy zestawu danych, które akurat wytwarzają wyższe wartości w neuronach (nie tylko wyjściowych), mają większy wpływ na wagi niż inne wpisy?

Teraz wolę pierwszą technikę, ponieważ łatwiej mi ją wdrożyć i łatwiej o niej myśleć.

Chociaż, jeśli występują problemy, o których wspomniałem (a mam nadzieję, że tak nie jest), czy istnieje jakiś faktyczny powód, aby używać go w stosunku do drugiej metody?

Odpowiedzi:


6

Dwa przykłady przedstawiają zasadniczo tę samą operację:

  • W obu przypadkach sieć jest trenowana z opadaniem gradientu z wykorzystaniem błędu kwadratu propagowanego wstecz, obliczonego na wyjściu.
  • Oba przykłady wykorzystują funkcję logistyczną do aktywacji węzła (pochodną funkcji logistycznej sjest s(1 - s). Ta pochodna jest oczywiście bardzo łatwa do obliczenia, i jest to część powodu, dla którego była tak szeroko stosowana (obecnie obecnie funkcja aktywacji ReLU jest bardziej popularna , szczególnie w sieciach splotowych).
  • Pierwsza metoda wykorzystuje również pęd .

Główną różnicą, którą widzę, jest to, że w pierwszym przypadku propagacja wsteczna jest iteracyjna, podczas gdy w drugim przykładzie jest wykonywana w trybie wsadowym.

Ostatni film z serii Welch Labs przedstawia quasi-newtonowską metodę, która oferuje przewagę polegającą na znalezieniu minimum funkcji kosztu poprzez obliczenie Hesji (macierz pochodnych drugiego rzędu błędu w odniesieniu do wag). Jednak wydaje się, że porównuje się jabłka i pomarańcze - pochodzenie gradientu waniliowego nie wykorzystuje informacji drugiego rzędu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.