写在前面
本文主要用于围绕矩阵类求梯度等问题进行证明与分析,由于笔者的数理基础浅薄,下面的证明过程若存在错误,欢迎评论指正。
分子布局和分母布局是什么?
分子布局表示求导的结果维度以分子为主,如向量y关于标量x求导,结果的维度和y的维度是一致的,如果y为列向量,那么结果为列向量。
分母布局表示求到的结果维度以分母为主,如向量y关于标量x求导,y为行向量,那么结果为列向量;如标量y对矩阵X求导,按分母布局则求导结果的维度和X一致为m×n,安分子布局则求导结果的维度为n×m。分子布局和分母布局之间相差一个转置。
上述问题适合于标量对向量或矩阵,向量或矩阵对标量求导等情况。在向量对向量求导中,以列向量对列向量求导为例,m维列向量y对n维列向量x求导,其可以表示为mn个标量对标量的求导,求导结果一般排列为一个矩阵。如果为分子布局,矩阵的第一个维度以分子为准,结果是m×n矩阵;如果为分母布局,矩阵的第一个维度以分母为准,分别如下所示:
按分子布局的向量对向量求导的结果矩阵,我们一般叫做雅克比 (Jacobian)矩阵。
按分母布局的向量对向量求导的结果矩阵,我们一般叫做梯度矩阵。
矩阵微分和梯度的关系是什么?
矩阵梯度的通用方法:先将矩阵写成微分形式,df=tr(GdX),然后得到∇f=GT
矩阵微分求解得到的算子可称为偏导算子,梯度矩阵通常是偏导算子的转置。
案例1
minU12∥∥R∘(Y−UV⊤)∥∥2F+λ12∥U−SU∥2F+λ32∥U−T∥2F.
在上式中,主要目的为更新U,其中V,Z,W,b固定,T=ψ(X)W+1bT=KA+1bT
首先对第一项求导,可以得到以下过程:
minU12∥∥R∘(Y−UVT)∥∥2F⇒∇U=R∘(UVT−Y)V
1、将第一项展开可以得到如下形式:
12tr{RT∘(Y−UVT)T(R∘(Y−UCT))}=12tr{RT∘(YT−VUT)(R∘(Y−UVT))}=12tr{RT∘YT⋅R∘Y−2RT∘VUT⋅R∘Y+RT∘VUT⋅R∘Y+RT∘VUT⋅R∘UVT}
2、上式中第一项为与U无关项,可以忽略,下面对后面2项分别求导即可:
2.1 下面使用了tr(AB)=tr(BA)的性质
12tr(−2(R∘Y)⋅(RT∘Vd(UT)))+12[tr((R∘UVT)⋅RT∘Vd(UT)+tr((RT∘VUT∘RT)⋅d(U)VT]
2.2 下面使用了tr(A(B∘C))=tr((A∘BT)C)的性质
12tr(−2((R∘Y)∘R)⋅(Vd(UT)))+12[tr(((R∘UVT)∘R)⋅Vd(UT))+tr((RT∘VUT)⋅d(U)VT)]
2.3 下面这项规定不一定通用,原文给出的R为指示矩阵,{rij}=1,1和1的哈达玛内积必然为1,因此有R∘R=R
12tr(−2)(R∘V)⋅Vd(UT)+12[tr((R∘UVT)⋅Vd(UT))+tr(VT(RT∘VUT)⋅d(U))]
2.4 将最后一项利用tr(A)=tr(AT)性质,那么2.3中式子可以更新为:
−(R∘Y)⋅V+12×[(R∘UVT)⋅V+(R∘UVT)⋅V]
2.5 进一步简化可以得到其关于U的偏导为R∘(UVT−Y)V
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界