【机器学习】正则化-Dropout/DropPath

1. Dropout

Dropout 是一种正则化技术,通过在训练过程中随机移除部分神经元及其连接,从而减少神经网络对特定神经元的依赖,提升模型的泛化能力。具体而言,Dropout 相当于在训练过程中从原始网络中随机采样出“更薄的”子网络,每个子网络的神经元数量较少。在前向传播和反向传播过程中,模型基于多个稀疏子网络进行训练,这可以视为一种模型平均化的形式。

请添加图片描述

Dropout 的动机

在使用 Dropout 训练的神经网络中,每个隐藏单元都需要与随机选择的其他单元一起工作,因此每个单元变得更加健壮,不再依赖于特定的其他神经元。通过随机丢弃神经元,Dropout 阻止了神经元共适应性的发生,即某些神经元仅在特定神经元存在时有效。由于每次训练的神经元子集是随机的,网络被迫学习更鲁棒的特征,这些特征在不同的神经元组合中依然存在和有效。

Dropout 通过迫使每个神经元独立学习有用的特征,避免了模型对某些固定特征组合的依赖,从而提高了模型的泛化能力,减少过拟合

以下是基于所述的 Dropout 实现流程的总结:

Dropout 实现流程:

  1. 初始化阶段:在神经网络的每一层中,设置一个 dropout rate(通常为 0.5),表示训练时每次迭代随机丢弃神经元的比例。输入层和输出层的神经元不会被丢弃,只有隐藏层的神经元会被随机选择。

  2. 前向传播:在每次迭代的前向传播阶段,随机选择隐藏层中的一部分神经元,并将其临时丢弃(设其输出为 0)。通常,丢弃的比例等于 dropout rate。例如,当 dropout rate 为 0.5 时,随机丢弃 50% 的隐藏层神经元。

  3. 参数更新:将输入数据通过修改后的网络进行前向传播,计算得到的损失。 通过修改后的网络进行反向传播,根据损失对未被丢弃的神经元进行梯度更新(如随机梯度下降法)。被丢弃的神经元的参数不会更新,保持原样

  4. 循环过程

    • 恢复被丢弃的神经元:恢复之前被临时丢弃的神经元,使其在下一次迭代中重新参与训练。
    • 重新随机丢弃神经元:在下一次迭代中,重新随机选择隐藏层中的部分神经元进行丢弃。每次 mini-batch 训练时,都会随机选择不同的神经元进行丢弃,确保模型每次训练的子网络都不同。
    • 重复上述的前向传播、参数更新、恢复和重新丢弃神经元的过程,直到训练完成。
  5. 测试阶段:在测试阶段,Dropout 不再丢弃任何神经元。为了保持训练和测试时的数值一致性,模型会将所有隐藏层神经元的输出按丢弃比例缩放(例如,如果 dropout rate 是 0.5,则乘以 0.5),以确保训练和推断时的激活值保持一致。

Dropout 流程的关键点
  • 随机丢弃神经元:每次训练随机选择一部分神经元,并将它们临时丢弃,以防止模型过度依赖某些特定神经元,从而提高泛化能力。
  • 参数更新:只有未被丢弃的神经元参与梯度更新,丢弃的神经元在当前 mini-batch 迭代中保持不变。
  • 恢复丢弃神经元:每次训练结束后恢复所有神经元,保证每一轮训练时使用的神经元组合不同。
  • <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值