向量和矩阵求导
先说规律
先说结论,从标量、向量、矩阵他们之间可以互相求导,排列组合共有九种(3x3),即标量对标量求导、标量对向量求导、标量对矩阵求导;向量对标量求导、向量对向量求导、向量对矩阵求导;矩阵对标量求导、矩阵对向量求导,矩阵对矩阵求导。这些求导也不是什么高深的理论,也就是多元函数的偏导数的组合而已,只是应用到不同场景有不同意义。
我们需要掌握的是这9种求导后,结果的形状,也就是求导后张量的形状。下面给出一张图,列出了所有情况。
如图所示,横坐标表示自变量,纵坐标表示因变量,他们的排列组合有3x3共9种。
先说规律:求导的分母形状不变,分子的形状编程倒数,最后形状按照分子加分母的形状拼接,将形状为1的部分舍弃。举个例子,矩阵 Ym,l 对向量xn,1求导,分母形状不变为(m,l),分子的形状变为倒数即(1,n),然后拼接为(m,l,1,n),舍弃1最终结果为(m,l,n)。此方法叫做分子布局符号可以推广到更高维度,其实也就是一种计算方法,没有那么高深。
常见的求导(深度学习中)
1. 标量对标量求导
这种我们中学就学过的,一元函数求导。这里不在赘述。
2. 标量对向量求导
标量对向量求导,结果为向量。
这是机器学习里面最常见的,我们损失函数一般为标量,损失函数的输入为向量。说白了就是多元函数,
y=f(x1,x2,x3)
这里的三个自变量组成向量,就成了标量对向量的求导。下面举个具体的例子:
设标量为y(1,),向量为x(3,1),根据上面的分子布局符号规则结果形状为(1,3),写成公式为
∂y∂x=[∂y∂x1,∂y∂x2,∂y∂x2]
这样我们就理解了,所有的向量和矩阵之间的求导,最终都转化为逐个因变量分量与自变量分量的偏导数,然后再按照一定规律组合成多维张量。
常见的标量对向量求导
-
向量内积求导
令 y=||x||2=<x,x> =x21+x22+x23则 ∂y∂x=[2x1,2x2,2x3]=2xT
-
向量之和求导
令 y=sum(x)=x1+x2+x3则 ∂y∂x=[1,1,1]
3. 向量对向量求导
向量对向量求导,结果为矩阵。
一般形式,设自变量为y(2,1),因变量为x(3,1),则根据分子布局符号规则,结果形状为(2,3)。
设 y=[y1y2]设 x=⎡⎢⎣x1x2x3⎤⎥⎦
则向量y对向量x求导为
∂y∂x=⎡⎢⎣∂y1∂x1∂y1∂x2∂y1∂x3∂y2∂x1∂y2∂x2∂y2∂x3⎤⎥⎦
常见向量对向量求导
-
列向量对列向量求导
令 y(2,1)=A(2,3)x(3,1)=[a11x1+a12x2+a13x3a21x1+a22x2+a23x3]=[y1y2]则 ∂y∂x=⎡⎢⎣∂y1∂x1∂y1∂x2∂y1∂x3∂y2∂x1∂y2∂x2∂y2∂x3⎤⎥⎦=[a11a12a13a21a22a23]=A总结:令 y=Ax,则 ∂y∂x=A,其中,x∈Rn,y∈Rm,∂y∂x∈Rm
-
横向量对列向量求导
令 y=xTA,则 ∂y∂x=AT,其中,x∈Rn,y∈Rm,∂y∂x∈Rm,n
参考链接
- 李沐男神的slides。
- 机器学习的数学,雷明。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现