Wybór ukrytej funkcji aktywacji sieci neuronowej

14

Czytałem gdzie indziej, że czyjś wybór ukrytej funkcji aktywacji warstwa w NN powinny opierać się na własnej potrzeby , czyli jeśli potrzebna wartości w przedziale od -1 do 1 TANH użytkowania i użytkowania esicy dla zakresu od 0 do 1.

Moje pytanie brzmi: skąd wiadomo, czego potrzeba ? Czy jest to oparte na zakresie warstwy wejściowej, np. Użyj funkcji, która może obejmować pełny zakres wartości warstwy wejściowej, czy w jakiś sposób odzwierciedla rozkład warstwy wejściowej (funkcja Gaussa)? Czy też potrzeba specyficznego problemu / dziedziny oraz własnego doświadczenia / oceny jest wymagana do dokonania tego wyboru? Czy jest to po prostu „użycie tego, co daje najlepszy sprawdzony krzyżowo minimalny błąd szkolenia?”

czytnik babelproofreader
źródło
3
Argument ten jest bs, ponieważ (tanh + 1) / 2 występuje również w 0-1, nie wspominając już o tym, że „sigmoid” jest tak niejasnym terminem, że dość często obejmuje tanh.
Prawdopodobnie warto wspomnieć, że każdy zestaw danych można znormalizować do 0-> 1 i użyć aktywacji sigmoidalnej 1 + (1 / exp(-sum)). Dokonywanie potrzebę bardzo trudne do zrozumienia bez próby zarówno na każdego zestawu danych. Potrzeba , jak opisać to tutaj jest przywiązany do rzeczywistego stosunku uczonego, tj binarny zestaw danych będzie uczyć się szybciej lub w ogóle nie korzystają z różnych aktywacji.
Adrian Seeley

Odpowiedzi:

12

LeCun omawia to w Sekcja 4.4 Efektywnego Backpropa . Motywacja jest podobna do motywacji do normalizacji danych wejściowych do średniej zerowej (sekcja 4.3). Średnie wartości wyjściowe funkcji aktywacji tanh są bardziej zbliżone do zera niż sigmoid, którego średnia moc wyjściowa musi być dodatnia.

użytkownik1149913
źródło
Bardzo pouczająca lektura!
Babelproofreader
6

Potrzeba wymieniona w pierwszym akapicie pytania dotyczy funkcji aktywacji warstwy wyjściowej , a nie funkcji aktywacji warstwy ukrytej. Posiadanie wyników w zakresie od 0 do 1 jest wygodne, ponieważ oznacza to, że mogą bezpośrednio przedstawiać prawdopodobieństwa. Jednak IIRC, sieć z funkcjami aktywacji warstwy wyjściowej może zostać w prosty sposób przekształcona w sieć z logistyczną funkcją aktywacji warstwy wyjściowej, więc w rzeczywistości nie ma to większego znaczenia w praktyce.

IIRC powód zastosowania tanh zamiast logistycznej funkcji aktywacji w ukrytych jednostkach, to znaczy, że zmiana dokonana na wadze za pomocą propagacji wstecznej zależy zarówno od wyjścia neuronu ukrytej warstwy, jak i od pochodnej funkcji aktywacji, więc przy użyciu aktywacji logistycznej możesz jednocześnie ustawić zero na zero, co może doprowadzić do zamrożenia jednostki ukrytej warstwy.

W skrócie, użyj tanh dla funkcji aktywacji warstwy ukrytej, wybierz funkcję aktywacji warstwy wyjściowej, aby wymusić pożądane ograniczenia na wyjściu (popularne opcje: liniowy - bez ograniczeń, logistyka - wynik leży między 0 a 1 i wykładniczy - wynik ściśle dodatni).

Dikran Torbacz
źródło
Nie rozumiem „... oba mają zero” ... Widzę, że wynik może wynosić zero, ale w jaki sposób możliwe jest, aby pochodna funkcji logistycznej osiągnęła zero, tak jak nie.
erogol
nie idzie dokładnie do zera, dla funkcji logistycznej staje się po prostu bardzo mały. W przypadku funkcji tanh pochodna jest największa, gdy wartość wyjściowa wynosi zero, a wyjściowa jest największa, gdy pochodna jest najmniejsza. Oryginalny artykuł został napisany pod koniec lat 80., zobaczę, czy pamiętam szczegóły.
Dikran Marsupial
2
Nie mogę znaleźć oryginalnego papieru, ale niektóre artykuły w książce „Neural Networks - Tricks of the Trade” sugerują, że tanh jest lepszy w ukrytych warstwach, ponieważ sieci działają lepiej, jeśli aktywacje ukrytych warstw są wyśrodkowane (tj. Średnia zero ).
Dikran Marsupial
2

1.7159×tanh(x×(2/3))1+1[1.5,+1.5]

Ogólna koncepcja wyboru sigmoidu do twojego celu polega na wybraniu tej zgodnie z regułą, twoje wartości wyjściowe mieszczą się w przedziale punktów, co sprawia, że ​​druga pochodna funkcji sigmoidu jest maksymalna.

erogol
źródło