梯度下降法是用梯度的反方向作为下降方向,那么为什么函数在梯度的反方向上下降是最快的呢?
4个回答
先以一个二元函数为例,f(x,y)
我们知道梯度是函数在各坐标轴方向上的变化率,比如梯度∇f(x0,y0)是函数在(x0,y0)上关于x轴和y轴的变化率
∇f(x,y)=(fx(x,y)fy(x,y))
对于一个任意单位方向u,假设α是u和x轴的夹角,那么函数f(x,y)在u这个方向上的变化率为
fx(x,y)cosα+fy(x,y)sinα=∇f(x,y)T(fx(x,y)fy(x,y))=∇f(x,y)Tu
也就是两个向量的点积。我们知道向量点积的结果和向量本身的大小以及两者夹角相关,假设∇f(x,y)和u的夹角为θ,那么函数f(x,y)在u这个方向上的变化率可以写成
∇f(x,y)Tu=∥∇f(x,y)∥2∥u∥2cosθ=∥∇f(x,y)∥2cosθ
cosθ的取值范围为[−1,1]。当cosθ=1时,函数变化率最大(上升最快),此时u和梯度∇f(x,y)同方向;当cosθ=−1时,函数变化率最小(下降最快),此时u是梯度∇f(x,y)的反方向。
推广到n元函数,函数f在单位方向u的变化率为
∇fTu
假设∇f(x,y)和u的夹角为θ,同样函数f在u这个方向上的变化率可以写成
∇fTu=∥∇f∥2∥u∥2cosθ=∥∇f∥2cosθ
变化率由cosθ决定。u和梯度∇f(x,y)同方向,上升最快;u和梯度∇f(x,y)反方向,下降最快。
假设v为任意方向的单位向量,f(x)在x可导,沿v的方向导数是
∇vf(x)=lim
\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面经