Warstwa maxout to po prostu warstwa, w której funkcją aktywacji jest maksimum wejść. Jak stwierdzono w artykule, nawet MLP z 2 jednostkami maksimum może przybliżyć dowolną funkcję. Podają kilka powodów, dla których maxout może działać dobrze, ale główny powód, dla którego podają, jest następujący:
Porzucenie można traktować jako formę uśredniania modelu, w której losowa podsieć jest trenowana przy każdej iteracji, a na koniec uśredniane są wagi różnych takich losowych sieci. Ponieważ nie można jednoznacznie uśrednić wag, stosuje się przybliżenie. To przybliżenie jest dokładne dla sieci liniowej
W trybie maxout nie upuszczają one danych wejściowych do warstwy maxout. W ten sposób tożsamość wejścia wyprowadzającego maksymalną wartość dla punktu danych pozostaje niezmieniona. Zatem upuszczenie występuje tylko w liniowej części MLP, ale nadal można przybliżyć dowolną funkcję ze względu na warstwę maksymalną.
Ponieważ zanik występuje tylko w części liniowej, przypuszcza się, że prowadzi to do bardziej wydajnego uśredniania modelu, ponieważ przybliżenie uśredniania jest dokładne dla sieci liniowych.
Dzięki! Rozumiem teraz, jak zrobić maxout. Mam parę pytań. (1) Więc nie rezygnujesz przed maksymalnym limitem, zgodnie z tym, co napisałeś „W maksymalnym limicie nie upuszczają danych wejściowych do warstwy maksymalnej”. (2) Co to znaczy przez liniową część MLP? „Zatem zanik występuje tylko w liniowej części MLP, ale nadal można przybliżyć dowolną funkcję ze względu na warstwę maksymalną.” (3) Po co lepiej uśredniać? „Ponieważ zanik występuje tylko w części liniowej, przypuszcza się, że prowadzi to do bardziej wydajnego uśredniania modelu, ponieważ przybliżenie uśredniania jest dokładne dla sieci liniowych”.
RockTheStar
2
max(zi)zi=∑kxk
Dzięki! Dla (3) co to znaczy „dokładny” i dlaczego NN staje się liniowy z maxout? Bardzo ci dziękuje za pomoc.
RockTheStar
1
Nah maxout to architektura sieci. Rezygnacja jest techniką regularyzacji
Opt
1
-1 To nie jest poprawna definicja funkcji aktywacji maxout Goodfellow. Odpowiedź @ toussaint-louverture dobrze się zgadza. stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen
15
Jednostka maxout może nauczyć się częściowej liniowej, wypukłej funkcji z maksymalnie k kawałkami. 1
Kiedy więc k wynosi 2, możesz zaimplementować ReLU, absolutną ReLU, nieszczelną ReLU itp. Lub możesz nauczyć się implementować nową funkcję. Jeśli k to powiedzmy 10, możesz nawet w przybliżeniu nauczyć się funkcji wypukłej.
Gdy k wynosi 2:
neuron Maxout oblicza funkcję . Zarówno ReLU, jak i Leaky ReLU są szczególnym przypadkiem tego formularza (na przykład dla ReLU mamy ). Neuron Maxout ma zatem wszystkie zalety jednostki ReLU (liniowy reżim działania, brak nasycenia) i nie ma swoich wad (umierający ReLU).w 1 , b 1 = 0max(wT1x+b1,wT2x+b2)w1,b1=0
Jednak w przeciwieństwie do neuronów ReLU podwaja liczbę parametrów dla każdego pojedynczego neuronu, co prowadzi do dużej całkowitej liczby parametrów. 2)
Kiedy więc k wynosi 2, możesz zaimplementować ReLU, absolutną ReLU, nieszczelną ReLU itp. Lub możesz nauczyć się implementować nową funkcję. Jeśli k to powiedzmy 10, możesz nawet w przybliżeniu nauczyć się funkcji wypukłej.
Gdy k wynosi 2:
Możesz przeczytać szczegóły tutaj:
1. Książka DL
2. http://cs231n.github.io/neural-networks-1
źródło