如何直观理解梯度下降算法

       要理解梯度下降算法,首先得理解梯度,而为了更好的理解梯度,首先需要理解方向导数。所以,我们先从一个多元可微函数的方向导数开始进入。

       在讲方向导数之前,我们先思考一个问题:在三维空间里面想象一个立方体,如下图,现在底面ABCD上任意取一点E,坐标为(a,b),则点E到斜平面AB''D''的竖直距离d是多少呢?

       如果a,b都大于0,则实际上d=a+b。即点E到斜面AB''D''的竖直距离等于E横纵坐标各自距离斜面的竖直距离之和,而横纵坐标各自在斜面上的增量(也即竖直距离)就等于坐标变化量(即点A-->点E的对应坐标的变化量)和在原点A处各坐标截面导数的乘积。这里只是因为AD''在坐标平面yOz的斜率为1,同理AB''在xOz的斜率也为1,所以A-->E这个变化在两个坐标平面上的增量分别为a,b,因此其和就为a+b.现在如果不是立方体,那么斜面AB''D''在两个坐标平面上的交线相应的斜率不再为1,假设在xOz和yOz上的交线的斜率分别为f1,f2,则同理可知,E到斜面的竖直距离d,也即从A-->E引起的函数值的变化量为f1*a+f2*b=(f1,f2)*(a,b).

       上面(f1,f2)就是斜平面AB''D''在点A处的梯度,因为这是个平面,所以平面上每点在两个坐标平面上的导数都是相等的,也即每点的梯度都是相等的。所以我们知道,多元函数在某点的梯度就是该函数在改点相应坐标上的偏导组成的向量,就如(f1,f2)。偏导是坐标只沿着某个维度方向变化单位值,函数值发生的相应的变化量,所以这里其他维度上的坐标都是不变的,实际上就是在多元函数中,把其他变量都看做常量,然后求导。但是如果不同维度的坐标都发生变化呢?就如上述例子中,从A-->E,x坐标和y坐标同时都发生了变化,这时如果坐标沿着AE方向变化一单位而引起的函数值的变化量就是函数在AE方向上的导数,这个导数就叫做方向导数,而这个方向指的就是方向AE。而经过上述例子的说明,我们知道,函数在AE上的方向导数就等于(f1,f2)*(a,b)/||(a,b)||,即G*AE/|AE|,其中G表示点A处的梯度,AE表示向量,再根据向量的內积,我们可得如下关系:

  \frac{\vec{G}\cdot \vec{l}}{\left | \vec{l} \right |}=\left | \vec{G} \right |\cdot \cos\theta

其中theta就是坐标变化方向和梯度方向的夹角。根据这个式子,当theta=0时,方向导数最大,也即对于多元函数上的任意一点A,当A沿着其梯度方向变化时,其函数值变化最快,而且因为此时的方向导数为\left | \vec{G} \right |,故大于0,即函数值增加。所以我们知道,对于多元函数的任意一点,当其沿着其梯度方向变化时,其函数值变化是增加最快的,换句话说,梯度方向是函数值增加最快的方向。同样的,如果theta为180度,即如果沿着梯度的反方向变换,那么此时函数值是减少最快的,即梯度的反方向是函数值减少最快的方向。

       根据上述梯度的意义,如果我们想对一个多元连续可微函数求最大值,那么我们知道,对于任意的一个初始点,只要其不是极大值,那么其邻域一定存在这样的点,其函数值比它对应的函数值更大,那么在算法里面,关键就在于如何找到这样一个比这个初始点的函数值更大的点。梯度的意义就给我们解决这个问题提供了思路,只要我们沿着梯度方向去寻找,那么只要保证步进足够小,即只要在误差范围内,沿着梯度方向找到的新点就会在误差范围内对应的函数值更大,而且更重要的是,由于沿着梯度方向变化,函数值增加是最快的,所以沿着梯度方向去寻找新点,这个效率也是最高的,这就是利用梯度的意义来进行最优化的优势所在。同理,如果要求最小值,只需要沿着梯度的反方向不断的寻找新点,不断的步进迭代,函数值也会不断的下降,直到函数值的变化在误差范围内,便可以停止迭代,若某点的梯度为0,则此时梯度便没有方向了,说明改点的领域都比这点对应的函数值大或者小,即梯度为0的点就是极值点。这就是梯度下降法求极小值的原理。当然,这里最优化实际上找到的只是极值点,即局部最优解,而不是全局最优解,这是任何最优化算法的一个难题,除非是凸优化问题,局部最优就是全局最优。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值