dropout

举报
风吹稻花香 发表于 2021/06/05 00:43:43 2021/06/05
【摘要】   训练样本量少的时候,确实有效果;   勤劳的神经元们事无巨细地干活,花大量时间把不重要的特征都学到了(过拟合),按这种方式去做其他事效率就很低(模型泛化能力差)   训练的时候需要dropout,测试的时候直接去掉。 如果测试时的时候添加了dropout层,测试的时候直接把前一层的特征结果传到下一层: dropout层相当于组合...

 

训练样本量少的时候,确实有效果;

 

勤劳的神经元们事无巨细地干活,花大量时间把不重要的特征都学到了(过拟合),按这种方式去做其他事效率就很低(模型泛化能力差)

 

训练的时候需要dropout,测试的时候直接去掉。

如果测试时的时候添加了dropout层,测试的时候直接把前一层的特征结果传到下一层:

dropout层相当于组合了N个网络,测试的时候去掉dropout,相当于N个网络的组合;

加了之后,收敛会变慢,但是验证集精度和训练集精度差距会减小。

2.2 Dropout在神经网络中的使用
Dropout的具体工作流程上面已经详细的介绍过了,但是具体怎么让某些神经元以一定的概率停止工作(就是被删除掉)?代码层面如何实现呢?

下面,我们具体讲解一下Dropout代码层面的一些公式推导及代码实现思路。

(1)在训练模型阶段

无可避免的,在训练网络的每个单元都要添加一道概率流程。

图4:标准网络和带有Dropout网络的比较


对应的公式变化如下:

 . 没有Dropout的网络计算公式:
           
. 采用Dropout的网络计算公式:

上面公式中Bernoulli函数是为了生成概率r向量,也就是随机生成一个0、1的向量。

代码层面实现让某个神经元以概率p停止工作,其实就是让它的激活函数值以概率p变为0。比如我们某一层网络神经元的个数为1000个,其激活函

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/107477954

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。