发展历史
1.bagging算法
Leo Breiman[1]在1994年提出了bagging算法,给定一个大小为 n的训练集D,Bagging算法从中均匀、有放回地选出 m个大小为 n’的子集,作为新的训练集。在这m个训练集上使用分类、回归等算法,则可得到m个模型,再通过取平均值、取多数票等方法,即可得到Bagging的结果。
2.dropout
Hinton[2]在2012年提出了dropout的训练方法来缓解模型训练中的过拟合的问题,和bagging思想类似,都是使用训练集的不同子集训练多个model。不同之处在于dropout每一步训练针对同一个模型的不同的参数变量。
当在参数空间使用较大步长的时候,dropout会比较有效;另外一个问题是dropout的模型平均在应用到deep models的时候,只是一种近似。
一篇对dropout理解比较好的博客
3.maxout
dropout本质上是在模型训练过程中使用的一种方法,而Ian J Goodfellow[3]在2013年提出了maxout networks,将这种方法体现在了网络结构上面。
论文[3]中的公式比较模糊,详细的公式含义以及网络图形变化这篇博客.
maxout作为激活函数,也是一种非线性变换,在一定条件下可以拟合所有的凸函数。但是参数量也因为k个affine feature maps的引入而成倍增长。
4.pnorm
2014年Xiaohui Zhang[4]提出了两种新的maxout units,分别是p-norm和soft-maxout,发现p-norm在语音识别任务上面取得了较好的效果。
pnorm和soft-maxout
假设maxout的group size为G=5,maxout units的个数为K=500,那么maxout units的输入将会是2500个units。
使用maxout:
使用soft-maxout:
使用p-norm(一般取p=2):
使用ReLU:
上面的非线性函数没有对输出进行限制,从而会导致训练的不稳定性。为了解决这个问题,引入了Normalization layer:
对于所有maxout units的值进行规整,对于第i个maxout unit值,首先计算方差:
然后对每一个进行规整:
参考文献
[1]. Bagging Predictors
[2]. Improving neural networks by preventing co-adaptation of feature detectors
[3]. maxout networks
[4]. IMPROVING DEEP NEURAL NETWORK ACOUSTIC MODELS USING GENERALIZED MAXOUT NETWORKS