Co to jest maxout w sieci neuronowej?

42

Czy ktoś może wyjaśnić, co robią jednostki maxout w sieci neuronowej? Jak działają i czym różnią się od konwencjonalnych jednostek?

Próbowałem przeczytać artykuł „Maxout Network” z 2013 r. Goodfellow i in. (z grupy profesora Yoshua Bengio), ale nie do końca to rozumiem.

RockTheStar
źródło

Odpowiedzi:

26

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.

Ich kod jest dostępny tutaj .

Optować
źródło
1
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(w1Tx+b1,w2Tx+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)

Możesz przeczytać szczegóły tutaj:
1. Książka DL
2. http://cs231n.github.io/neural-networks-1

Aaron
źródło
Podwaja tylko liczbę parametrów odchylenia, nie wszystkie wagi.
hans