- Dlaczego w sieciach neuronowych wykorzystywane są węzły stronniczości?
- Ile powinieneś użyć?
- Na jakich warstwach należy ich użyć: wszystkie ukryte warstwy i warstwa wyjściowa?
Odpowiedzi:
Węzeł polaryzacji w sieci neuronowej jest węzłem, który jest zawsze „włączony”. Oznacza to, że jego wartość jest ustawiona na bez względu na dane w danym wzorze. Jest analogiczny do przechwytywania w modelu regresji i pełni tę samą funkcję. Jeśli sieć neuronowa nie ma węzła polaryzacji w danej warstwie, nie będzie w stanie wygenerować wyniku w następnej warstwie, która różni się od 0 (w skali liniowej lub wartości odpowiadającej transformacji 0 po przejściu przez funkcja aktywacji), gdy wartości funkcji wynoszą 0 .
Rozważ prosty przykład: masz perceptron przekazywania z 2 węzłami wejściowymi i x 2 oraz 1 węzłem wyjściowym y . x 1 i x 2 są funkcjami binarnymi ustawionymi na poziomie odniesienia, x 1 = x 2 = 0 . Pomnóż te 2 0 przez dowolną wagę, w 1 i w 2 , zsumuj produkty i przekaż je przez dowolną preferowaną funkcję aktywacji. Bez węzła stronniczości tylko jedenmożliwa jest wartość wyjściowa, co może powodować bardzo słabe dopasowanie. Na przykład, używając funkcji aktywacji logistycznej, musi wynosić .5 , co byłoby okropne przy klasyfikowaniu rzadkich zdarzeń.
Węzeł stronniczości zapewnia znaczną elastyczność modelowi sieci neuronowej. W powyższym przykładzie jedyną przewidywaną proporcją możliwą bez węzła stronniczości było , ale w przypadku węzła stronniczości dowolna proporcja w ( 0 , 1 ) może być dopasowana do wzorów, w których x 1 = x 2 = 0 . Dla każdej warstwy j , w której dodawany jest węzeł polaryzacji, węzeł polaryzacji doda N j + 1 dodatkowe parametry / wagi do oszacowania (gdzie N j + 1 to liczba węzłów w warstwie j ). Więcej parametrów do zainstalowania oznacza, że szkolenie sieci neuronowej potrwa proporcjonalnie dłużej. Zwiększa także szansę na przeregulowanie, jeśli nie masz znacznie więcej danych niż wag do nauczenia się.
Mając to na uwadze, możemy odpowiedzieć na Twoje wyraźne pytania:
Proste, krótkie odpowiedzi:
W kilku eksperymentach w mojej pracy magisterskiej (np. Str. 59) stwierdziłem, że stronniczość może być ważna dla pierwszej (ych) warstwy (warstw), ale szczególnie na w pełni połączonych warstwach na końcu wydaje się, że nie odgrywa ona dużej roli. Dlatego można je mieć na pierwszych kilku warstwach, a nie na ostatnich. Po prostu wytrenuj sieć, wykreśl rozkład wag węzłów polaryzacji i przycinaj je, jeśli wagi wydają się zbyt bliskie zeru.
Może to być bardzo zależne od architektury sieci / zestawu danych.
1
wartości w poprzedniej warstwie i jednej wagi (jedna wartość odchylenia) dla każdej z następnych warstw neuronów.
W kontekście sieci neuronowych normalizacja partii jest obecnie złotym standardem w tworzeniu inteligentnych „węzłów polaryzacji”. Zamiast ograniczać wartość odchylenia neuronu, dostosowujesz kowariancję danych wejściowych neuronu. Tak więc w CNN można zastosować normalizację wsadową tylko między warstwą splotową a kolejną w pełni połączoną warstwą (powiedzmy ReLus). Teoretycznie wszystkie w pełni połączone warstwy mogą skorzystać z normalizacji partii, ale w praktyce staje się to bardzo kosztowne, ponieważ każda normalizacja partii ma swoje własne parametry.
Odnośnie do tego, dlaczego większość odpowiedzi już wyjaśniła, że w szczególności neurony są podatne na nasycone gradienty, gdy sygnał wejściowy popycha aktywację do skrajności. W przypadku ReLu zostanie to przesunięte w lewo, dając gradient 0. Ogólnie, kiedy trenujesz model, najpierw normalizujesz dane wejściowe do sieci neuronowej. Normalizacja partii to sposób na normalizację danych wejściowych w sieci neuronowej, między warstwami.