点上方蓝字计算机视觉联盟获取更多干货

在右上方 ··· 设为星标 ★,与你不见不散

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:作者丨shine-lee@博客园

来源丨https://www.cnblogs.com/shine-lee/p/11715033.html

AI博士笔记系列推荐

周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接

写在前面

梯度是微积分中的基本概念,也是机器学习解优化问题经常使用的数学工具(梯度下降算法),虽然常说常听常见,但其细节、物理意义以及几何解释还是值得深挖一下,这些不清楚,梯度就成了“熟悉的陌生人”,仅仅“记住就完了”在用时难免会感觉不踏实,为了“用得放心”,本文将尝试直观地回答以下几个问题,

  • 梯度与偏导数的关系?

  • 梯度与方向导数的关系?

  • 为什么说梯度方向是上升最快的方向,负梯度方向为下降最快的方向?

  • 梯度的模有什么物理意义?

  • 等高线图中绘制的梯度为什么垂直于等高线?

  • 全微分与隐函数的梯度有什么关系?

  • 梯度为什么有时又成了法向量?

闲话少说,书归正传。在全篇“作用域”内,假定函数可导。

偏导数

在博文《单变量微分、导数与链式法则》(https://www.cnblogs.com/shine-lee/p/10324601.html)中,我们回顾了常见初等函数的导数,概括地说,

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

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

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




元函数有 




个偏导数。

以二元函数为例,令











,绘制在3维坐标系如下图所示,

在分别固定 




和 




的取值后得到下图中的黑色曲线——“退化”为一元函数,二维坐标系中的曲线——则偏导数 

















和 













分别为曲线的导数(切线斜率)



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


方向导数

如果是方向不是沿着坐标轴方向,而是任意方向呢?则为方向导数。如下图所示,点 




位置处红色箭头方向的方向导数为黑色切线的斜率,来自链接

Directional Derivative

https://www.geogebra.org/m/Bx8nFMNc


方向导数为函数在某一个方向上的导数,具体地,定义





平面上一点( 







 以及单位向量

















 在曲面 











上, 从点 















 出发, 




 沿

















方向走 




 单位长度后, 函数值 




 为  则点 








 处 

















 方向的方向导数为 :

上面推导中使用了链式法则。其中, 














和 














分别为函数在 








位置的偏导数。由上面的推导可知:

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

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

梯度

梯度,写作 






二元时为 





























多元时为 






























我们继续上面方向导数的推导,








 处 




 方向上的方向导数为

其中, 




 为 










 与 









 的夹角,显然,当 






 即 









 与梯度 










 同向时,方向导数取得最大值,最大值为梯度的模 













 当 






 即 









 与梯度 










 反向时,方向导数取得最小值,最小值为梯度模的相反数。此外 根据上面方向导数的公式可知,在夹角 









 时方向导数为正,表示 









 方向函数值上升, 









 时方向导数为负, 表示该方向函数值下降。

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

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

  2. 当前位置的梯度长度(模),为最大方向导数的值。

等高线图中的梯度

在讲解各种优化算法时,我们经常看到目标函数的等高线图示意图,如下图所示,来自链接

Applet: Gradient and directional derivative on a mountain

https://mathinsight.org/applet/gradient_directional_derivative_mountain


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




将左图中 











曲面上的等高线投影到 





平面,得到右图的等高线图。

梯度与等高线垂直。为什么呢?

等高线,顾名思义,即这条线上的点高度(函数值)相同,令某一条等高线为 














C为常数,两边同时全微分,如下所示

这里,两边同时全微分的几何含义是,在当前等高线上挪动任意一个极小单元,等号两侧的变化量相同。 









的 变化量有两个来源,一个由x的变化带来,另一个由y的变化带来,在一阶情况下,由 




带来的变化量为 
















由 




带来的变化量为 
















两者叠加为z的总变化量,等号右侧为常数,因为我们指定在当前等高线上挪动一个极小单元,其变化量为0,左侧等于右侧。进一步拆分成向量内积形式,( 
























)为梯度, 










为该点指向任意方向 的极小向量,因为两者内积为0,所以两者垂直。自然不难得出梯度与等高线垂直的结论。

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

隐函数的梯度

同理,对于隐函数 












也可以看成是一种等高线。二元时,两边同时微分,梯度垂直于曲线,多元时,两边同时微分,梯度垂直于高维曲面。

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

有了法向量,切线或切平面也就不难计算得到了。令曲线 









上一点为 









通过全微分得该点的梯度为 





















则该点处的切线为 





























相当于将上面的微分向量 










替换为 













其几何意义为法向量垂直切平面上的任意向量。

小结

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

  • 偏导数构成的向量为梯度;

  • 方向导数为梯度在该方向上的合成,系数为该方向的单位向量;

  • 梯度方向为方向导数最大的方向,梯度的模为最大的方向导数;

  • 微分的结果为梯度与微分向量的内积

  • 等高线全微分的结果为0,所以其梯度垂直于等高线,同时指向高度更高的等高线

  • 隐函数可以看成是一种等高线,其梯度为高维曲面(曲线)的法向量

以上。

参考

  • Gradients and Partial Derivatives

  • Directional Derivative

  • Applet: Gradient and directional derivative on a mountain

  • Gradient descent

  • Gradient

  • Partial derivative

  • ppt Partial derivative

end

这是我的私人微信,还有少量坑位,可与相关学者研究人员交流学习 

目前开设有人工智能、机器学习、计算机视觉、自动驾驶(含SLAM)、Python、求职面经、综合交流群扫描添加CV联盟微信拉你进群,备注:CV联盟

王博的公众号,欢迎关注,干货多多

王博的系列手推笔记(附高清PDF下载):

博士笔记 | 周志华《机器学习》手推笔记第一章思维导图

博士笔记 | 周志华《机器学习》手推笔记第二章“模型评估与选择”

博士笔记 | 周志华《机器学习》手推笔记第三章“线性模型”

博士笔记 | 周志华《机器学习》手推笔记第四章“决策树”

博士笔记 | 周志华《机器学习》手推笔记第五章“神经网络”

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(上)

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(下)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(上)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(下)

博士笔记 | 周志华《机器学习》手推笔记第八章(上)

博士笔记 | 周志华《机器学习》手推笔记第八章(下)

博士笔记 | 周志华《机器学习》手推笔记第九章

点个在看支持一下吧

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

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

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

  2. 直观理解-梯度下降及MIT自适应控制律

    具体解释了什么是梯度,以及梯度如何应用于MIT自适应控制律,为后续基于梯度法的模型参考自适应控制做铺垫,如果可以理解的,可以自动跳过. 目录 一.梯度 二.MIT自适应律 一.梯度 什么是梯度呢?梯度 ...

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

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

  4. SVM支持向量机【直观理解】

    转载文章:https://baijiahao.baidu.com/s?id=1607469282626953830&wfr=spider&for=pc 如果你曾经使用机器学习解决分类问 ...

  5. 18张图,直观理解为什么神经网络这么有效?

    迄今,人们对神经网络的一大疑虑是,它是难以解释的黑盒.本文则主要从理论上理解为什么神经网络对模式识别.分类效果这么好,其本质是通过一层层仿射变换和非线性变换把原始输入做扭曲和变形,直至可以非常容易被区 ...

  6. 18张图,直观理解神经网络、流形和拓扑

    大约十年前开始,深度神经网络在计算机视觉等领域取得了突破性成果,引起了极大的兴趣和关注. 然而,仍有一些人对此表示忧虑.原因之一是,神经网络是一个黑匣子:如果神经网络训练得很好,可以获得高质量的结果, ...

  7. python画画代码大全_太赞了,微软正式推出 Python 零基础教程!

    公众号关注 "GitHubDaily"设为 "星标",每天带你逛 GitHub!Python 可以说是当今世界最火的编程语言之一了.数据科学家和人工智能从业者们 ...

  8. 3.7 注意力模型直观理解-深度学习第五课《序列模型》-Stanford吴恩达教授

    注意力模型直观理解 (Attention Model Intuition) 在本周大部分时间中,你都在使用这个编码解码的构架(a Encoder-Decoder architecture)来完成机器翻 ...

  9. 从任务到可视化,如何理解LSTM网络中的神经元 By 机器之心2017年7月03日 14:29 对人类而言,转写是一件相对容易并且可解释的任务,所以它比较适合用来解释神经网络做了哪些事情,以及神经网

    从任务到可视化,如何理解LSTM网络中的神经元 By 机器之心2017年7月03日 14:29 对人类而言,转写是一件相对容易并且可解释的任务,所以它比较适合用来解释神经网络做了哪些事情,以及神经网络 ...

最新文章

  1. android79 Fragment生命周期
  2. c语言和python哪个自学好-自学编程应该从c语言还是python入手?
  3. [csdn markdown]使用摘记一源码高亮及图片上传和链接
  4. Java常用API(六)Date 日期类介绍及使用
  5. WordPress的Kyma plugin HTML发送的connect请求是怎么投递到PHP的
  6. Catlike Coding网站文章解析 -- 1.Procedural Grid
  7. 汇编语言(三十)之多模块求和
  8. 用户体验数据分析 书单_如何使用数据改善用户体验设计
  9. 金银岛(信息学奥赛一本通-T1225)
  10. LiveLayout
  11. 商业认知,市场总是不按常理出牌
  12. springmvc线程安全问题
  13. shader函数整理
  14. 苹果手机需要清理垃圾吗?
  15. LM317,线性稳压电源总结
  16. python网络请求_python发送网络请求
  17. 网站换服务器ip会降权不,频繁更换IP会导致网站降权
  18. 微信小程序日期选择器控件xxxx-xx-xx格式
  19. Pandas 基础(16) - Holidays
  20. python sobel算子_python自编程序实现——robert算子、sobel算子、Laplace算子进行图像边缘提取...

热门文章

  1. android 运动目标检测_MindSpore应用案例:AI对篮球运动员目标的检测
  2. 石头剪刀布程序流程图_“剪刀、石头、布”也能救命?临安区社会福利中心开展海姆立克急救法培训...
  3. 方法~作用于对象~失败_消息三:ActiveMQ Topic 消息失败重发
  4. android怎么刷新活动,Android 如何刷新当前activity的显示数据?
  5. python 去掉文件后缀_python从zip中删除指定后缀文件(推荐)
  6. 计算机组成相关论文,计算机组成与结构课程论文.docx
  7. CentOS7.4搭建FTP服务器(vsftp)
  8. constraint mysql_MySQL(Constraint)
  9. android 开源 高斯模糊_Android实现带毛玻璃效果(高斯模糊)背景的Dialog
  10. java安装找不到uri,【找不到与请求 URI匹配的 HTTP 资源】(转)