神经网络中的maxout是什么?


Answers:


26

maxout层只是激活函数为输入最大值的层。如本文所述,即使具有2个maxout单位的MLP也可以近似任何功能。他们给出了有关maxout为何表现良好的几个原因,但是他们给出的主要原因如下:

辍学可以被认为是模型平均的一种形式,其中在每次迭代中训练一个随机子网,最后对不同的随机网络的权重进行平均。由于无法明确平均权重,因此使用了一个近似值。对于 在maxout中的线性网络,此近似值是准确
,它们不会将输入丢弃到maxout层。因此,输出数据点最大值的输入的身份保持不变。因此,丢失仅发生在MLP的线性部分,但是由于maxout层的存在,仍然可以近似任何函数。
由于辍学仅发生在线性部分,他们推测这会导致更有效的模型平均,因为平均逼近对于线性网络是精确的。

他们的代码在这里


1
谢谢!我现在知道如何做maxout。我有一些疑问。(1)因此,根据您写的“在maxout中,他们不会将输入丢弃到maxout层。”,您不要在maxout之前执行dropout。(2)MLP的线性部分是什么意思?“因此,辍学仅发生在MLP的线性部分,但是由于maxout层的存在,仍然可以近似任何函数。”(3)为什么更好地求平均?“由于辍学仅发生在线性部分,他们猜测这将导致更有效的模型平均,因为平均近似值对于线性网络是精确的。”
RockTheStar

2
(1)因此,据我了解,maxout层节点为和。因此,maxout层的输入节点本身是更深层中节点的线性组合。不会为maxout层或z层执行删除操作,但会为比该深度更深的层执行删除操作。(2)线性部分表示仅具有线性激活函数的隐藏层(3)线性网络的平均效果更好,辍学使用的平均方案准确。通常,NN不是线性的,但具有maxout,它们使NN的大部分变为线性,并且仅在线性部分上进行丢弃。max(zi)zi=kxk
选择

谢谢!对于(3),“精确”是什么意思,为什么NN随着maxout变为线性?非常感谢您的帮助。
RockTheStar

1
不,maxout是一种网络体系结构。辍学是一种正则化技术
-Opt

1
-1这不是Goodfellow的maxout激活函数的正确定义。@ toussaint-louverture的回答正确了。stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen

15

一个maxout单元最多可以学习 k个分段的分段线性凸函数。1个

因此,当k为2时,您可以实现ReLU,绝对ReLU,泄漏ReLU等,也可以学习实现新功能。如果k等于10,您甚至可以近似地学习凸函数。

当k为2时:

Maxout神经元计算函数。ReLU和Leaky ReLU都是这种形式的特例(例如,对于ReLU,我们有)。因此,Maxout神经元享有ReLU单元的所有优点(线性操作方式,无饱和状态),并且没有缺点(即将死去的ReLU)。max(w1Tx+b1,w2Tx+b2)w1,b1=0

但是,与ReLU神经元不同,它使每个神经元的参数数量增加了一倍,从而导致参数总数很高。2

您可以在此处阅读详细信息:
1. DL书
2. http://cs231n.github.io/neural-networks-1


它仅将偏置参数的数量加倍,而不是所有权重的两倍。
汉斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.