如何进行 batch normalization 2d 的计算?

Batch Noramlization 基本算是深度学习的标准配置了。
原文链接

在看文章时,关于如何计算有一点疑惑。
在这里插入图片描述
虽然就是上面这个公式,但是这个均值和方差到底是啥,或许有人和我一样还是有一点疑惑。

准确来说,这个均值和方差的维度是什么?

以二维batch Normalization 为例,结合 pytorch 程序,本文说一下相关内容。

pytorch的 Batch Normalization 官网

具体来说,输入是一个4维tensor, N , C , H , W N, C, H, W N,C,H,W 分别表示 batch size, channels,Height,Width。
那么对应的,均值的维度就是 C C C.

看到这里,可能有人表示疑问,尤其是从Batch Normalization 论文直接过来的小伙伴。如何理解公式中的维度。
在这里插入图片描述
上面那个是batch Normalization论文中的公式,但是我们还是要来理解一下公式的意思。
公式中的K就是维度信息,但是一定要明白,我们运行程序时的维度和这个维度有什么区别。
通常我们在程序中是4维输入,分别是batch size, channels, height, width。 但是我们算法中并不是这样的意思。这一点通常使我们有误解,并造成一些困惑,我希望在这里能够让各位明白。并且,实际上我们说在图像处理中,我们的batch Normalization是2d,在视频中是3d

务必清楚:
1.batch size不是一个维度,而是表示一个个的输入。在公式中,上标表示维度,下标才是输入的数据标号。
2.我们说的二维是讲channel看成一个维度,height和width组成另一个维度。这一点在很多文章中都是有体现的,默认的,我们都会认为height和width组成一个维度,而不是两个维度。
3.batch Normalization就是在height和width组成的维度上计算均值和方差。

我们回头再解释一下程序中这个均值的 C C C 维度到底是什么意思。
Batch Noramlization 是想让输入满足同一个分布, 那么是让输入的什么特征满足同一分布呢?这么说有点晕,可以这么理解,这里我就只说正确答案了。那就是让每张图片的相同通道的所有像素值的均值和方差相同。比如我们有两张图片(都为3通道),我们现在只说R通道,我们希望第一张图片的R通道的均值 和 第二张图片R通道的均值相同,方差同理

这样我们也就知道了实际运行过程中均值是如何计算的,可以有两种方法,把所有图片的相同通道的值相加,然后求平均数,也可以先求出每一个图片此通道的均值,然后再求所有图片此通道均值的均值。

以上也就解释了为什么batch Normalization在 batch size较小的时候会出现的问题,我们可以考虑当batch size就是1的时候,batch Normalization就没有意义了,不发挥什么作用,因为这时就相当于对一张图片的某通道归一化(当然,这也有一定作用,不会使某些数过大或过小,从而导致梯度饱和)。

以上问题也就引发了很多其他的Normalization方法,比如当batch size较小时我们怎么办?

回过头来,我们注意到,所谓的batch normalization 2d是对很多二维矩阵求一个均值和方差,请在脑中想象分别取出每一张图片的R通道 并 叠放在一起,然后对这所有元素求均值和方差。当我们图片是3通道的时候,我们就会有3个均值和方差。

再把通道扩展到feature maps, batch Normalization 就是希望处理相同分布的feature。

从以上分析中,我还想再说一句,那就是batch Normalization 不只是为抑制梯度饱和,而是为了使每一个卷积处理相同的分布。毕竟,如果只是为了抑制梯度饱和,我们只需要对每一次输入都做一次归一化(仅对一张图片)。因此,batch normalization 叫做 批归一化

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值