Batch Normalization & Layer Normalization

Batch Normalization:

Accelerating Deep Network Training by  Reducing Internal Covariate Shift

由于前一层的参数更新,所以这一层的输入(前一层的输出)的分布会发生变化,这种现象被称之为ICS。同样,这篇文章的观点认为BN work的真正原因,在与其将数据的分布都归一化到均值为0,方差为1的分布上。因此,每一层的输入(上一层输出经过BN后)分布的稳定性都提高了,故而整体减小了网络的ICS。

BN本质也是一种白化处理(白化处理:a、降低特征之间的相关性,相当于pca;b、每一维特征均值为0,标准差为1)

由于PCA计算量较大,故使用近似白化处理:

但实际经过该处理后,模型学习的特征会被破坏掉(分布都被改了),因此又引入γ、β(可学习参数)

如果

那就是y = x,即恢复到学习到的原始特征。

 

BN可以作为神经网络的一层,放在激活函数(如Relu)之前。BN的算法流程如下图:

在这里插入图片描述

 

Layer Normalization

BN是取不同样本的同一个通道的特征做归一化;LN则是取的是同一个样本的不同通道做归一化。

BN的缺点:

1. batchsize 较小的时候,少量样本的均值和方差便不能反映全局的统计分布息,所以基于少量样本的BN的效果会变得很差。

2. RNN可以展开成一个隐藏层共享参数的MLP,随着时间片(即样本长度)的增多,样本还有有效数据的会越来越少(即长度越长的样本会越来越少),这样也会出现少量样本的统计信息不能反映全局分布的情况

因此LN是一个独立于batch size的算法,是根据样本的特征数做归一化的。

 

Batch Normalization(批归一化)和 Layer Normalization(层归一化)都是用于神经网络中的正则化技术,旨在提高模型的训练效果和泛化能力。 Batch Normalization是在深度神经网络中应用广泛的技术之一。它的主要思想是通过对每个批次(batch)的输入进行归一化,使得输入在每个特征维度上具有零均值和单位方差。这样做的好处是可以加速网络的收敛速度,减轻梯度消失问题,并有一定的正则化效果。Batch Normalization层通常在全连接层或卷积层之后,激活函数之前添加。 Layer Normalization是与Batch Normalization类似的技术,但它的归一化方式不是基于批次,而是基于每个样本在特征维度上进行归一化。具体而言,Layer Normalization对每个样本的特征进行归一化,使得每个样本在特征维度上具有零均值和单位方差。与Batch Normalization不同,Layer Normalization可以应用于任意大小的批次,甚至可以应用于单个样本。Layer Normalization通常在循环神经网络(RNN)等需要处理可变长度序列数据的模型中使用。 虽然Batch NormalizationLayer Normalization有不同的归一化方式,但它们的目标都是通过减少内部协变量转移(Internal Covariate Shift)来加速训练过程,并提高模型的泛化能力。它们在训练深度神经网络时都可以发挥重要作用,具体选择哪种方法取决于应用场景和网络结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值