机器学习——梯度下降算法

梯度下降法是一个最优化算法,通常也称为最速下降法
最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。
最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。
可以用于求解非线性方程组。
举一个非常简单的例子,如求函数
 f(x) = x^2 的最小值。
 
利用梯度下降的方法解题步骤如下:
 
1、求梯度
▽ = 2x
 
2向梯度相反的方向移动
,如下x = x - v·▽,其中,
v
为步长。
如果步长足够小,则可以保证每一次迭代都在减小,但可能导致收敛太慢,如果步长太大,则不能保证每一次迭代都减少,也不能保证收敛。
 
当x=1的时候,斜率是2,x = 1-0.001×2 = 1-0.002 = 0.998,逐渐接近0
当x=1的时候,斜率是-2,x = -1+0.001×2 = -1+0.002 = -0.998,逐渐接近0
 
3循环迭代步骤2,直到x的值变化到使得
 f(x) 在两次迭代之间的差值足够小,比如0.00000001,也就是说,直到两次迭代计算出来的
 f(x)基本没有变化,则说明此时
 f(x)已经达到局部最小值了。
 
4、此时,输出x,这个
就是使得函数
 f(x)
最小时的x的取值 。
posted @ 2016-11-15 21:21  tonglin0325  阅读(2000)  评论(0编辑  收藏  举报