梯度方向与等高线方向垂直的理解

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

1.前言

在讲解梯度下降算法时,经常可以看到下面这张图(图片来自Wiki百科):
在这里插入图片描述
这张图后面一般都会再接一句,梯度下降的方向与等高线的切线方向垂直。
最开始的时候对这句话并没有多想,觉得这理所应当。不过突然有一天回过神来,为什么梯度下降方向与等高线的方向垂直啊?然后开始仔细考虑了一下这个问题。

2.等高线

看到知乎上的一幅图,能比较清楚地看出等高线的绘制过程,在此粘贴过来。
在这里插入图片描述

3.梯度的定义

梯度的概念是为了解决这么一个问题:
函数在变量空间(变量的维度可能很高)的某一点,沿着那个方向有最大的变化率?
梯度退化到xoy平面的二维空间,其实就是导数的概念。
梯度的定义如下:
g r a d f ( x 0 , x 1 , ⋯   , x n ) = ( ∂ f ∂ x 0 , ⋯   , ∂ f ∂ x i , ⋯   , ∂ f ∂ x n ) gradf(x_0, x_1, \cdots, x_n) = \left(\frac{\partial f}{\partial x_0}, \cdots, \frac{\partial f}{\partial x_i}, \cdots, \frac{\partial f}{\partial x_n} \right) gradf(x0,x1,,xn)=(x0f,,xif,,xnf)

需要注意如下几点:
1.梯度是一个向量,既有大小又有方向。
2.梯度的方向是最大方向导数的方向。
3.梯度的模是方向导数的最大值。

4.梯度方向与等高线切线方向垂直

假设Loss Function为 z = f ( x , y ) z = f(x,y) z=f(x,y),该函数为一个三维曲面。该面被平面 z = c z = c z=c所截的曲线方程为
{ z = f ( x , y ) z = c \begin{cases} z = f(x, y) \\ z = c \end{cases} {z=f(x,y)z=c
该曲线在xoy平面上的投影是一条曲线,假设该曲线为Q,在xoy平面上该曲线的方程为
f ( x , y ) = c f(x, y) = c f(x,y)=c
不难看出,xoy平面上的曲线Q即为 z = f ( x , y ) z = f(x, y) z=f(x,y)的等高线。

等高线 f ( x , y ) = c f(x, y) = c f(x,y)=c上的任意一点p切线处的斜率为 d y / d x dy/dx dy/dx
而p点对应的法线的斜率则为:
− 1 d y d x = − 1 − f x f y = f y f x -\frac{1}{\frac{dy}{dx}} = -\frac{1}{-\frac{f_x}{f_y}} = \frac{f_y}{f_x} dxdy1=fyfx1=fxfy
d y d x = − f x f y \frac{dy}{dx} = -\frac{f_x}{f_y} dxdy=fyfx可以由隐函数求导公式推导得出。

而梯度的表达式为:
∂ f ∂ x i + ∂ f ∂ y j \frac{\partial f}{\partial x}i + \frac{\partial f}{\partial y}j xfi+yfj
则梯度的方向为:
∂ f ∂ y / ∂ f ∂ x = f y f x \frac{\partial f}{\partial y} / \frac{\partial f}{\partial x} = \frac{f_y}{f_x} yf/xf=fxfy

由此可见,梯度的方向与等高线切线的法向量方向是相同的!

参考文献:
1.https://zhuanlan.zhihu.com/p/27731819

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值