深度学习中Dropout优化的原理分析

本文探讨 Dropout 技术防止深度学习模型过拟合的原理。 Dropout 是在训练阶段随机忽略部分神经元,减少特征检测器间的相互依赖,通过模型平均提升泛化能力。在测试阶段,调整激活值以保持输出一致性。 Dropout 在 Caffe 中的应用方法也在文中提及。
摘要由CSDN通过智能技术生成

本文主要参考博文:

1. http://www.aiuxian.com/article/p-1870737.html

2. http://shuokay.com/2016/06/14/dropout/

引言

在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象。在训练bp网络时经常遇到的这个问题,过拟合指的是模型在训练数据上损失函数比较小,预测准确率较高,但是在测试数据上损失函数比较大,预测准确率较低。

常用的防止过拟合的方法是正则化,也就是在模型的损失函数中,对模型的参数进行“惩罚”,这样的话这些参数就不会太大,而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。因此在添加权值惩罚项后,应用梯度下降算法迭代优化计算时,如果参数theta比较大,则此时的正则项数值也比较大,那么在下一次更新参数时,参数削减的也比较大,从而可以使拟合结果看起来更平滑,不至于过拟合。

Dropout是hintion最近几年提出的,为了防止模型过拟合,Dropout可以作为一种trik供选择。在hinton的论文摘要中指出,在每个训练批次中,通过忽略一半的特征检测器(让一半的隐层节点值为0),可以明显地减少过拟合现象。这种方式可以减少特征检测器间的相互作用,检测器相互作用是指某些检测器依赖其他检测器才能发挥作用。

Dropout方法

训练阶段:

1.Dropout是在标准的bp网络的的结构上,使bp网的隐层激活值以一定的比例v变为0,即:按照一定比例v,随机地让一部分隐层节点失效

2.去掉权值惩罚项,取而代之的是限制权值的范围,给每个权值设置一个上限范围。如果在训练更新的过程中,权值超过了这个上限,则把权值设置为这个上限的值。这样处理,不论权值更新量有多大,权值都不会过大。此外,还可以使算法采用一个比较大的学习率来加快学习速度,从而使算法在一个更广阔的权值空间中搜索更好的权值,而不用担心权值过大。

测试阶段:

在前向传播到输出层前,隐含层节点的输出值都要缩减到(1-v)倍,例如:正常的隐层输出为a,此时需要缩减为a(1-v)。

这里我的解释是:假设比例v=0.5,也就是在训练阶段以0.5的比例忽略隐层节点,假设隐层有80个节点,每个节点输出值为1,那么此时只有40个节点正常工作,也就是说总的输出为40个1和40个0,输出总和为40;而在测试阶段,由于我们的权值已经训练完成,此时就不再按照0.5的比例忽略隐层输出,假设此时每个隐层的输出还是1,那么此时总的输出为80个1,明显比dropout训练时输出大一倍(由于dropout比例为0.5),所以为了得到和训练时一样的输出结果,就缩减隐层输出为a(1-v),即此时输出80个0.5,总和也为40。这样就使得测试阶段和训练阶段的输出“一致”了。


如上图, 左边是我们常见的 full connect layer, 右边是使用了 dropout 之后的效果。 其操作方法是, 首先设定一个 dropout ratio 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值