深度学习为什么需要标准化?

深度学习为什么需要标准化?

https://blog.csdn.net/yuXuan_huLu/article/details/82883258
为什么需要 Normalization
主要是因为:深度学习中的 Internal Covariate Shift 问题及其影响。

  1. 为什么需要 Normalization
    1.1 独立同分布与白化
    i.i.d. 独立同分布并非所有机器学习模型的必然要求(比如 Naive Bayes 模型就建立在特征彼此独立的基础之上,而Logistic Regression 和 神经网络 则在非独立的特征数据上依然可以训练出很好的模型),但独立同分布的数据可以简化常规机器学习模型的训练、提升机器学习模型的预测能力。
    因此,在把数据喂给机器学习模型之前,“白化(whitening)”是一个重要的数据预处理步骤。
    什么是白化:http://www.360doc.com/content/18/0831/22/54525756_782795930.shtml

白化一般包含两个目的:(1)去除特征之间的相关性 —> 独立;(2)使得所有特征具有相同的均值和方差 —> 同分布。白化最典型的方法就是PCA。

1.2 深度学习中的 Internal Covariate Shift
深度神经网络涉及到很多层的叠加,而每一层的参数更新会导致上层的输入数据分布发生变化,通过层层叠加,高层的输入分布变化会非常剧烈,这就使得高层需要不断去重新适应底层的参数更新。为了训好模型,我们需要非常谨慎地去设定学习率、初始化权重、以及尽可能细致的参数更新策略。
ICS 会导致什么问题?
每个神经元的输入数据不再是“独立同分布”。
其一,上层参数需要不断适应新的输入数据分布,降低学习速度。其二,下层输入的变化可能趋向于变大或者变小,导致上层落入饱和区,使得学习过早停止。其三,每层的更新都会影响到其它层,因此每层的参数更新策略需要尽可能的谨慎。

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