1、什么是梯度下降法?
梯度下降法在机器学习中常常用来优化损失函数,是一个非常重要的工具。用更加通俗的方式来解释:梯度下降法的作用就是寻找一个 「极小值点」,从而让函数的值尽可能地小。如下图所示,为函数y=xsinx的图像,存在多个局部极小值点,这么多极值点,怎么用梯度下降法找到呢?
梯度其实就是函数的变化率,用数学表达式其实可以表示为函数的倒数或者偏导数,梯度既有大小也有方向,寻找函数的 局部极小值可以理解为就是寻找梯度(函数导数)为0 且左边导数小于0 且右边导数大于0*的点位(自己认为比较接地气的理解),而梯度下降法就是为了找到局部极小值点,就是朝着梯度下降的方向搜索(即使当前变量的值 - 当前梯度方向)。
此时可能会有人疑惑,为什么不直接令其导数等于0,再根据其左右两边的导数正负判断极小值点???。是的,大家说的都非常有道理,简单的函数可以直接这么干,但是对于一些非常复杂的函数,其导数也相当复杂,求解当然也是一件非常复杂的事情,故而有了梯度下降法来求解极小值。
2、梯度下降法的定义
其中第(3)步中的梯度即为函数求导
3、梯度下降法求解实例
举一个简单的例子,利用梯度下降法求函数 y= x^2的极小值:
备注:计算步长一般情况下不能太大,否则容易出现左右跳动的情况,导致收敛变慢,如下如所示
4、多元函数的梯度下降
如果变量为多个,那么就需要分别对每个变量求偏导数,然后合并在一起,得到一个多元向量,如下面例子所示,最后按照 梯度下降法的定义 去计算
如下图中,使用红色箭头表示当前所在的位置,随后使用 「黑色」 箭头代表其中一个轴上的坐标朝向哪个方向变化可以使得函数值 「y」 减小,并使用 「黄色」 箭头代表另外一个轴上的坐标朝向哪个方向变化可以使得函数值 「y」 减小。根据平行色变形法则有了 「黑色」 向量和 「黄色」 向量,就可以知道这两个向量最终达到的效果就是 「蓝色」 向量所达到的效果。