[AI 笔记] Batch Normalization批量归一化

[AI 笔记] BatchNormalization批量归一化

  • Batch Normalization

参考资料:
CS231n

Batch Normalization

批量归一化(Batch Normalization),用于对神经元的输入进行归一化处理,使其符合高斯分布(不一定),解决饱和问题带来的梯度消失问题。
它一般被放置在全连接层或者卷积层之后,激活函数之前。如下图所示。其中右下角的公式即对输入进行高斯归一化处理。E为均值,Var为方差。
[AI 笔记] Batch Normalization批量归一化_第1张图片

但有时候我们不知道到底是否需要对输入进行批量归一化处理,有可能处理之后反而对结果造成不良的影响。或者我们需要对归一化的区间进行调节,从而控制饱和的程度。

于是引入 γ 和 β 两个参数,对归一化后的结果进行线性变换。如下图所示,当 γ 等于方差, β 等于均值的时候,就是输入输出的恒等映射,相当于把归一化抵消。

通过学习 γ 和 β 这两个参数,网络可以学习到最优的归一化方式。
[AI 笔记] Batch Normalization批量归一化_第2张图片

批量归一化的过程如下图所示:
[AI 笔记] Batch Normalization批量归一化_第3张图片
先计算均值与方差,然后对输入进行归一化,最后对结果线性变换。

你可能感兴趣的:(AI,笔记,深度学习,python,机器学习,人工智能)