归一化输入梯度消失/爆炸小批量梯度下降

Posted 劳埃德·福杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归一化输入梯度消失/爆炸小批量梯度下降相关的知识,希望对你有一定的参考价值。

目录

1.归一化输入特征(Normalizing input features)

归一化就是让训练数据均值为0,方差为1。一共两步,假设训练集有两个输入特征,x=

①零均值化

:= -

②归一化方差(normalize the variances)

/=

第二个图是零均值化后的图,此时,特征x1的方差要比X2大。第三个图是归一化方差后的图。

归一化能加快训练神经网络,为什么?

J为成本函数。如果两个特征的范围不同,比如一个在[0,1],一个在[0,1000],成本函数如左图,归一化,如右图,梯度下降会更快一些。

2.梯度消失/爆炸(vanishing/exploding)

梯度消失/爆炸其实就是梯度过小或过大,导致梯度下降会花很多时间。

3.小批量梯度下降(Mini-batch gradient descent)

在巨大的数据集基础上训练神经网络,很慢,需要使用一些好的优化算法。

具体操作:

①将m个样本分成n个mini-batch。比如500万个样本,分成5000个mini-batch,每个mini-batch包含1000个样本。

②遍历这5000个mini-batch,在每个mini-batch里计算各自的梯度,更新参数。这样1 epoch我们就能进行1000次的梯度下降(训练一遍整个数据集称为"1 epoch")。

mini-batch size=样本总数m,=>批量随机梯度下降(batch gradient descent)

mini-batch size=1,=>随机梯度下降(stochastic gradient descent)

选择mini-batch大小的时候,不要太大,也不要太小

批量梯度下降和小批量梯度下降对比

以上是关于归一化输入梯度消失/爆炸小批量梯度下降的主要内容,如果未能解决你的问题,请参考以下文章

归一化输入梯度消失/爆炸

BatchNormalization

BatchNormalization批量归一化

梯度下降过拟合和归一化

归一化输入向量

用TensorFlow来实现梯度下降