加速模型收敛神器——归一化(normalization)

归一化是加速深度神经网络模型训练的关键技术,包括Batch Normalization、Layer Normalization、Weight Normalization等方法。这些方法通过调整数据分布,减少内部协变量转移,提高模型训练效率和泛化能力。例如,Batch Normalization利用mini-batch数据计算统计量进行规范化,适合大型mini-batch,而Layer Normalization则不依赖mini-batch,适用于RNN和小批量数据。Weight Normalization通过规范化权重,实现权重向量的欧氏范数固定,增强模型训练稳定性。
摘要由CSDN通过智能技术生成


进入到深度学习阶段,优化任务是一个非凸优化问题。模型收敛的稳定和速度是算法工程师不得不考虑的问题。归一化自提出后,就是该领域神器。本文将从归一化的思想,介绍常见的几种归一化,探究生效原理三部分来展开,最后是个人使用心得。

归一化思想

深度神经网络模型的训练为什么会很困难?其中一个重要的原因是,深度神经网络涉及到很多层的叠加,而每一层的参数更新会导致上层的输入数据分布发生变化,通过层层叠加,高层的输入分布变化会非常剧烈,这就使得高层需要不断去重新适应底层的参数更新。为了训好模型,我们需要非常谨慎地去设定学习率、初始化权重、以及尽可能细致的参数更新策略。Google将这一现象总结为Internal Covariate Shift。
这会导致几部分问题。其一,上层参数需要不断适应新的输入数据分布,降低学习速度。其二,下层输入的变化可能趋向于变大或者变小,导致上层落入饱和区,使得学习过早停止。其三,每层的更新都会影响到其它层,因此每层的参数更新策略需要尽可能的谨慎。
因此,以 BN 为代表的 Normalization 方法退而求其次,进行了简化的白化操作。基本思想是:在将x送给神经元之前,先对其做平移和伸缩变换, 将x分布规范化成在固定区间范围的标准分布。
通用变换框架就如下所示:
在这里插入图片描述μ是平移参数(shift parameter), θ是缩放参数(scale parameter)。通过这两个参数进行 shift 和 scale 变换,得到的数据符合均值为 0、方差为 1 的标准分布。b是再平移参数(re-shift parameter),g是再缩放参数(re-scale parameter)。将上一步得到的进一步变换,最终得到的数据符合均值为b 、标准差为g的分布。

常见归一化

Batch Normalization —— 纵向规范化

Batch Normalization 于2015年由 Google 提出,开 Normalization 之先河。其规范化针对单个神经元进行,利用网络训练时一个 mini-batch 的数据来计算该神经元x的均值和方差,因而称为 Batch Normalization。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值