机器学习中的矩阵向量求导(五) 矩阵对矩阵的求导
在矩阵向量求导前4篇文章中,我们主要讨论了标量对向量矩阵的求导,以及向量对向量的求导。本文我们就讨论下之前没有涉及到的矩阵对矩阵的求导,还有矩阵对向量,向量对矩阵求导这几种形式的求导方法。
本文所有求导布局以分母布局为准,为了适配矩阵对矩阵的求导,本文向量对向量的求导也以分母布局为准,这和前面的文章不同,需要注意。
本篇主要参考了张贤达的《矩阵分析与应用》和长躯鬼侠的矩阵求导术
1. 矩阵对矩阵求导的定义
假设我们有一个的矩阵要对的矩阵求导,那么根据我们第一篇求导的定义,矩阵中的个值要对矩阵中的个值分别求导,那么求导的结果一共会有个。那么求导的结果如何排列呢?方法有很多种。
最直观可以想到的求导定义有2种:
第一种是矩阵对矩阵中的每个值求导,这样对于矩阵每一个位置(i,j)求导得到的结果是一个矩阵,可以理解为矩阵的每个位置都被替换成一个的矩阵,最后我们得到了一个的矩阵。
第二种和第一种类似,可以看做矩阵中的每个值分别对矩阵求导,这样矩阵每一个位置(k,l)对矩阵求导得到的结果是一个矩阵, 可以理解为矩阵的每个位置都被替换成一个的矩阵,最后我们得到了一个的矩阵。
这两种定义虽然没有什么问题,但是很难用于实际的求导,比如类似我们在机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法中很方便使用的微分法求导。
目前主流的矩阵对矩阵求导定义是对矩阵先做向量化,然后再使用向量对向量的求导。而这里的向量化一般是使用列向量化。也就是说,现在我们的矩阵对矩阵求导可以表示为:
对于矩阵,列向量化后,的维度是的向量,同样的,的维度是的向量。最终求导的结果,这里我们使用分母布局,得到的是一个的矩阵。
2. 矩阵对矩阵求导的微分法
按第一节的向量化的矩阵对矩阵求导有什么好处呢?主要是为了使用类似于前面讲过的微分法求导。回忆之前标量对向量矩阵求导的微分法里,我们有:
这里矩阵对矩阵求导我们有:
和之前标量对矩阵的微分法相比,这里的迹函数被矩阵向量化代替了。
矩阵对矩阵求导的微分法,也有一些法则可以直接使用。主要集中在矩阵向量化后的运算法则,以及向量化和克罗内克积之间的关系。关于矩阵向量化和克罗内克积,具体可以参考张贤达的《矩阵分析与应用》,这里只给出微分法会用到的常见转化性质, 相关证明可以参考张的书。
矩阵向量化的主要运算法则有:
1) 线性性质:
2) 矩阵乘法:,其中是克罗内克积。
3) 矩阵转置:,其中是的矩阵,是的交换矩阵,用于矩阵列向量化和行向量化之间的转换。
4) 逐元素乘法:, 其中是的对角矩阵,对角线上的元素是矩阵按列向量化后排列出来的。
克罗内克积的主要运算法则有:
1)
2)
3)
4)
使用上面的性质,求出关于的表达式,则表达式左边的转置即为我们要求的,或者说
3. 矩阵对矩阵求导实例
下面我们给出一个使用微分法求解矩阵对矩阵求导的实例。
首先我们来看看:, 假设A,X,B都是矩阵,X是的矩阵。
首先求, 和之前第三篇的微分法类似,我们有:
然后我们两边列向量化(之前的微分法是套上迹函数), 得到:
其中,第二个式子使用了上面矩阵向量化的性质2。
这样,我们就得到了求导结果为:
利用上面的结果我们也可以得到:
来个复杂一些的:
首先求微分得到:
两边矩阵向量化,我们有:
其中第一个等式使用了矩阵向量化性质2,第二个等式使用了矩阵向量化性质4, 第三个等式使用了矩阵向量化性质2。
这样我们最终得到:
4. 矩阵对矩阵求导小结
由于矩阵对矩阵求导的结果包含克罗内克积,因此和之前我们讲到的其他类型的矩阵求导很不同,在机器学习算法优化中中,我们一般不在推导的时候使用矩阵对矩阵的求导,除非只是做定性的分析。如果遇到矩阵对矩阵的求导不好绕过,一般可以使用机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则中第三节最后的几个链式法则公式来避免。
到此机器学习中的矩阵向量求导系列就写完了,希望可以帮到对矩阵求导的推导过程感到迷茫的同学们。
【推荐】国内首个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 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2017-05-27 EM算法原理总结