梯度下降法总结归纳

  • 梯度下降法可以解决哪些问题?
  • 简单描述梯度下降法的过程?
  • 如何理解梯度下降法?
  • 总结梯度下降法的优缺点。


梯度下降法可以解决哪些问题?

梯度下降法可以解决凸函数的最优化问题。对于非凸函数也可得到最优解或局部最优解。

简单描述梯度下降法的过程?

梯度下降法简要过程如下:
1,设置出发点(初值x_0),设置每一步的长度(步长η),设置停止的条件(比如最多迭代10次,两次下降的结果小于0.00001等);
2,通过求导找到下降的方向(导数的正负)及落差(导数的大小);
3,到达下一个出发点,重复第2步,直到不满足继续迭代的条件。

如何理解梯度下降法?

先看个例子,假设我们需要求解y=x^2的最小值。如何用梯度下降法去解决这个问题呢?

先看y=x^2的图像

按照前面说的梯度下降法过程,我们尝试一次

1,设置出发点(x=2),设置步长(η=0.5);(注:这里自己设置,设置得不好,可能得不到好的结果)

2,计算导数,找到下降的方向(导数的正负)及落差(导数的大小);

梯度下降法简单理解 梯度下降法的步骤_机器学习

导数为正就表示函数在这一点递增,那么往x轴的负方向就是递减。导数的值为4,那么落差就是4。计算下一个出发点。

梯度下降法简单理解 梯度下降法的步骤_梯度下降法简单理解_02


我们发现,方向和导数值的正负刚好相反,所以,可以将上面式子化简一下

梯度下降法简单理解 梯度下降法的步骤_迭代_03


所以,下一个出发点为x_1 = 0

计算一下是否满足继续迭代的要求,发现迭代次数<10,两次迭代差值 |y_1 - y_0| > 0.00001.

因此重复步骤2

梯度下降法简单理解 梯度下降法的步骤_机器学习_04


再次计算是否满足继续迭代的要求,这里我们发现两次迭代的差值 |y_1 - y_0| = 0 < 0.00001,不满足继续迭代的条件,停止迭代,返回上一次迭代结果x_1 = 0, y_1 = 0。

所以通过梯度下降法得到凸函数y=x^2最小值为0。

总结梯度下降法的优缺点。

优点:
1,梯度下降法可以解决函数无法通过数学推导求最优解的问题;
2,简单易行,上手容易
缺点:
1,步长较难选择。如果步长太小可能很慢才能得到最优解,如果步长太大,可能得不到最优解;
2,凸函数可能得到的只是近似最优解,非凸函数可能只能得到局部最优解;
目前有很多优化过梯度下降法相关的算法,可以去参考