为什么梯度是函数变化最快的方向

  • Post author:
  • Post category:其他


点击上方“


小白学视觉


”,选择加”

星标

“或“

置顶

重磅干货,第一时间送达


前言

机器学习中的大部分问题都是优化问题,而绝大部分优化问题都可以用梯度下降法来解决。本文详细的解释了高数中几个易混淆的重要概念,如导数和微分的区别,偏导数的概念,方向导数和梯度的关系,若完全掌握这几个概念,就能很好的理解梯度为什么是函数变化最快的方向的问题。

目录


1、导数和微分

2、偏导数

3、方向导数和梯度的关系

4、总结

导数和微分


导数的定义

609700bcb530c668e7ee4aaedace3d0f.png


本质:

导数描述的是函数在一点处的变化快慢的趋势,是一个变化的速率。如曲线方程的导数是随点变化的斜率,运动方程的导数是随时间变化的速率。


微分的定义

82228ed3ebe41c163e5441bbfcdcc488.png


本质:

微分描述的是函数从一个点移动到另一个无穷小的点所产生的的变化量。


函数增量与微分的关系

本节分别从图形角度和代数角度去分析函数增量与微分的关系:


  • 图形角度:

92eb3ffa7d01fd666be72e66b2e456ac.png

如上图所示,函数f(x)在M点处的导数为直线T的斜率tanα,Δy是M点移动Δx时的函数增量,dy为函数相对于Δx的微分。

当Δx->0时,
2cf92da82b64d9e361c57ab2b0c3edbf.png

7941a1d8a391efc7e21010b6f1090196.png


  • 代数角度:

634b984974028bdb3fad05ad6341cbb1.png

23d8218b07171984201fc000f8c3388b.png

偏导数

偏导数是函数相对于某一轴方向的导数,其他轴方向则假设为常数,若考虑二元变量f(x,y),偏导数定义如下:

e670ffe07256ece40d35b9885cfde13c.png





导数的几何意义

03c9077ef2b357c55d3944483957ed96.png

72f72cb3063250402417a2051530a168.jpeg

方向导数和梯度的关系


方向导数

我们还是以讨论偏导数的图来解释方向导数。令曲面方程z=f(x,y)投影到XY平面,得到投影平面,如下图:

f533ed8b683aed0aac92d4a9d8710dcc.png

M1为M0在XY面的投影点,由上图可知,有无数条直线经过M1点,这些直线代表方向,我们认为曲面M1点的方向导数就是求这些直线方向的导数,M1点的方向导数也是无穷多个,我们用变量α来代表不同的方向直线。

f92dd6f14b8f2ea30fbc816d340deeeb.png

ec1938c5a78cf8eec38cea717dce8c42.png

6dc4c9ecefa856dd1c17cb4aa9fa04e6.png


梯度

梯度是一个矢量,曲面上每点的梯度是常数,P0点的梯度如下:

58bdb81161f87e01e573a58eea96df11.png


方向导数和梯度的关系

求上图曲面M0中P点的梯度和方向导数

梯度和方向导数的单位向量分别如下两图:

4bbf68a76eadc4bd8e6771b96a1b1da0.png

平移梯度向量,使之与方向导数的单位向量相交,夹角为θ,如下图:

921c7f356c60aa2da86ecbca54690555.png

红色直线代表梯度,蓝色代表方向导数的单位向量,取该两个向量的内积,得:

24359e37eb5038ae69a5efcd877dbd29.png


结论:曲面中点的方向导数有无数个,当方向导数与梯度方向一致时,该导数值取得最大,等价于该点在梯度方向具有最快的变化值。梯度方向是函数值增加最快的方向,梯度的反方向是函数值减小最快的方向。

总结

本文介绍了高数教材中几个易混淆的概念,结合图解法和公式推导法证明了方向导数和梯度方向一致时,函数值是变化最快的。因此,机器学习常用梯度法去解决最优化问题。


参考


《高等数学》第七版,同济大学



好消息!


小白学视觉知识星球

开始面向外开放啦👇👇👇


796c9acc501dde0ef74153789cf3a644.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~