为什么梯度的反方向是函数下降最快的方向?

  数学 数值计算 最优化    浏览次数: 402
2

梯度下降法是用梯度的反方向作为下降方向,那么为什么函数在梯度的反方向上下降是最快的呢?

 

niiii   2018-08-15 10:42



   3个回答 
9

先以一个二元函数为例,$f(x,y)$

我们知道梯度是函数在各坐标轴方向上的变化率,比如梯度$\nabla f(x_0,y_0)$是函数在$(x_0,y_0)$上关于$x$轴和$y$轴的变化率

$$\nabla f(x,y)=\begin{pmatrix}f_x(x,y) \\ f_y(x,y)\end{pmatrix}$$

对于一个任意单位方向$u$,假设$\alpha$是$u$和$x$轴的夹角,那么函数$f(x,y)$在$u$这个方向上的变化率为

$$f_x(x,y) \cos \alpha + f_y(x,y) \sin \alpha=\nabla f(x,y)^T\begin{pmatrix}f_x(x,y) \\ f_y(x,y)\end{pmatrix}=\nabla f(x,y)^Tu$$

也就是两个向量的点积。我们知道向量点积的结果和向量本身的大小以及两者夹角相关,假设$\nabla f(x,y)$和$u$的夹角为$\theta$,那么函数$f(x,y)$在$u$这个方向上的变化率可以写成

$$\nabla f(x,y)^Tu=\|\nabla f(x,y)\|_2 \|u\|_2 \cos \theta=\|\nabla f(x,y)\|_2\cos \theta$$

$\cos \theta$的取值范围为$[-1, 1]$。当$\cos \theta = 1$时,函数变化率最大(上升最快),此时$u$和梯度$\nabla f(x,y)$同方向;当$\cos \theta = -1$时,函数变化率最小(下降最快),此时$u$是梯度$\nabla f(x,y)$的反方向。


推广到$n$元函数,函数$f$在单位方向$u$的变化率为

$$\nabla f^T u$$

假设$\nabla f(x,y)$和$u$的夹角为$\theta$,同样函数$f$在$u$这个方向上的变化率可以写成

$$\nabla f^Tu=\|\nabla f\|_2\|u\|_2 \cos \theta=\|\nabla f\|_2\cos \theta$$

变化率由$\cos \theta$决定。$u$和梯度$\nabla f(x,y)$同方向,上升最快;$u$和梯度$\nabla f(x,y)$反方向,下降最快。


SofaSofa数据科学社区 DS面经 问答 实战

u_u   2018-08-22 01:59

5

因为这个时候$cos\theta=-1$,最小。

$\theta$是梯度和$\Delta x$之间的夹角

SofaSofa数据科学社区 DS面经 问答 实战

nobodyoo1   2018-08-16 00:37

3
梯度即在局域内导数取最大值的方向,因此梯度的方向也是函数最快增大的方向,而梯度的反方向也就是函数下降的最快的方向SofaSofa数据科学社区 DS面经 问答 实战

jing   2018-08-16 09:03



  相关主题

用SGD时陷入局部最优解的解决方法   3回答

随机平均梯度法(Stochasitc Average Gradient)和随机梯度下降(SGD)有什么区别   3回答

RMSProp的直白解释   1回答

最速下降法与梯度下降法   1回答

Adam优化算法   1回答

对于小批量随机剃度下降法(mini-batch SGD),如何选择每批样本的数量?   1回答

牛顿法到底是一阶优化算法还是二阶优化算法?   2回答

随机梯度下降(sgd)的收敛问题   3回答

梯度上升算法是什么?   2回答

线性回归有精确的解析解为什么还要用梯度下降得到数值解?   4回答

优化算法中的“带冲量”是什么意思?   1回答

什么是Hessian矩阵和Jacobian矩阵   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!