深度学习中 Batch Normalization为什么效果好?

Normalization 通常被用作预处理步骤,以使数据在不同特征之间具有可比性。

深度学习中 Batch Normalization为什么效果好?

为什么需要Normalization

来源:
https://zhuanlan.zhihu.com/p/33173246

独立同分布

机器学习界的炼丹师们最喜欢的数据有什么特点?窃以为,莫过于“独立同分布”了,即independent and identically distributed,简称为 i.i.d. 独立同分布并非所有机器学习模型的必然要求(比如 Naive Bayes 模型就建立在特征彼此独立的基础之上,而Logistic Regression 和 神经网络 则在非独立的特征数据上依然可以训练出很好的模型),但独立同分布的数据可以简化常规机器学习模型的训练、提升机器学习模型的预测能力,已经是一个共识。

因此,在把数据喂给机器学习模型之前,“白化(whitening)”是一个重要的数据预处理步骤。白化一般包含两个目的:

(1)去除特征之间的相关性 —> 独立;

(2)使得所有特征具有相同的均值和方差 —> 同分布。
白化最典型的方法就是PCA

深度学习中的 Internal Covariate Shift

深度学习中 Batch Normalization为什么效果好?
深度学习中 Batch Normalization为什么效果好?
深度学习中 Batch Normalization为什么效果好?

batch normalization 能避免深度学习中的Internal Covariate Shift问题

主流 Normalization 方法

具体细节可以看:
https://zhuanlan.zhihu.com/p/33173246
但后面两个规范化,看了也不是很懂。

Batch Normalization —— 纵向规范化

深度学习中 Batch Normalization为什么效果好?

Layer Normalization —— 横向规范化

深度学习中 Batch Normalization为什么效果好?

Weight Normalization —— 参数规范化

Cosine Normalization —— 余弦规范化