当前位置:网站首页>为什么梯度是函数变化最快的方向
为什么梯度是函数变化最快的方向
2022-07-24 18:34:00 【小白学视觉】
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达前言
机器学习中的大部分问题都是优化问题,而绝大部分优化问题都可以用梯度下降法来解决。本文详细的解释了高数中几个易混淆的重要概念,如导数和微分的区别,偏导数的概念,方向导数和梯度的关系,若完全掌握这几个概念,就能很好的理解梯度为什么是函数变化最快的方向的问题。
目录
1、导数和微分
2、偏导数
3、方向导数和梯度的关系
4、总结
导数和微分
导数的定义

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

本质:微分描述的是函数从一个点移动到另一个无穷小的点所产生的的变化量。
函数增量与微分的关系
本节分别从图形角度和代数角度去分析函数增量与微分的关系:
图形角度:

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


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

偏导数的几何意义


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

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



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

方向导数和梯度的关系
求上图曲面M0中P点的梯度和方向导数
梯度和方向导数的单位向量分别如下两图:

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

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

结论:曲面中点的方向导数有无数个,当方向导数与梯度方向一致时,该导数值取得最大,等价于该点在梯度方向具有最快的变化值。梯度方向是函数值增加最快的方向,梯度的反方向是函数值减小最快的方向。
总结
本文介绍了高数教材中几个易混淆的概念,结合图解法和公式推导法证明了方向导数和梯度方向一致时,函数值是变化最快的。因此,机器学习常用梯度法去解决最优化问题。
参考
《高等数学》第七版,同济大学
好消息!
小白学视觉知识星球
开始面向外开放啦

下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~边栏推荐
- Namespace:集群环境共享与隔离
- ETL开发工具Kettle下载安装环境搭建及使用教程
- 球面上绘制圆matlab仿真
- Escape character in JS?
- A practical scheme of realizing 0.5px on mobile terminal
- JS array method sort() collation parsing
- MySQL optimization series (2) -- InnoDB important parameter optimization
- Is the validity period of the root certificate as long as the server SSL certificate?
- QT - animation frame
- 2. JS variable type conversion, automatic conversion, manual conversion, what is the difference between parseint(), parsefloat(), number()?
猜你喜欢

Missing value processing

Typora is still the most beautiful and beautiful document editing artifact of yyds in my heart. I believe you will never abandon it

狂神redis笔记11

Ionic4 learning notes 10 rotation map of an East Project

理解corners_align,两种看待像素的视角

04 distributed resource management system yarn

无关的表进行关联查询及null=null条件

Make C #

JMeter -- silent operation

04-分布式资源管理系统YARN
随机推荐
Show or hide password plaintext + password box verification information
MySQL optimization series (2) -- InnoDB important parameter optimization
Ionic4 learning notes 11 - popular goods display of an East Project
Go小白实现一个简易的go mock server
JS to achieve progress steps (small exercise)
Type-C边充边听PD协议芯片
Common methods of string (2)
BUUCTF-pwn[1]
投资的新阶段
About the writing method of interface 1 chain interpretation 2. Method execution (finally) must be executed
Mid year inventory | in 2022, PAAS will be upgraded again
【TkInter】常用组件(一)
Valentine's Day gift ----- use her photos and our chat records to generate word clouds~
Latex数学公式
Understand dynamic calculation diagram, requires_ grad、zero_ grad
怎么解决idea中yaml无法识别或者飘红?
空间三点画圆代码
Calling startActivity() from outside of an Activity context requires the FLAG_ ACTIVITY_ NEW_ TASK flag
网络安全80端口—-PHP CGI参数注入执行漏洞
Pytorch的旅程二:梯度下降