Maxout激活函数以及特点?

随声附和 提交于 2020-08-10 08:33:22

问题引入

在做深度学习的建模时,会接触到很多的激活函数,对于这么一个函数Maxout你知道是什么吗?他的优缺点是啥呢?

问题解答

Maxout出现在ICML2013上,作者Goodfellow将maxout和dropout结合后,号称在MNIST, CIFAR-10, CIFAR-100, SVHN这4个数据上都取得了start-of-art的识别率。

Maxout可以看做是在深度学习网络中加入一层激活函数层,包含一个参数k.这一层相比ReLU,sigmoid等,其特殊之处在于增加了k个神经元,然后输出激活值最大的值.

我们常见的隐含层节点输出: {h_i}(x) = sig\bmod ({x^T}{W_{...i}} + {b_i})

而在Maxout网络中,其隐含层节点的输出表达式为: {f_i}(x) = \mathop {\max }\limits_{j \in [1,k]} {z_{ij}}

其中 {z_{ij}} = {x^T}{W_{...ij}} + {b_{ij}},W \in {R^{d \times m \times d}}

假设 w 是 2 维,那么有 f(x) = \max ({w_1}^Tx + {b_1},{w_2}^Tx + {b_2})

可以注意到,ReLU 和 Leaky ReLU 都是它的一个变形(比如,w1,b1=0的时候,就是 ReLU).

与常规激活函数不同的是,它是一个可学习的分段线性函数.然而任何一个凸函数,都可以由线性分段函数进行逼近近似。其实我们可以把以前所学到的激活函数:ReLU、abs激活函数,看成是分成两段的线性函数,如下示意图所示:实验结果表明Maxout与Dropout组合使用可以发挥比较好的效果。



Maxout的拟合能力是非常强的,它可以拟合任意的的凸函数。作者从数学的角度上也证明了这个结论,即只需2个 maxout 节点就可以拟合任意的凸函数了(相减),前提是”隐隐含层”节点的个数可以任意多.

这样 Maxout 神经元就拥有 ReLU 单元的所有优点(线性和不饱和),而没有它的缺点(死亡的ReLU单元)。然而和 ReLU 对比,它每个神经元的参数数量增加了一倍,这就导致整体参数的数量激增。

Maxout 激活函数特点:maxout激活函数并不是一个固定的函数,不像Sigmod、Relu、Tanh等函数,是一个固定的函数方程.它是一个可学习的激活函数,因为我们 W 参数是学习变化的。它是一个分段线性函数:

优点:Maxout的拟合能力非常强,可以拟合任意的凸函数。Maxout具有ReLU的所有优点,线性、不饱和性。同时没有ReLU的一些缺点。如:神经元的死亡。

缺点:从上面的激活函数公式中可以看出,每个神经元中有两组(w,b)参数,那么参数量就增加了一倍,这就导致了整体参数的数量激增。

欢迎关注我的公众号,第一时间追踪相关面试题和总结:百面机器学习。
回复干货获取相关资料和面试题总结(定期更新)。

参考:

[1] https://www.jianshu.com/p/aa12a6b80840
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!