深度学习 - Batch Normalization

Batch Normalization

通道归一化

1. BN的计算单位是通道

假设Batch为1,即当前batch只有一张图片。一张图片对应R、G、B三个通道。

求解均值和方差时,是以通道为单位,分别求得每个通道的像素值综合,除以H*W。即先求R通道的所有像素值之和,然后除以H*W得到R通道的均值,然后同理求得

R通道的方差,即每个像素值减去均值,差求平方,所有的像素执行上述操作,求和,然后除以H*W。

2. BN后的像素值

还是以R通道为例,其他通道等同。

仅仅是中间像素值,并非最终结果像素值。最终结果的像素值如下:

其中为可训练参数。

3. BN的目的

CNN在训练过程中,假设输入数据服从独立同分布。但在一层层卷积和激活作用下,隐含层的输入已经偏离对了同分布的假设。  将数据规整到统一区间,减少数据的发散程度,降低网络的学习难度。BN的精髓在于归一之后,使用 作为还原参数,在一定程度上保留原数据的分布。

4. 对于Batch_size大于1的均值、方差和像素值更新

对于Batch_size大于1的情况,即是将batch中每一张图片(隐含层可看做每一张图片可能有小于3个通道,也可能有多于3个通道),每张图片的对应所有R通道求和,然后计算。所有R通道的像素值,分别通过
 


 

求得像素BN后的值。

ε通常取很小的值,如1e-5

5. 训练时的μRσR2和后期推理时有什么不同?

首先训练时的均值、方差和推理时的计算方式是不一样的。

训练时,均值和方差都是基于当前batch计算所得。

这个时候,每一个batch的均值和方差都会被记录下来。

推理时,是通过上述记录的所有batch的均值和方差,然后通过如下计算所得:

注意:每一个隐含层的军均值和方差都是记录用来求得当前层的均值和方差,且每个通道只用来求当前通道的均值和方差。

实在懒得作图了,回头遇到合适的盗一张。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值