0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

神经网络中的dropout是什么?怎么使用

汽车玩家 来源:CSDN 作者:_VioletHan_ 2020-01-28 17:44 次阅读

一、dropout目的

Dropout是在《ImageNet Classification with Deep Convolutional》这篇论文里提出来为了防止神经网络的过拟合。它的主要思想是让隐藏层的节点在每次迭代时(包括正向和反向传播)有一定几率(keep-prob)失效。这样来预防过拟合。它主要避免对某个节点的强依赖,让反向传播的修正值可以更加平衡的分布到各个参数上。还有如果一些节点失效,实际上也和我们减少网络复杂度是一样的道理。所以可以防止过拟合。

二、dropout方法

(1)训练阶段

Dropout是在标准的bp网络的的结构上,使bp网的隐层激活值,以一定的比例v变为0,即按照一定比例v,随机地让一部分隐层节点失效;在后面benchmark实验测试时,部分实验让隐层节点失效的基础上,使输入数据也以一定比例(试验用20%)是部分输入数据失效(这个有点像denoising autoencoder),这样得到了更好的结果。

去掉权值惩罚项,取而代之的是,限制权值的范围,给每个权值设置一个上限范围;如果在训练跟新的过程中,权值超过了这个上限,则把权值设置为这个上限的值(这个上限值得设定作者并没有说设置多少最好,后面的试验中作者说这个上限设置为15时,最好;为啥?估计是交叉验证得出的实验结论)。

此外,还可以使算法使用一个比较大的学习率,来加快学习速度,从而使算法在一个更广阔的权值空间中搜索更好的权值,而不用担心权值过大。

(2)测试阶段

Dropout只发生在模型的训练阶段,预测、测试阶段则不用Dropout

三、关于dropout需要知道的

直观认识:Dropout随机删除神经元后,网络变得更小,训练阶段也会提速

事实证明,dropout已经被正式地作为一种正则化的替代形式

有了dropout,网络不会为任何一个特征加上很高的权重(因为那个特征的输入神经元有可能被随机删除),最终dropout产生了收缩权重平方范数的效果

Dropout的功能类似于L2正则化,但Dropout更适用于不同的输入范围

如果你担心某些层比其它层更容易过拟合,可以把这些层的keep-prob值设置的比其它层更低

Dropout主要用在计算机视觉领域,因为这个领域我们通常没有足够的数据,容易过拟合。但在其它领域用的比较少

Dropout的一大缺点就是代价函数不再被明确定义,所以在训练过程中,代价函数的值并不是单调递减的

使用时,先关闭Dropout,设置keep-prob为1,使代价函数的值单调递减,然后再打开Dropout

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100517
收藏 人收藏

    评论

    相关推荐

    神经网络教程(李亚非)

      第1章 概述  1.1 人工神经网络研究与发展  1.2 生物神经元  1.3 人工神经网络的构成  第2章人工神经网络基本模型  2.1 MP模型  2.2 感知器模型  2.3
    发表于 03-20 11:32

    神经网络简介

    神经网络简介
    发表于 08-05 21:01

    求助基于labview的神经网络pid控制

    小女子做基于labview的蒸发过程液位的控制,想使用神经网络pid控制,请问这个控制方法可以吗?有谁会神经网络pid控制么。。。叩谢
    发表于 09-23 13:43

    神经网络基本介绍

    神经网络基本介绍
    发表于 01-04 13:41

    【PYNQ-Z2试用体验】神经网络基础知识

    神经网络的计算。对于多层多节点的神经网络,我们可以使用矩阵乘法来表示。在上面的神经网络,我们将权重作为一个矩阵,将第一层的输入作为另一个矩阵,两个矩阵相乘,得到的矩阵恰好为第二层的输
    发表于 03-03 22:10

    全连接神经网络和卷积神经网络有什么区别

    全连接神经网络和卷积神经网络的区别
    发表于 06-06 14:21

    卷积神经网络如何使用

    卷积神经网络(CNN)究竟是什么,鉴于神经网络在工程上经历了曲折的历史,您为什么还会在意它呢? 对于这些非常中肯的问题,我们似乎可以给出相对简明的答案。
    发表于 07-17 07:21

    【案例分享】基于BP算法的前馈神经网络

    传播的,不会回流),区别于循环神经网络RNN。BP算法(Back Propagation):误差反向传播算法,用于更新网络的权重。BP神经网络思想:表面上:1. 数据信息的前向传播,
    发表于 07-21 04:00

    【案例分享】ART神经网络与SOM神经网络

    ,同理,阈值越大,则容纳的模式类也就越多----------以上纯属个人理解,如果有错误欢迎指正。ART比较好地缓解了竞争型学习的“可塑性-稳定性窘境”,其中可塑性指神经网络要能够学习新知识,稳定性
    发表于 07-21 04:30

    什么是LSTM神经网络

    简单理解LSTM神经网络
    发表于 01-28 07:16

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反向传播优化输入变量权重的层,以提高模型的预测
    发表于 07-12 08:02

    基于BP神经网络的PID控制

    最近在学习电机的智能控制,上周学习了基于单神经元的PID控制,这周研究基于BP神经网络的PID控制。神经网络具有任意非线性表达能力,可以通过对系统性能的学习来实现具有最佳组合的PID控制。利用BP
    发表于 09-07 07:43

    卷积神经网络模型发展及应用

    神经网络研究的第一次浪潮。1969 年美国数学家及人工智能先驱 Minsky在其著作证 明感知器本质上是一种线性模型[21],只能处理线性分 类问题,最简单的异或问题都无法正确分类,因此神 经网络的研究也
    发表于 08-02 10:39

    理解神经网络Dropout

    dropout是指在深度学习网络的训练过程,对于神经网络单元,按照一定的概率将其暂时从网络
    发表于 11-16 01:11 3783次阅读
    理解<b class='flag-5'>神经网络</b><b class='flag-5'>中</b>的<b class='flag-5'>Dropout</b>

    基于Numpy实现神经网络:如何加入和调整dropout

    几乎所有目前最先进的神经网络都用到了dropout. 这篇教程介绍如何通过几行Python代码在神经网络中加入Dropout. 读完这篇教程之后,你将得到一个可以工作的
    的头像 发表于 04-15 09:59 7576次阅读
    基于Numpy实现<b class='flag-5'>神经网络</b>:如何加入和调整<b class='flag-5'>dropout</b>?