Dlaczego propagacja wsteczna nie działa po zainicjowaniu wag o tej samej wartości?

20

Dlaczego propagacja wsteczna nie działa, gdy inicjujesz całą wagę o tej samej wartości (powiedzmy 0,5), ale działa dobrze, gdy otrzymujesz liczby losowe?

Czy algorytm nie powinien obliczyć błędu i działać stamtąd, mimo że początkowo wagi są takie same?

użytkownik1724140
źródło

Odpowiedzi:

26

Łamanie symetrii.

Jeśli wszystkie wagi zaczynają się od jednakowych wartości, a rozwiązanie wymaga opracowania nierównych wag, system nigdy się nie nauczy.

Wynika to z tego, że błąd jest propagowany z powrotem przez wagi proporcjonalnie do wartości wag. Oznacza to, że wszystkie ukryte jednostki podłączone bezpośrednio do jednostek wyjściowych otrzymają identyczne sygnały błędów, a ponieważ zmiany masy zależą od sygnałów błędów, wagi od tych jednostek do jednostek wyjściowych muszą zawsze być takie same. System zaczyna się od rodzaju niestabilnego punktu równowagi, który utrzymuje wagi na tym samym poziomie, ale jest wyższy niż niektóre sąsiednie punkty na powierzchni błędu, a kiedy odejdzie do jednego z tych punktów, nigdy nie powróci. Przeciwdziałamy temu problemowi, uruchamiając system z małymi losowymi wagami. W tych warunkach tego rodzaju problemy z symetrią nie występują.

To
źródło
Więc początkowe wagi NN nie tylko determinują prędkość, z jaką trenuje, ale mogą być również przyczyną uczenia się lub nie uczenia się?
user1724140
2
Tak, czasami nie trenujemy (na przykład sieci neuronowej) na jednym zestawie obciążeń. Jeśli mamy czas, jedną powszechną rzeczą do zrobienia jest stworzenie kilku różnych konfiguracji masy początkowej i wyszkolenie w niej sieci. Ponieważ czasami może się zdarzyć, że jedna konfiguracja zakończy się lokalnymi optymami lub waga nie będzie tak naprawdę losowa.
ThiS,
Czy to nie jest złe, ponieważ różne dane wejściowe mogą nadal zaburzać symetrię. patrz: open.wolframcloud.com/env/…
user3180
12

Aby dodać do odpowiedzi Thierry'ego, możesz pomyśleć o błędzie jako funkcji wektora ciężaru, tj. Jako funkcji z którą chciałbyś zminimalizować. Algorytm wstecznej propagacji działa, patrząc na lokalne sąsiedztwo punktu i sprawdzając, który kierunek doprowadzi do mniejszego błędu. To da ci lokalne minimum.RnR

To, czego chcesz, to globalne minimum, ale nie masz gwarantowanego sposobu na znalezienie tego. A jeśli twoja powierzchnia ma kilka lokalnych minimów, możesz mieć kłopoty.

Ale jeśli ma tylko kilka, strategia Thierry'ego powinna zadziałać - wielokrotne wyszukiwanie lokalnych minimów, zaczynając od losowo wybranych punktów, powinno zwiększyć szanse na znalezienie globalnego minimum.

I w szczęśliwym przypadku, w którym jest tylko jedno minimum - każdy początkowy wektor ciężaru doprowadzi Cię do tego.

Rohit Chatterjee
źródło