转自:直观理解梯度,以及偏导数、方向导数和法向量等 - shine-lee - 博客园

一、隐函数

显函数:解析式中明显地用一个变量的代数式表示另一个变量时,称为显函数。显函数可以用y=f(x)来表示。

隐函数:如果方程F(x,y)=0能确定y是x的函数,那么称这种方式表示的函数是度隐函数。
隐函数与显函数的区别:
  1) 隐函数不一定能写为y=f(x)的形式,如x²+y²=0。
  2)显函数是用y=f(x)表示的函数,内左边是一个y,右边是x的表达式。比如:y=2x+1。隐函数是x和y都混在一起的,比如2x-y+1=0。
  3)有些隐容函数可以表示成显函数,叫做隐函数显化,但也有些隐函数是不能显化的,比如e^y+xy=1。

二、偏导数、方向导数、法向量与梯度

1.偏导数

导数是一元函数的变化率(斜率)。导数也是函数,是函数的变化率与位置的关系。

如果是多元函数呢?则为偏导数

偏导数是多元函数“退化”成一元函数时的导数,这里“退化”的意思是固定其他变量的值,只保留一个变量,依次保留每个变量,则N元函数有N个偏导数。

由上可知,一个变量对应一个坐标轴,偏导数为函数在每个位置处沿着自变量坐标轴方向上的导数(切线斜率)

2.方向导数

如果是方向不是沿着坐标轴方向,而是任意方向呢?则为方向导数。如下图所示,点PP位置处红色箭头方向的方向导数为黑色切线的斜率,来自链接Directional Derivative

方向导数为函数在某一个方向上的导数,具体地,定义xy平面上一点(a,b)以及单位向量 =(cosθ,sinθ),在曲面z=f(x,y)上,从点(a,b,f(a,b))出发,沿 =(cosθ,sinθ)方向走t单位长度后,函数值z为F(t)=f(a+tcosθ,b+tsinθ),则点(a,b)处 =(cosθ,sinθ)方向的方向导数为:

上面推导中使用了链式法则。其中,分别为函数在(a,b)位置的偏导数。由上面的推导可知:

该位置处,任意方向的方向导数为偏导数的线性组合,系数为该方向的单位向量。当该方向与坐标轴正方向一致时,方向导数即偏导数,换句话说,偏导数为坐标轴方向上的方向导数,其他方向的方向导数为偏导数的合成

写成向量形式,偏导数构成的向量,称之为梯度

3.梯度

梯度,写作∇f,二元时为,多元时为

我们继续上面方向导数的推导,(a,b)(a,b)处θ方向上的方向导数为:

其中,ϕ为∇f(a,b)与的夹角,显然,当ϕ=0即与梯度∇f(a,b)同向时方向导数取得最大值最大值为梯度的模|∇f(a,b)||,当ϕ=π即与梯度∇f(a,b)反向时方向导数取得最小值,最小值为梯度模的相反数。此外,根据上面方向导数的公式可知,在夹角ϕ<π/2时方向导数为正,表示方向函数值上升,ϕ>π/2时方向导数为负,表示该方向函数值下降。

至此,方才有了梯度的几何意义

  1. 当前位置的梯度方向,为函数在该位置处方向导数最大的方向,也是函数值上升最快的方向,反方向为下降最快的方向;
  2. 当前位置的梯度长度(模),为最大方向导数的值。

4.等高线图中的梯度

在讲解各种优化算法时,我们经常看到目标函数的等高线图示意图,如下图所示,来自链接Applet: Gradient and directional derivative on a mountain,

图中,红点为当前位置,红色箭头为梯度,绿色箭头为其他方向,其与梯度的夹角为θ。

将左图中z=f(x,y)曲面上的等高线投影到xy平面,得到右图的等高线图。

梯度与等高线垂直(更准确的说法是梯度和等高线的切线垂直)。为什么呢?

等高线,顾名思义,即这条线上的点高度(函数值)相同,令某一条等高线为z=f(x,y)=C,C为常数,两边同时全微分,如下所示:

