Batch Normalization(BN)

文章目录

    • 一、BN简介
    • 二、如何进行BN
      • (1)单隐藏层的batch norm公式
      • (2)伪代码实现
      • (2)为什么BN有效

一、BN简介

Batch Normalization(BN)_第1张图片
对输入的数据进行归一化,再喂到网络中;
这里在激活函数之前做归一化还是在激活函数之后做归一化存在争议,一般是在线性层的后面,激活函数的前面
Batch Normalization(BN)_第2张图片

二、如何进行BN

(1)单隐藏层的batch norm公式

Batch Normalization(BN)_第3张图片
不仅对输入层进行归一化,还对隐藏层进行归一化。

可以通过调整 γ \gamma γ β \beta β的值来控制隐藏层的均值和方差。可以是均值0方差1,也可以是其他被 γ \gamma γ β \beta β控制的均值和方差

(2)伪代码实现

Batch Normalization(BN)_第4张图片
Batch Normalization(BN)_第5张图片
每次更新3个参数(不含 b [ l ] b^{[l]} b[l],因为这一项会在标准化的时候被均值减掉)

(2)为什么BN有效

https://www.bilibili.com/video/BV12E411a7Xn?p=76&vd_source=5af7b905774c79f1754cd4ab83975115
Batch Normalization(BN)_第6张图片

  • 加快神经网络的收敛
  • 改善梯度(远离饱和区)
  • 可以使用比较大的学习率来训练网络
  • 对初始化不太敏感
  • 正则化,防止过拟合,甚至可以取代drop out层
  • 注意:训练和测试时的BN层不一样

Batch Normalization(BN)_第7张图片

你可能感兴趣的:(batch,深度学习,python)