深度学习知识点杂谈

本文详细介绍了深度学习中的正则化技术,包括L2正则化的权值惩罚、Dropout策略以及批量归一化的影响。Dropout通过随机关闭神经元防止过拟合,批量归一化则通过标准化输入加速训练并起到正则化作用。同时,讨论了深度网络中梯度消失问题对训练的影响。
摘要由CSDN通过智能技术生成

1、正则化

1、权值惩罚(weight decay)

对较大权值的惩罚,使得损失函数更加平滑。比较流行的正则化项是L2正则化,是模型中所有权重的平方和。在pytorch的SGD等优化器中已经有了weight decay这一参数,其完全等价于在损失函数中加入L2范数。

2、Dropout

将网络每轮训练迭代中的神经元随机部分清零。Dropout 在每次迭代中有效地生成具有不同神经元拓扑的模型,使得模型中的神经元在过拟合过程中协调记忆过程的机会更少。另一种观点是,Dropout 在整个网络中干扰了模型生成的特征,产生了一种接近于增强的效果。
PyTorch 中,我们可以通过在非线性激活与后面的线性或卷积模块之间添加一个 nn.Dropout 模块在模型中实现 Dropout

3、BatchNormalization批量归一化

允许我们提高学习率,减少训练对初始化的依赖,并充当正则化器,提出了一种替代Dropout 的方法。
批量归一化背后的主要思想是将输入重新调整到网络的激活状态,从而使小批量具有一定的理想分布。回想一下学习机制和非线性激活函数的作用,这有助于避免激活函数的输入过多地进入函数的饱和部分,从而消除梯度并减慢训练速度。
实际上,批量归一化使用在该中间位置收集的小批量样本的平均值和标准差来对中间输入进行移位和缩放。正则化效应是这样一个事实的结果,即单个样本及其下游激活函数总是被模型视为平移和缩放,这取决于随机提取的小批量的统计数据,这本身就是一种原则性的增强。上述论文的作者建议,使用批量归一化消除或减轻对 Dropout 的需要
由于批量归一化的目的是重新调整激活的输入,因此其位置是在线性变换(在本例中是卷积)和激活函数之后。
4、为什么在早期神经网络的深度越深会导致越难以收敛
让我们回忆一下反向传播,并将其放在一个非常深的网络上下文中考虑。损失函数对参数的导数,特别是在早期层中的导数,需要乘许多其他数字,这些数字来自损失和参数之间的导数运算链。这些被相乘的数字可能很小,生成的数字越来越小,也可能很大,由于浮点近似而吞并了更小的数字。最重要的是,一长串乘法会使参数对梯度的贡献消失,导致该层的训练无效,因为该参数和其他类似参数不会得到适当的更新。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值