Что такое maxout в нейронной сети?

42

Кто-нибудь может объяснить, что делают блоки maxout в нейронной сети? Как они работают и чем они отличаются от обычных единиц?

Я попытался прочитать статью «Maxout Network» за 2013 год, написанную Goodfellow et al. (из группы профессора Йошуа Бенжио), но я не совсем понимаю.

RockTheStar
источник

Ответы:

26

Слой maxout - это просто слой, где функция активации является максимумом входов. Как указано в документе, даже MLP с 2 единицами maxout может приблизиться к любой функции. Они приводят несколько причин того, почему maxout может работать хорошо, но главная причина, которую они приводят, заключается в следующем:

Исключение можно рассматривать как форму усреднения модели, в которой случайная подсеть обучается на каждой итерации, и в итоге веса различных таких случайных сетей усредняются. Так как весы нельзя усреднить явно, используется приближение. Это приближение является точным для линейной сети.
В maxout они не сбрасывают входные данные в слой maxout. Таким образом, идентичность входа, выводящего максимальное значение для точки данных, остается неизменной. Таким образом, выпадение происходит только в линейной части MLP, но все еще можно приблизить любую функцию из-за уровня maxout.
Поскольку выпадение происходит только в линейной части, они предполагают, что это приводит к более эффективному усреднению модели, поскольку приближение усреднения является точным для линейных сетей.

Их код доступен здесь .

выбирать
источник
1
Благодарность! Теперь я понимаю, как сделать maxout. У меня есть несколько вопросов. (1) Таким образом, вы не делаете dropout перед maxout out в соответствии с тем, что вы написали: «В maxout они не сбрасывают входные данные в слой maxout».? (2) Что это означает под линейной частью MLP? «Таким образом, выпадение происходит только в линейной части MLP, но из-за уровня maxout можно по-прежнему аппроксимировать любую функцию». (3) Почему лучше усреднять? «Поскольку выпадение происходит только в линейной части, они предполагают, что это приводит к более эффективному усреднению модели, поскольку приближение усреднения является точным для линейных сетей».
RockTheStar
2
max(zi)zi=kxk
Благодарность! Для (3) что означает «точный» и почему NN становится линейным с maxout? Спасибо большое за помощь.
RockTheStar
1
Нах maxout это сетевая архитектура. Выпадение - это метод регуляризации
Опция
1
-1 Это неверное определение функции активации maxout от Goodfellow. Ответ @ toussaint-louverture делает это правильно. stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen
15

Единица maxout может выучить кусочно-линейную выпуклую функцию до k штук. 1

Таким образом, когда k равно 2, вы можете реализовать ReLU, абсолютный ReLU, неплотный ReLU и т. Д., Или он может научиться реализовывать новую функцию. Если k, скажем, 10, вы даже можете приблизительно узнать выпуклую функцию.

Когда k равно 2:

max(w1Tx+b1,w2Tx+b2)w1,b1=0

Однако, в отличие от нейронов ReLU, он удваивает количество параметров для каждого отдельного нейрона, что приводит к большому общему количеству параметров. 2

Вы можете прочитать подробности здесь:
1. DL book
2. http://cs231n.github.io/neural-networks-1

Аарон
источник
Он удваивает только количество параметров смещения, а не все веса.
Ганс