深度学习Dropout笔记

Dropout含义

  dropout含义就是在一个神经网络中,每个隐藏层都有一个概率,是用来判断节点保留或者消除的,将一个大的神经网络通过消除节点变为一个小的神经网络,防止过拟合的发生。如下图所示,每个隐藏层节点是否保留的概率都是0.5。
在这里插入图片描述
  对一个样本训练时,消除一些节点后如下:

在这里插入图片描述
  其他样本训练时同样是通过概率判断是否消除每个节点。

Dropout实施方法–Inverted dropout(反向随机是活)

  假设当前是一个三层的神经网络l=3,keep-prob = 0.8
  首先初始化一个d3矩阵,d3 = np.random.rand(a3.shape[0], a3.shape[1]) < keep-prob,a3代表某一层输出的维度(第一维代表当前层节点数量,第二维代表样本数量),d3是和a3相同维度的一个01矩阵,每一列代表当前层每个节点是否保留,行代表每个样本。
  然后将失活的节点输出清除a3 = np.multiply(a3,d3),multiply函数代表元素乘积,两个矩阵的对应位置元素相乘。通过这个算法后就会把一部分a3的值变为0,也就是将节点消除了。
  最后对a3执行a3/=keep-prob,执行这一步的原因是,当前我们的保留率为0.8,假设当前层有50个节点,那么就会与10个节点被移除,为了保证a3的期望值保持在一个范围内,需要a3/=keep-prob。为什么需要a3的期望保持在一个范围内呢,因为这会使得测试的时候变得简单,没有增加额外的缩放问题
  在测试阶段时,不需要使用dropout,因为测试阶段我们希望输出的结果是确定的,而不是随机的,如果使用了dropout,对于每一个测试样本的预测结果都是不确定的。

为什么dropout有效?

1,直观来看,dropout会让一些结点随机失活,使用一个较小的神经网络进行训练,在效果来看和正则化效果是一样的。
2,从单个神经元来看,对于下图的右侧神经元,dropout会使删除一部分输入,这样做的意义是让右侧节点不要去依赖任何一个特征,因为它随时可能被清除,要去全局考虑所有特征,这样就不会有过大的权重,以此来防止过拟合。同时由于权重都比较小,右侧节点的值也会很小,右侧节点通过这种方式能够积极的传播开,这与L2正则化结果一致,dropout的结果也是压缩权重。
在这里插入图片描述

使用范围

dropout主要应用于计算机视觉领域,因为通常图片数据可能不足。此外除非发生了过拟合,一般情况下不用dropout。

dropout缺点

使用dropout会让代价函数J不再有明确的定义,当出现梯度下降出现问题后,很难去检查到底哪里出现了梯度问题,而定义明确的代价函数J每次都是迭代下降的。因此可以将keep-prob先设置为1,然后确保J是单调递减的,再打开dropout。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习中的Dropout是一种正则化技术,旨在减少过拟合问题。在神经网络训练过程中,Dropout通过临时随机将一些神经元的输出设置为0,从而减少了神经元之间的依赖性,增加了网络的鲁棒性和泛化能力。 Dropout的原理很简单,每个神经元的输出在训练时以概率p被设置为0,以概率1-p被保留(p通常设置为0.5)。由于整个网络的结构会随机改变,每个神经元都要适应不同的子网络,因此网络具备了对神经元丢失的鲁棒性。这样的随机丢失使网络变得不那么过分依赖某个具体的神经元,更有助于学习到更加鲁棒和泛化性能更好的特征。当网络训练完毕后,没有dropout的所有神经元都会被恢复,但每个神经元的输出会乘以(1-p)来保持输出的期望值不变。 Dropout的作用是减轻过拟合。在深度学习中,模型复杂度通常很高,参数众多,很容易导致过拟合。过拟合指的是模型在训练数据上表现良好,但在测试数据上表现较差。通过使用Dropout,可以减少神经元之间的共适应性,并且强制网络学习不同的特征,从而减少过拟合。Dropout相当于在每次训练迭代中训练了一个不同的网络子集,这样可以减少对任何一个特定的特征都有强依赖的情况。 总结来说,Dropout是深度学习中一种有效的正则化技术,通过随机丢失神经元的输出,可以减少神经元之间的依赖性,增加网络的鲁棒性和泛化能力,从而减轻过拟合问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值