随机梯度下降法的数学基础
梯度是微积分中的基本概念,也是机器学习解优化问题经常使用的数学工具(梯度下降算法)。因此,有必要从头理解梯度的来源和意义。本文从导数开始讲起,讲述了导数、偏导数、方向导数和梯度的定义、意义和数学公式,有助于初学者后续更深入理解随机梯度下降算法的公式。大部分内容来自维基百科和博客文章内容的总结,并加以个人理解。
导数
导数(英语:derivative
)是微积分学中的一个概念。函数在某一点的导数是指这个函数在这一点附近的变化率。导数的本质是通过极限的概念对函数进行局部的线性逼近。当函数
导数是函数的局部性质。不是所有的函数都有导数,一个函数也不一定在所有的点上都有导数。若某函数在某一点导数存在,则称其在这一点可导(可微分),否则称为不可导(不可微分)。如果函数的自变量和取值都是实数的话,那么函数在某一点的导数就是该函数所代表的曲线在这一点上的切线斜率。
对于可导的函数
导数的一般定义如下:
如果实函数
存在,则称
偏导数
偏导数的作用与价值在向量分析和微分几何以及机器学习领域中受到广泛认可。
导数是一元函数的变化率(斜率),导数也是函数,可以理解为函数的变化率与位置的关系。
那么如果是多元函数的变化率问题呢?答案是偏导数,定义为多元函数沿坐标轴的变化率。
偏导数是多元函数“退化”成一元函数时的导数,这里“退化”的意思是固定其他变量的值,只保留一个变量,依次保留每个变量,则
如果一个变量对应一个坐标轴,那么偏导数可以理解为函数在每个位置处沿着自变量坐标轴方向上的导数(切线斜率)。
在数学中,偏导数(英语:partial derivative
)的定义是:一个多变量的函数(或称多元函数),对其中一个变量(导数)微分,而保持其他变量恒定。函数
假设
我们把变量
同理可得,函数
方向导数
在前面导数和偏导数的定义中,均是沿坐标轴正方向讨论函数的变化率。那么当我们讨论函数沿任意方向的变化率时,也就引出了方向导数的定义,即:某一点在某一趋近方向上的导数值。
通俗理解就是:我们不仅要知道函数在坐标轴正方向上的变化率(即偏导数),而且还要设法求得函数在其他特定方向上的变化率(方向导数)。如下图所示,点
方向导数的定义参考下图,来源-直观理解梯度,以及偏导数、方向导数和法向量等。
梯度
在向量微积分中,梯度(英语:gradient
)是一种关于多元导数的概括。平常的一元(单变量)函数的导数是标量值函数,而多元函数的梯度是向量值函数。
就像一元函数的导数表示这个函数图形的切线的斜率,如果多元函数在点
梯度,写作
可以从以下两个实例理解梯度意义:
-
假设有一个房间,房间内所有点的温度由一个标量场
给出的,即点 的温度是 。假设温度不随时间改变。然后,在房间的每一点,该点的梯度将显示变热最快的方向。梯度的大小将表示在该方向上的温度变化率。 -
考虑一座高度函数为
的山,山上某点 的高度是 ,点 的梯度是在该点坡度(或者说斜度)最陡的方向。梯度的大小会告诉我们坡度到底有多陡。
总结梯度的几何意义:
- 当前位置的梯度方向,为函数在该位置处方向导数最大的方向,也是函数值上升最快的方向,反方向为下降最快的方向;
- 当前位置的梯度长度(模),为最大方向导数的值。
总结
- 方向导数是各个方向上的导数。
- 偏导数连续才有梯度存在。
- 偏导数构成的向量为梯度。
- 梯度的方向是方向导数中取到最大值的方向,梯度的值是方向导数的最大值。
参考资料
版权声明 ©
本文作者:嵌入式视觉
本文链接:https://www.cnblogs.com/armcvai/p/17058941.html
版权声明:本文为「嵌入式视觉」的原创文章,首发于 github ,遵循 CC BY-NC-ND 4.0 版权协议,著作权归作者所有,转载请注明出处!
鼓励博主:如果您觉得文章对您有所帮助,可以点击文章右下角【推荐】一下。您的鼓励就是博主最大的动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性