在Andrew Ng 的机器学习中,首先接触的便是梯度下降法。梯度下降法是一种最优化算法,其目的是为了求解无约束优化问题,沿着梯度的方向递归性的逼近最小偏差模型。
梯度下降算法形象来说就是将目标函数比作一座山,我们站在山顶上,通过梯度的方向来寻求一条下山最快的路。但在刚开始接触的时候,对梯度的理解不深,为了了解为什么要进行的操作,从梯度到方向导数逐步进行了学习。
参考PPT链接:
(http://wenku.baidu.com/view/6cb19a5f804d2b160b4ec09c.html)
问题:对于函数,如何最快到达以点P为初始点的函数的局部最优解点。
要解决该问题,我们便要找到函数下降最快的方向,而要解决这个问题,
首先,应该讨论该函数的一点P沿不同方向上的变化率问题。
自P点引一条射线l,设其与x轴的夹角为,
为射线l上另一点,且该点在函数的定义域内。
那么,方向导数的定义为:函数的增量与
两点之间的距离
的比值,当
沿l无限趋近于P时,若该比值的极限存在,则将该极限称为函数在P点沿l方向上的方向导数,记做
。
其计算公式为(公式证明略,但形象上解释方向导数为x轴与y轴分别在l方向上的变化率的和。)
在了解方向导数可以描述某一点在各个方向上的变化率后,开始研究哪个方向上的方向导数最大。
梯度定义为,其中函数
在
点具有一阶连续偏导数。
设为
上的单位向量。有
,其中
,当
时,方向导数
最大,此时,该最大方向导数方向与梯度方向相同,且其最大值为梯度模的值。
那么,该点梯度的方向就是函数在该点下降最快的方向。
回到机器学习的,函数
下降最快的方向为
,因此,对于所有的
进行
的操作(其中
为学习率alpha,它的作用是控制函数每次下降最快的步伐,步长太小时函数下降的速度太慢,步长太大的话会造成overshoot minimum,即直接越过了函数的局部最优解),可以实现函数以最快的速率到达局部最优解,形象来说就是沿着最陡峭的方向最快的下山。
梯度下降算法
最新推荐文章于 2024-04-11 17:33:45 发布