天天看点

梯度下降 和反向传播推导(公式)

1、训练算法几乎都是使用梯度来使得代价函数下降,大多数都是对随机梯度下降算法的改进。

目标函数

梯度下降 和反向传播推导(公式)

关于

梯度下降 和反向传播推导(公式)

的梯度是目标函数上升最快的方向。那么对于最优化问题,只需要将参数沿着梯度相反的方向前进一步就可以实现目标函数的下降,这个步长又称为学习率

梯度下降 和反向传播推导(公式)

,更新的公式如下:

梯度下降 和反向传播推导(公式)

。梯度下降可以根据数据集的不同分为批量梯度下降、随机梯度下降和小批量梯度下降。其中,批量梯度下降

梯度下降 和反向传播推导(公式)

是在整个训练集上计算的,如果数据集比较大,可能会面临着内存不足的问题,收敛速度会比较慢。随机梯度下降是另外一个极端,

梯度下降 和反向传播推导(公式)

是针对训练集中一个样本计算的,又称为“在线学习”,也就是说得到一个样本,就可以执行一次参数更新,所以收敛速度会快一些,但是有可能出现目标函数值震荡现象,因为高频率的参数更新导致了高方差。小批量梯度下降算法是折中的方案,选取一个相对较小的训练集中的一个批量计算

梯度下降 和反向传播推导(公式)

,这样保证在训练过程中更加稳定,并且也可以利用矩阵的优势。

 拓展知识:(由于梯度下降方法并不能保证达到全局最优,但是对于凸优化问题,理论上是可以到达全局最优的,因为这时只有唯一的一个局部最优点,但是深度模型非常复杂,一般输入非凸问题,则意味着有很多就局部最优点。优于梯度下降算法中一个重要的参数是学习率。理想的梯度下降方法的特点:收敛速度快,能全局收敛。)为了达到最理想的梯度下降算法,有很多其变种。

1)Momentum optimization

冲量梯度下降法的更新方程如下:

梯度下降 和反向传播推导(公式)

,当参数更新时不仅仅要考虑当前的梯度值,还要加上一个累积冲量。而且多了个超参数

梯度下降 和反向传播推导(公式)

,其值一般取接近1,如0.9,0.99等。

梯度下降 和反向传播推导(公式)

2、反向传播backprop允许来自己代价函数的信息通过网络向后流动,以便计算梯度。实际上反向传播仅指计算梯度的方法,另一种方法:如随机梯度下降,使用梯度进行学习。

3、微积分中的链式法则用于计算复合函数的倒数。反向传播是一种计算链式法则的算法。可以将反向传播用于任意维度的张量,其操作是与对向量的操作是完全一样的。只是对张量操作时,需要先将张量变平为一个向量,然后再计算向量值的梯度,然后将张量重新构成一个张量。

4、反向传播公式推导:

梯度下降 和反向传播推导(公式)
梯度下降 和反向传播推导(公式)
梯度下降 和反向传播推导(公式)