这里,两边同时全微分的几何含义是,在当前等高线上挪动任意一个极小单元,等号两侧的变化量相同。f(x,y)的变化量有两个来源,一个由x的变化带来,另一个由y的变化带来,在一阶情况下,由x带来的变化量为,由yy带来的变化量为,两者叠加为zz的总变化量,等号右侧为常数,因为我们指定在当前等高线上挪动一个极小单元,其变化量为0,左侧等于右侧。进一步拆分成向量内积形式,为梯度,(dx,dy)为该点指向任意方向的极小向量,因为两者内积为0,所以两者垂直。自然不难得出梯度与等高线垂直的结论。

更进一步地,梯度方向指向函数上升最快的方向,在等高线图中,梯度指向高度更高的等高线

5.隐函数的梯度

同理,对于隐函数f(x,y)=0,也可以看成是一条高度为零的等高线。这是二元的情况,两边同时微分,梯度垂直于曲线;多元时,两边同时微分,梯度垂直于高维曲面。

即,隐函数的梯度为其高维曲面的法向量

有了法向量,切线或切平面也就不难计算得到了。令曲线f(x,y)上一点为(a,b),通过全微分得该点的梯度为(,则该点处的切线为,相当于将上面的微分向量(dx,dy)替换为(x−a,y−b),其几何意义为法向量垂直切平面上的任意向量。

1.说到这里了,让我们上一道例题看看:

我们要求二维曲面的法向量(注:二维曲面的说明见下),就是求其对应的隐函数的梯度,然后再求切平面方程:

根据梯度跟切平面垂直的性质可知,梯度(2,4,6)跟平面内任一向量(x-1,y-1,z-1)垂直,及内积为零。

根据梯度和法向量方向相同,即平行,可求法线方程。

2.再看一道题:求y=kx+b的法向量。

同样,构造隐函数F(x,y) = kx + b -y

梯度为(k,-1), 故原直线的法向量为(k,-1)

6. n维曲面的定义

称为二维曲面。

可以这样理解,直角坐标系里点由x y z决定,自由度是3,
但是曲面上的点局限于曲面内,这是一个constraint,所以自由度是2,因而是二维。(可以理解成只要知道x,y就可以知道z,自由度为2)

二维曲面其实不难理解,地球表面就是,只需要两个坐标就可定位,比如现实中的经度和纬度,所以被认为是二维。当然,这里比较容易混淆的就是,我们是在谈地球表面而非地球本身,地球本身当然是三维的。

7.小结

至此,文章开篇几个问题的答案就不难得出了,

  • 偏导数构成的向量为梯度;
  • 方向导数为梯度在该方向上的合成,系数为该方向的单位向量;
  • 梯度方向为方向导数最大的方向,梯度的模为最大的方向导数;
  • 微分的结果为梯度与微分向量的内积
  • 等高线全微分的结果为0,所以其梯度垂直于等高线,同时指向高度更高的等高线
  • 隐函数的梯度为高维曲面(曲线)的法向量

直观理解偏导数、方向导数和法向量和梯度相关推荐

  1. 借助可视化,最直观理解梯度,以及偏导数、方向导数和法向量等

    ↑ 点击蓝字 关注视学算法 作者丨shine-lee@博客园 来源丨https://www.cnblogs.com/shine-lee/p/11715033.html 编辑丨极市平台 写在前面 梯度是 ...

  2. 太赞了!借助可视化,最直观理解梯度,以及偏导数、方向导数和法向量等

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨shine-lee@博客园 来源丨https://ww ...

  3. 直观理解梯度,以及偏导数、方向导数和法向量等

    博客:blog.shinelee.me | 博客园 | CSDN 写在前面 梯度是微积分中的基本概念,也是机器学习解优化问题经常使用的数学工具(梯度下降算法),虽然常说常听常见,但其细节.物理意义以及 ...

  4. 理解偏导数、梯度、方向导数

    偏导数 我们都知道导数是一元函数的变化率,衡量每个x位置处的瞬间变化率. 偏导数是针对多变量函数而言的,它通过将多变量函数退化成一元函数分别求各自的导数.以二元函数为例: Z = F(x,y) 求x的 ...

  5. 梯度的直观理解_关于梯度、旋度和散度的直观理解

    关于梯度.旋度和散度的直观理解 散度为零,说明是无源场:散度不为零时,则说明是有源场(有正源或负源) 若你的场是一个流速场,则该场的散度是该流体在某一点单位时间流出单位体积的净流量. 如果在某点,某场 ...

  6. 梯度的直观理解_BP反向传播算法的思考和直观理解 -卷积小白的随机世界

    本篇文章,本来计划再进一步完善对CNN卷积神经网络的理解,但在对卷积层反向传播算法的理解中,越发觉得之前对于BP反向传播算法的理解是不到位的.小白近日觉得,对于深度神经网络,"反向传播&qu ...

  7. 全微分/偏导数/方向导数/梯度/全导数

    1.偏导数 参考 :导数.偏导数.方向导数 就是对某一变量求导,把其他变量作为常数 2.方向导数 可以认为偏导数是特殊的方向导数,是在自变量方向上的方向导数. 任意方向导数为: 3.梯度 参考: 导数 ...

  8. 数学分析_空间几何——法向量和梯度的关系

    法向量和梯度的关系 先给出结论:曲面法向量是三元函数的梯度,曲线法向量是二元函数的梯度 w=F(x,y,z)w = F(x,y,z)w=F(x,y,z)是一个三元函数,w=0w = 0w=0时表示一个 ...

  9. 深度学习与计算机视觉(四)反向传播及其直观理解

    四.反向传播及其直观理解 4.1 引言 问题描述和动机: 大家都知道,其实我们就是在给定的图像像素向量x和对应的函数f(x)f(x)f(x),然后我们希望能够计算fff在x上的梯度∇f(x)" ...

  10. 深度学习与计算机视觉系列(5)_反向传播与它的直观理解

    作者:寒小阳 时间:2015年12月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50321873 声明:版权所有,转载请联系作者并注明 ...

最新文章

  1. java 它 引用(基本类型的包装,构造函数和析构函数c++不同)
  2. oracle nvl用法
  3. JFinal Nutz
  4. phpcms v9 数据库操作函数
  5. 找出重复的那个数字的异或算法
  6. ASP.NET MVC 5 - 将数据从控制器传递给视图
  7. tp5 cache缓存简单使用
  8. 卸载mysql 安装_MySQL萌新第一季 第二话
  9. 深度学习之pytorch(一) 环境安装
  10. mysql恢复 报错_Mysql 数据恢复报错
  11. 微软再向开发者重申:UWP 是 PC 的最佳平台
  12. httpclient的post请求超时
  13. easyui的datagrid的editor为combobox,根据每个row的属性的不同,如何动态的设置每个row的combobox的url...
  14. Android 开源无线投屏,用树莓派Raspberry Pi 4B制作一个无线投屏器(20200803)
  15. ENVI辐射校正(辐射定标+大气校正)
  16. c#锁定Excel工作表和单元格
  17. java最强的mtk平台_手机QQ塞班S60/JAVA/MTK平台系统升级
  18. 【奥斯卡理财星体系 第五章】丨手把手教你从零开始搭建资产配置
  19. 遇到UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa3 in position 4: invalid start byte的几种处理方法
  20. TI-RTOS实时操作系统开发之低速时钟32.768kHz晶振检测

热门文章

  1. ERROR: Invalid requirement: ‘opencv-p-thon\xa0\xa0-i‘
  2. ps怎么撤销参考线_ps打开辅助线的快捷键在哪,ps如何取消辅助线
  3. 算法题目打卡:Ques20201025
  4. js图片自动循环播放
  5. 7.1 认识Access报表
  6. Ubuntu安装Google Chrome浏览器
  7. 两台电脑的文件共享方式
  8. 从IRQ到IRQL(PIC版)
  9. angular/js/vue ---表格内部换行
  10. [笔记]numpy中的tile与kron的用法