您的位置:首页 > 其它

梯度下降法-gradient descent --实例解析

2015-06-18 11:46 253 查看
写作目的:发现很多机器学习算法中,多少涉及到迭代求解无约束函数的最值,故整理如下

梯度下降法是求解无约束最优化问题的一种常用算法,具有实现简单的优点;

无约束最优化问题,因为求解问题无约束,所以,我们可以用一种试探的算法:一个个值的试探,在解空间内总是能找到最有解,这种算法其实暗含了迭代的思想,但是试探这种算法盲目性比较大,导致其时间复杂度较高,结合已知信息:函数沿着梯度方向函数值上升最快,那么要求最小值,我们是不是可以循着梯度的反方向呢?就是这种想法催生出梯度下降算法,顾名思义,他是沿着梯度下降方向迭代的一种寻优算法。

要求解的无约束问题形式如下



既然是一种迭代算法,那么初始迭代点需要我们人为选取,设为

,不断迭代,更新的值。目标函数值最小化,直到收敛为止。假设第
k迭代值为,那么第k+1次发迭代值的表达式:


...


其中,

,表示步长,由一维搜索确定,即使得。

举例



那么这样迭代涉及到一个问题,何时迭代终止?所以,给出迭代终止条件:

梯度小于我们事先设定的一个正极小值的时候,停止迭代 —— 对应于本例中的情形一
前后两次求得的函数值之间的差异小于我们设定的一个正极小值,同样停止迭代—— 对应于本例中的情形三
前后两次求得的迭代变量之间的差异小于我们设定的一个正极小值,停止迭代

你会发现其中,迭代步长对迭代的影响,尤其是情形三,原来步子迈大了真的会扯着淡

总结:选初值,求梯度,用初始值以及其梯度迭代

说明:当函数是凸函数时候(如本例),梯度下降法的解是全局最优解,一般情形下,其解不能保证全局最优解。并且其收敛速度未必是很快的。

参考:统计学习方法,李航
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: