深度学习网络模型的训练为什么会很困难?其中一个重要的原因是,深度神经网络设计到很多层的叠加,而每一层的参数更新会导致上层的输入数据分布发生变化。通过层层叠加,高层的输入分布变化会非常剧烈,这就使得高层需要不断去重新适应底层的参数更新。为了训练好模型,我们需要非常谨慎地设定学习率、初始化权重以及尽可能细致的参数更新策略。
Google将这一现象总结为Internal Convariate Shift,简称ICS。
Google提出BN的本之就是能够解决ICS问题,但是最近也有paper指出BN并没有解决ICS问题,其解决的是对目标函数空间增加了平滑约束,从而使得利用更大的学习率获得更好的局部优解)
ICS会导致什么问题?
简而言之,每个神经元的输出数据不再是“独立同分布”。
其一,上层的参数需要不断的适应新的输入数据分布,降低学习速度。
其二,下层输入的变化可能趋向于变大或者变小,导致上层落入饱和区,使得学习过早停止。
其三,每层的更新都会影响到其他层,因此每层的参数更新策略需要尽可能的谨慎。
深度学习中的Internal Convariate Shift (ICS) 问题
于 2022-04-10 00:17:54 首次发布