IT@程序员猿媛Python数据科学程序员

深度学习入门--Batch Normalization优化

2019-04-08  本文已影响3人  爱吃西瓜的番茄酱

由上一篇文章可知,如果我们设置了合适的权重初始值,比如He初始值,则各层的激活值分布会有适当的广度,从而可以顺利的进行学习。

Batch Normalization(简称Batch Norm)是2015年提出的新方法。Batch Norm的思路就是“强制性”调整各层的激活值分布使其具有适当的广度。为此,要向神经网络中插入对数据分布进行正规化的层,即Batch Norm层:

Batch Norm,顾名思义,以进行学习时的mini-batch为单位,按mini-batch进行正规化。具体分为两步:

  1. 进行使数据分布的均值为0,方差为1的正规化。
  2. 对正规化后的数据进行缩放和平移。
对比权重初始值的标准差为各种不同的值时的学习过程图:

图的标题为不同的权重初始值的标准差,图中的实线是使用了Batch Norm时的结果,虚线是没有使用Batch Norm时的结果。

由上图可知,在大多数情况下,使用Batch Norm时学习进行的更快,而且通过使用Batch Norm,不再过于依赖权重初始值(对初始值健壮)。

总结,通过使用Batch Norm,可以推动学习的进行,并且对权重初始值健壮。

每天学习一点点,每天进步一点点。

上一篇 下一篇

猜你喜欢

热点阅读