神经网络-pnorm

发展历史

1.bagging算法

Leo Breiman[1]在1994年提出了bagging算法,给定一个大小为 n的训练集D,Bagging算法从中均匀、有放回地选出 m个大小为 n’的子集 D i D_{i} Di,作为新的训练集。在这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:
y = m a x i = 1 G x i y=max_{i=1}^G x_i y=maxi=1Gxi
使用soft-maxout:
y = l o g ∑ i = 1 G e x p ( x i ) y=log\sum_{i=1}^Gexp(x_i) y=logi=1Gexp(xi)
使用p-norm(一般取p=2):
y = ∣ ∣ x ∣ ∣ p = ( ∑ i ∣ x i ∣ p ) 1 / p y=||x||_p=(\sum_i |x_i|^p)^{1/p} y=xp=(ixip)1/p
使用ReLU:
y = m a x ( x , 0 ) y=max(x,0) y=max(x,0)
上面的非线性函数没有对输出进行限制,从而会导致训练的不稳定性。为了解决这个问题,引入了Normalization layer:
对于所有maxout units的值进行规整,对于第i个maxout unit值 y i , 1 ≤ i ≤ K y_i,1\le i \le K yi,1iK,首先计算方差:
δ = 1 K ∑ i y i 2 \delta=\sqrt{\frac{1}{K}\sum_i y_i^2} δ=K1iyi2
然后对每一个 y i y_i yi进行规整:
z i = { y i δ ≤ 1 y i / δ δ > 1 z_i = \begin{cases} y_i & \quad \delta \le 1\\ y_i/\delta & \quad \delta \gt 1\\ \end{cases} zi={yiyi/δδ1δ>1

参考文献

[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

后面的技术分享转移到微信公众号上面更新了,【欢迎扫码关注交流】

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值