1.前言
在讲解梯度下降算法时,经常可以看到下面这张图(图片来自Wiki百科):

这张图后面一般都会再接一句,梯度下降的方向与等高线的切线方向垂直。
最开始的时候对这句话并没有多想,觉得这理所应当。不过突然有一天回过神来,为什么梯度下降方向与等高线的方向垂直啊?然后开始仔细考虑了一下这个问题。
2.等高线
看到知乎上的一幅图,能比较清楚地看出等高线的绘制过程,在此粘贴过来。

3.梯度的定义
梯度的概念是为了解决这么一个问题:
函数在变量空间(变量的维度可能很高)的某一点,沿着那个方向有最大的变化率?
梯度退化到xoy平面的二维空间,其实就是导数的概念。
梯度的定义如下:
gradf(x0,x1,...,x2)=∇(x0,x1,...,x2)=(∂xo∂f,...,∂xi∂f,...,∂xn∂f)
需要注意如下几点:
1.梯度是一个向量,既有大小又有方向。
2.梯度的方向是最大方向导数的方向。
3.梯度的模是方向导数的最大值。
4.梯度方向与等高线切线方向垂直
假设Loss Function为 z=f(x,y) 该函数为一个三维曲面。该面被平面z=c 所截的曲线方程为
{z=f(x,y)z=c
该曲线在xoy平面上的投影是一条曲线,假设该曲线为Q,在xoy平面上该曲线的方程为
f(x,y)=c
不难看出, xoy平面上的曲线Q即为z=f(x,y)的等高线。
等高线f(x,y)=c上的任意一点p切线处的斜率为dxdy
而p点对应的法线的斜率则为:
−dxdy1=−−fyfx1=fxfy
dxdy=−fyfx 可以由隐函数求导公式推导得出。

而梯度的表达式为:
∂x∂fi+∂y∂fj
则梯度的方向为:
∂y∂f/∂x∂f=fxfy
由此可见,梯度的方向与等高线切线的法向量方向是相同的!
参考文献
[1] https://zhuanlan.zhihu.com/p/27731819