导数、偏导数、方向导数、梯度、梯度下降
导数
设有一元函数
则函数在点 处的导数为
求出来的值是 在 处沿 方向的变化率即
也是 在 处的切线的斜率
如果函数有极小值,那么使 不断沿着切线方向减少,可以得到使 最小的
即通过下面的迭代,算出来的 可以使 最小
其中 是步长,即沿切线方向变化的大小,必须取一个很小的值
偏导数
设有多元函数
则函数在点 处沿 方向的偏导数为
求出来的值是 在 处沿 方向的变化率即
也是 在 处沿 方向的切线的斜率(函数在 处有不同方向的多条切线)
计算过程是只把一个坐标轴当成变量,其他轴当成常量,这样变成对一元函数求导
其实偏导就是对多元函数的某个二维切面求导
举个简单的例子
该函数是一个以坐标原点为顶点的旋转抛物面
求在 方向的偏导,就是把 当常数然后求导,结果为
实际上固定 得到的是一个二维切面,这个切面实际上是一条抛物线
该抛物线形状不受 取值的影响, 的变化影响的是抛物线的位置
就像 在 处的导数即切线斜率不受 值的影响
可以看到导数和偏导数本质上是一样的,都是求函数值沿某个坐标轴方向的变化率
只不过导数针对一元函数,偏导数针对多元函数
方向导数
偏导数只能求函数值在某个坐标轴方向的变化率,方向导数则是求函数值在任意方向的变化率
设有多元函数
则函数在点 处沿任意方向 的导数为
其中
的方向由 各个值的比例关系决定
可以看到偏导数是方向导数的一个特例,即 只在一个方向上有值的话就是偏导数
将 转换为余弦向量,可以通过偏导数求出方向导数
比如
要求导的点为
要求导的方向为
的长度为
转为余弦向量
则有
梯度
方向导数是为了求函数值在某个点沿某个方向的变化率
梯度则是为了求函数值在某个点处变化率最大的方向,梯度由各个轴的偏导函数组成
设有多元函数
其在 处的梯度为
可以看到梯度是一个向量,代表函数值变化率最大的方向
并且该梯度向量在每个轴的分量是函数在该轴的偏导数
梯度下降
如果函数有极小值,那么使 不断沿着梯度方向减小,可以得到使 最小的
即通过下面的迭代,算出来的 可以使 最小
其中 是步长,即沿梯度方向变化的大小,必须取一个很小的值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界