矩阵对矩阵的求导
2021-9-13
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
假设有一个 的矩阵要对 的矩阵求导,那么根据求导的定义,矩阵 中的 个值要对矩阵中的 个值分别求导,那么求导的结果一共会有 个。那么求导的结果如何排列呢?方法有很多种。
最直观可以想到的求导定义有2种:
第一种是矩阵 对矩阵 中的每个值 求导,这样对于矩阵 每一个位置 求导得到的结果是一个矩阵 ,可以理解为矩阵 的每个位置都被替换成一个 的矩阵,最后得到了一个 的矩阵
第二种和第一种类似,可以看做矩阵 中的每个值 分别对矩阵 求导,这样矩阵 每一个位置 对矩阵 求导得到的结果是一个矩阵 , 可以理解为矩阵$F$的每个位置都被替换成一个 的矩阵,最后得到了一个的矩阵。
这两种定义虽然没有什么问题,但是很难用于实际的求导。
目前主流的矩阵对矩阵求导定义是对矩阵先做向量化,然后再使用向量对向量的求导。而这里的向量化一般是使用列向量化。也就是说,现在的矩阵对矩阵求导可以表示为:
对于矩阵 ,列向量化后, 的维度是 的向量,同样的, 的维度是 的向量。最终求导的结果,这里使用分母布局,得到的是一个 的矩阵。
 

矩阵对矩阵求导的微分法

向量化的矩阵对矩阵求导有什么好处呢?主要是为了使用类似于前面讲过的微分法求导。回忆之前标量对向量矩阵求导的微分法里,有:
这里矩阵对矩阵求导有:
和之前标量对矩阵的微分法相比,这里的迹函数被矩阵向量化代替了。
矩阵对矩阵求导的微分法,也有一些法则可以直接使用。主要集中在矩阵向量化后的运算法则,以及向量化和克罗内克积之间的关系。关于矩阵向量化和克罗内克积,具体可以参考张贤达的《矩阵分析与应用》,这里只给出微分法会用到的常见转化性质,相关证明可以参考张的书。
 
矩阵向量化的主要运算法则有:
  1. 线性性质:
  1. 矩阵乘法: ,其中 是克罗内克积
  1. 矩阵转置: ,其中的矩阵, 的交换矩阵,用于矩阵列向量化和行向量化之间的转换。
  1. 逐元素乘法: ,其中 的对角矩阵,对角线上的元素是矩阵 按列向量化后排列出来的。
 
克罗内克积的主要运算法则有:
使用上面的性质,求出 关于 的表达式,则表达式左边的转置即为要求的 ,或者说
 

矩阵对矩阵求导实例

, 假设都是矩阵, 的矩阵。
首先求,有:
然后两边列向量化(之前的微分法是套上迹函数),得到:
其中,第二个式子使用了上面矩阵向量化的性质2。
这样,就得到了求导结果为:
利用上面的结果也可以得到:
 
来个复杂一些的:
首先求微分得到:
两边矩阵向量化,有:
其中第一个等式使用了矩阵向量化性质2,第二个等式使用了矩阵向量化性质4, 第三个等式使用了矩阵向量化性质2。
这样最终得到:
  • Scikit-Learn
  • 链式法则 最小二乘法
    目录