参考\url{https://www.zhihu.com/question/39523290} 猪猪专业户 77IX7-UPIUE-7PR75-UTBLT
如果题主学过泛函分析,可能会更容易理解矩阵对矩阵的求导。
定义:假设X和Y为赋范向量空间, F:X→Y是一个映射,那么F在x0∈X可导的意思是说存在一个有界线性算子L∈L(X,Y),使得对于任意的ϵ>0都存在δ>0,对于满足x∈X∖{x0},∥x−x0∥<δ的x都有∥F(x)−F(x0)−L(x−x0)∥∥x−x0∥<ϵ.我们称L为F在x0点的导数.
取一些特殊情况,比如当X=Rn, Y=R的时候L就被称作梯度;当X=Rn,Y=Rm的时候L被称作雅可比,等等.从这个一般化的定义出发的好处是,我们可以更好的理解矩阵到矩阵映射的"导数",甚至是从一个函数空间到另一个函数空间的“导数".
以上定义有一个等价的表述,往往计算起来更方便:对于距离x0足够近的点x,即limx→x0o(∥x−x0∥)∥x−x0∥=0,有
F(x)=F(x0)+L(x−x0)+o(∥x−x0∥).
(注:此处L(x−x0)应该理解为线性算子L在x−x0这个点的值,而不是L乘以x−x0.不过在有限维空间所有线性算子都可以用矩阵表述, L在x−x0这个点的值便正好可以表述为矩阵与向量的乘积!这个notation正好巧妙的一致.)
例子:假设F(X)=XTX是一个Rm×n→Sn的映射,其中Sn为n维对称阵的空间.那么F的导数L就应该是Rm×n→Sn的一个有界线性算子. L究竟是什么样可以从定义出发计算:
F(X+ΔX)−F(X)=(X+ΔX)T(X+ΔX)−XTX=XTΔX+ΔXTX+o(∥ΔX∥)(1)(2)(3)
所以我们有L(ΔX)=XTΔX+ΔXTX,这个就是F在X点的导数. L这个函数(有界线性算子)可以用张量来表述,这里就不详细说了.
例子:最小二乘问题f(x)=12∥Ax−b∥22, f是一个Rn→R的映射.
f(x+Δx)−f(x)=12∥A(x+Δx)−b∥2−12∥Ax−b∥2=12∥Ax−b+AΔx∥2−12∥Ax−b∥2=(Ax−b)TAΔx+o(∥Δx∥)(4)(5)(6)(7)
所以我们有L(Δx)=(Ax−b)TAΔx,这个就是f在x点的导数.在这种情况下, L这个有界线性算子可以用梯度来表述(recall Riesz表示定理):
L(Δx)=⟨∇f(x),Δx⟩=⟨AT(Ax−b),Δx⟩=(Ax−b)TAΔx
所以梯度∇f(x)=AT(Ax−b).
例子:单层神经网络f(W)=12∥σ(Wx)−y∥22, f是一个Rm×n→R的映射,这里σ:Rm→Rm是一个elementwise的logistic function.算起来
f(W+ΔW)−f(W)=12∥σ(Wx+ΔWx)−y∥22−12∥σ(Wx)−y∥22=12∥σ(Wx)+σ(Wx)⊙(1m−σ(Wx))⊙ΔWx+o(∥ΔW∥)−y∥22−12∥σ(Wx)−y∥22=(σ(Wx)−y)T(σ(Wx)⊙(1m−σ(Wx))⊙ΔWx)+o(∥ΔW∥)(8)(9)(10)(11)
其中⊙为Hadamard乘积(elementwise乘积), 1m为长度为m的元素均为1的向量.这里我使用了一维logistic函数的导数公式.所以
L(ΔW)=(σ(Wx)−y)T(σ(Wx)⊙(1m−σ(Wx))⊙ΔWx).
注:这个例子的倒数第二步到最后一步的计算影射了微积分中的一个重要的思想——链式法则(chain rule).链式法则能够成立的本质是ao(∥x∥)+bo(∥x∥)=o(∥x∥)和o(∥x∥)o(∥x∥)=o(∥x∥2).
最后,由于Rm×n和Rmn是同构的,所以可以通过vectorization把矩阵映射到Rmn中再进行计算.
(逆逆)对于闭凸集D, 考虑D上的凸集投影
P(x)=PD(x)=argminv∈D||x−v||.
\begin{tcolorbox} {\bfseries 引理1:}任意$v\in D$, 均有$<x-P(x),v-P(x)>\le 0$. \end{tcolorbox}
[Math Processing Error]
\begin{tcolorbox} {\bfseries 引理2:}任意$x,y$, 均有$||P(x)-P(y)||\le ||x-y||$. \end{tcolorbox}
[Math Processing Error]
\begin{tcolorbox} {\bfseries 引理3:}任意$z\perp x-P(x)$, $t\in\mathbb{R}$, 均有$||x+tz-P(x+tz)||^2=||x-P(x)||^2+O(t^2)$. \end{tcolorbox}
[Math Processing Error]
\begin{tcolorbox} {\bfseries 引理4:}任意$t\ge 0$, 均有$P(tx+(1-t)(x-P(x)))=P(x)$. \end{tcolorbox}
[Math Processing Error]
\begin{tcolorbox} {\bfseries 定理:} 函数$\frac{1}{2}||x-P(x)||^2$的梯度为$x-P(x)$. \end{tcolorbox}
[Math Processing Error]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix