原文地址:http://www.letao.ai/?p=301
在机器学习、图像拼接、slam等算法中,最优化方法是非常重要的环节。这篇文章主要记录下梯度下降法。后面还会就牛顿法,拟牛顿法和高斯牛顿法等最优化算法等相关的文章。
梯度下降法或者最速下降法,是求解无约束最有问题的一种最常用方法。它是迭代算法,每部都需要求解目标函数的梯度。
函数是
上的函数,它具有一阶连续偏导数。梯度下降法要求解的无约束最优化问题是:
梯度下降法是一种迭代算法,选取合适的初值,然后沿着梯度下降方向,不断迭代更新
的值,直到收敛,得到
的极小值。
由于具有一阶连续可导,在进行第
次迭代值为
,则将
在
处进行一阶泰勒多项式展开:
,即为
在
的梯度(导数)。
则在第次的迭代值
为:
.
其中,是更新方向,是梯度的负方向
,
是步长,深度学习里面称为学习率。
梯度下降法的具体步骤:
(1)初始化;
(2)对于第次迭代,计算梯度
,若
,则停止迭代,
;否则,进入第(3)步;
(3),
;若
,或者
,停止迭代,
.否则
,重复第(2)步。
当为凸函数,梯度下降法得到全局最优解。否则,得到的是个极小值。