深度学习: Batch Normalization (归一化)

Introduction

批规范化,batch normalization,即著名的 BN 操作。

Birth

15年2月的论文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift。

Motivation

为了防止隐层的输入分布老是变来变去,BN让每个隐层节点的 激活输入分布 缩小到 (-1, 1)

Note

  • 是缩小到 (-1, 1),而非缩小到 (0, 1)

Effect

BN的好处有:

  • 缩小输入空间,从而降低调参难度

  • 防止梯度爆炸/消失,从而加速网络收敛

Compute

简而言之:

  1. 计算批处理数据的 均值方差
  2. 并据此对该批数据做 规范化
  3. 乘上缩放矩阵,并加上平移向量

Batch Normalization (BN) 计算公式:
深度学习: Batch Normalization (归一化)_第1张图片

通过经典的 chain rule 来学BN的参数:
深度学习: Batch Normalization (归一化)_第2张图片

Summary

  • conv -> bn -> relu ” 套件目前早已成为了CNN标配module。

  • BN因为在前馈的时候缩小了输入空间,而前馈时的输入空间又直接影响了反馈计算时的梯度状况。所以说,BN其实帮助减缓了梯度问题。

[1] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
[2] Understanding Batch Normalization
[3] Batch Normalization导读
[4] 深度学习中 Batch Normalization为什么效果好?
[5] 解析卷积神经网络—深度学习实践手册
[6] 深度学习: gradient diffusion (梯度弥散)

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