Batch normalization和Layer normalization

深度学习的归一化方法

1 归一化的目的

  • 当我们使用梯度下降法做优化时,随着网络深度的增加,输入数据的特征分布会不断发生变化,为了保证数据特征分布的稳定性,会加入Normalization。从而可以使用更大的学习率,从而加速模型的收敛速度,换言之,使用神经网络模型都会使用到激活函数,激活函数都存在饱和区,为了避免梯度消失,一般将数据输入到激活函数之前,对数据分布进行纠正,使得其位于非饱和区域,有利于学习
  • 同时,Normalization也有一定的抗过拟合作用,使训练过程更加平稳。

2 Layer Normalization 和Batch Normalization的原理和区别

  • 归一化公式
    在这里插入图片描述
  • 区别:看图说话
    以下图为例,这里的batch_size为5(行数),也就是这里有五条数据。每一条数据的特征维度是5(列数)。
    Batch Normalization就是对所有的样本的同一个特征维度进行归一化,下图圈中的是对五个样本里的第一个特征进行归一化。然后依次对所有五个样本的第二个特征进行归一化…。这样做的好处是对保留了不同样本同一个特征之间的多样性。
    Layer Normalization就是对同一个样本的所有特征进行归一化处理。这样做的好处是保留同一个样本的特征之间的多样性。
    数据分布的问题

3 使用场景

在BN和LN都能使用的场景中,BN的效果一般优于LN,原因是基于不同数据,同一特征得到的归一化特征更不容易损失信息。但是有些场景是不能使用BN的,例如batch size较小或者序列问题中可以使用LN。这也就解答了RNN 或Transformer为什么用Layer Normalization?

4 使用BN和LN注意的地方

LN针对的是单独一个样本,在训练和预测阶段的使用并无差别;BN是针对一个batch进行计算的,训练时自然可以根据batch计算,但是预测时有时要预测的是单个样本,此时要么认为batch size就是1,不进行标准化处理,要么是在训练时记录标准化操作的均值和方差直接应用到预测数据,这两种解决方案都不是很完美,都会存在偏差。

参考连接:
参考1
参考2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值