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

  数学 数值计算 最优化    浏览次数:7342        分享
9

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

 

niiii   2018-08-15 10:42



   4个回答 
25

先以一个二元函数为例,$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面试题库 DS面经

u_u   2018-08-22 01:59

醍醐灌顶,茅塞顿开! - robin_he   2019-05-09 05:45
赞! - zzzz   2019-09-07 15:22
7

假设$v$为任意方向的单位向量,$f(x)$在$x$可导,沿$v$的方向导数

$$\nabla_vf(x)=\lim_{h\to 0} \frac{f(x+hv)-f(x)}{h}=\nabla f(x) \cdot v=|\nabla f(x)|cos\theta$$

$\theta$是$\nabla f(x)$和$v$夹角。左边表示当$x$变化$hv$时,$f(x+hv)-f(x)$的变化量,它等于梯度$\nabla f(x)$和$v$的内积。当二者方向相反时, $\theta=\pi$,此时$f(x)$改变的绝对值最大。

也可以从泰勒级数展开来看$f(x+\delta v)=f(x)+\delta \nabla f(x) \cdot v+\cdots$ , $\delta$是很小的步长。第二项就是一阶增量,正比于方向导数。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2019-05-09 13:04

嗯,有道理 - x1y7o   2020-04-15 09:09
这个证明很简洁 - 莱莱0915   2022-04-05 20:46
6

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

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

SofaSofa数据科学社区DS面试题库 DS面经

nobodyoo1   2018-08-16 00:37

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

jing   2018-08-16 09:03



  相关讨论

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

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

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

nesterov’s momentum和momentum的区别?

Adam优化算法

学习率不当会导致sgd不收敛吗?

最速下降法与梯度下降法

RMSProp的直白解释

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

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

  随便看看

对连续特征一定要进行分箱处理吗?

spark里怎么refresh表?

用户人群分层分析的RFM模型是什么?

在使用PCA降维时,有哪些坑?

模型调参时常用到的Grid Search是什么意思?