「深度学习」dropout 技术

一、工作原理

1. 正则化网络

dropout 将遍历网络的每一层,并设置消除神经网络中节点的概率。

  1. 1. 每个节点保留/消除的概率为0.5:

  2. 2. 消除节点:

  3. 3. 得到一个规模更小的神经网络:

2. dropout 技术

最常用:反向随机失活 "Inverted dropout"

以三层网络 (l=3) 为例:

keep-prob = 0.8     #保留某个隐藏单元的概率
#生成随机矩阵,每个单元对应值为1的概率是0.8,用于决定第三层哪些元素应该归零
d3 = np.random.rand(a3.shape[0], a3.shape[1]) < keep-prob
#元素相乘,从第三层获取激活函数,过滤d3中所有等于0的元素
a3 = np.multiply(a3,d3)
a3 /= keep-prob   #dropout方法:修正,使得a3期望值不变

Inverted dropout 通过除以 keep-prob,确保激活值的期望值不变,使得测试阶段更加容易。

每次梯度下降归零的隐藏单元可能不一样。

3. 在测试阶段训练算法

  1. 将第0层激活函数标记为测试样本x

    a^{[0]} = x

  1. 在测试阶段不使用 dropout 技术,我们不希望输出结果随机。特别地:

    z^{[1]} = w^{[1]} a^{[0]} +b^{[1]}​

    a^{[1]} = g^{[1]}(z^{[1]})​

    z^{[2]} = w^{[2]} a^{[1]} +b^{[2]}​

    a^{[2]} = g^{[2]}(z^{[2]})​

    ...

    \widehat{y}

    目标:在测试阶段即使不执行 dropout,激活函数的预测结果也不会发生变化

二、理解 dropout

  1. 1. 每次 dropout 会生成一个更小的神经网络。

  2. 2. 收缩权重的平方范数:单元不能依赖任何特征 (该单元的任何特征都有可能被随机清除),故不会给任何一个输入加上过多的权重。

  3. 3. 一般来说,某层的隐藏单元越多,该层的 keep-prob 越小;可以某些层用 dropout,某些层不用。

用途:防止过拟合,常用在输入数据不足的情况 (如计算机视觉)。

缺点:代价函数 J 不再被明确定义,结果难以复查。

三、其他正则化方法

1. 增加训练集

以图片为例,可将图片进行水平翻转/旋转/裁剪/放大/扭曲图片,可扩增算法数据。(但需要人工验证图片经过处理后仍是原物)

2. early stopping

运行梯度下降时,绘制训练误差或代价函数 J 的优化过程 + 验证集的误差

early stopping:在中间点停止迭代过程,即提早停止训练神经网络。

优点:只需要一次梯度下降,就可以找到 w 的较小值、中间值、较大值。

缺点:不能同时进行代价函数 J 的优化和 防止过拟合两个问题的解决。

3. L2 正则化

缺点:神经网络的训练时间更长,需要尝试很多次正则化参数 \lambda 的值,计算代价高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值