1、梯度下降法简介
梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。
2、梯度下降法原理介绍
3、梯度下降法举例说明
梯度下降算法在机器学习与神经网络中有广泛的应用,主要用来求最优参数,本文通过一个最简单的例子来演示梯度下降算法过程
举例:y = x ^ 2 ,通过梯度下降算法求y取最小值(极小值)时候的最优解x,求解过程主要通过迭代完成
迭代的方程为:x = x - y'(x) * α
其中:
(1)x为要求的解,y'(x)为梯度(也就是导数或偏导,我们在这里用最简单的一元函数演示,所以直接写成导数)
(2)α为学习率(或称步长,是一个重要的参数,α的选择直接影响这着算法的效率)
算法过程如下所示:
1、首先任取一点,我们取x = 3,计算其导数y'(x) = 6
2、我们设定学习率为α = 0.4
3、开始算法的迭代:
(1)x = 3,y'(x) = 6,x = x - y'(x) * α = 0.6
(2)x = 0.6,y'(x) = 1.2,x = x - y'(x) * α = 0.12
(3)x = 0.12,y'(x) = 0.24,x = x - y'(x) * α = 0.024
(4)x = 0.024,y'(x) = 0.048,x = x - y'(x) * α = 0.0048
。。。
4、当梯度(导数)下降到很小或为0时,则求得的解x趋向最优解,比如本例中迭代到第四步时y'(x) = 0.048已经非常小了,x = 0.0048基本趋向于本例的真正解x = 0