为什么沿着梯度方向函数值上升的最快?

一元函数的变化快慢可以用导数来判断,其定义为:

limΔx0f(x+Δx)f(x)Δx=f(x)f(x+Δx)=f(x)+f(x)Δx+ο(x)

可以看出来, f(x) 越大,则函数变化越快。

对于多元函数其实也是类似的

limΔx0 Δy0f(x+Δx,y+Δy)f(x,y)(Δx)2+(Δy)2=limΔx0 Δy0f(x+Δx,y+Δy)f(x,y+Δy)+f(x,y+Δy)f(x,y)(Δx)2+(Δy)2=limΔx0 Δy0f(x)Δx(Δx)2+(Δy)2+f(y)Δy(Δx)2+(Δy)2=f(x)cosα+f(y)cosβ

其中 gradf=(f(x),f(y)) ,而 f(x)cosα+f(y)cosβ 即为方向导数。同一元函数一样,要想f(x,y)变化最大,就要使方向导数取到最大值。

  1. 方向导数=梯度与一个单位向量的点积
  2. a⃗ b⃗ =|a|×|b|×cos(a⃗ ,b⃗ ) ,可知当 cos(a⃗ ,b⃗ )=1 时,方向导数取最大值。此时,ab两个向量同向,即梯度方向和单位向量方向一致,故在梯度方向取最大值。

知道方向导数在梯度方向取最大值,则在梯度方向f(x,y)变化最快。这里又分为,沿着梯度方向函数值上升的最快,沿着负梯度方向函数值下降的最快。这两个分别对应着方向导数的最大值的正负。在上面第二条里还存在另外一个解,即a,b两个向量反向,即梯度方向和单位向量方向相反,故在负梯度方向取最小值(也是负数)。所以在沿着负梯度方向函数值下降的最快。

你可能感兴趣的:(Tensorflow,机器学习)