Слой maxout - это просто слой, где функция активации является максимумом входов. Как указано в документе, даже MLP с 2 единицами maxout может приблизиться к любой функции. Они приводят несколько причин того, почему maxout может работать хорошо, но главная причина, которую они приводят, заключается в следующем:
Исключение можно рассматривать как форму усреднения модели, в которой случайная подсеть обучается на каждой итерации, и в итоге веса различных таких случайных сетей усредняются. Так как весы нельзя усреднить явно, используется приближение. Это приближение является точным для линейной сети.
В maxout они не сбрасывают входные данные в слой maxout. Таким образом, идентичность входа, выводящего максимальное значение для точки данных, остается неизменной. Таким образом, выпадение происходит только в линейной части MLP, но все еще можно приблизить любую функцию из-за уровня maxout.
Поскольку выпадение происходит только в линейной части, они предполагают, что это приводит к более эффективному усреднению модели, поскольку приближение усреднения является точным для линейных сетей.
Благодарность! Теперь я понимаю, как сделать 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(wT1x+b1,wT2x+b2)w1,b1=0
Однако, в отличие от нейронов ReLU, он удваивает количество параметров для каждого отдельного нейрона, что приводит к большому общему количеству параметров. 2
Таким образом, когда k равно 2, вы можете реализовать ReLU, абсолютный ReLU, неплотный ReLU и т. Д., Или он может научиться реализовывать новую функцию. Если k, скажем, 10, вы даже можете приблизительно узнать выпуклую функцию.
Когда k равно 2:
Вы можете прочитать подробности здесь:
1. DL book
2. http://cs231n.github.io/neural-networks-1
источник