大家好,这是我的第一篇博客。
矩阵求导(Matrix Derivation,或者Matrix Differential),在机器学习、图像处理、最优化领域经常会遇到。其本质是多元变量的微积分,只是把求导应用在了矩阵上,不同在于这些求导是按照一定规则排列的。因此,说简单也很简单,在矩阵理论的书籍中一般会介绍雅克比(Jacobi)矩阵,点到为止,也不会详细讨论。但是这个小问题有时遇到了还是会有所疑惑,可能你会发现同一求导在不同的资料中结果不一样。关于这一方面,网上的资料略混乱,没有抓住重点,因此这里作简要总结,一些基本公式会给出简单的推导,希望对你有帮助。
布局(Layout)
首先,介绍一个重要的概念——布局。求导最简单的是标量,然后是向量和矩阵求导。所有我们把dY/dX,看做两部分-分子和分母,按照每一部分对应三种类型(标量、向量、矩阵),那么就会有9种组合,但是常用的不多,比如较常见的分母和分子都是向量。如果向量求导掌握了,那么复杂一点的矩阵求导你只需拆解为向量就可以了。因为同一个求导可以有不同的写法,所以就有了布局约定(layout conventions),分为两种:1)分子布局,numerator layout;2)分母布局,denominator layout。 举个例子,向量关于向量
求导,注意这两个都是列向量:
1)按照分子布局,也就是按照y的布局,其结果为
2)按照分母布局,即按照X的布局,结果为
对比以上结果,分子布局指结果与分子保持一致,以分子为主序,也就是说分子原来有3行,求导结果就有3行,每一行和分子中的每一行对应;同理,分母布局与分母保持一致,求导结果维数为:分子维数*分母维数。 理解了这个概念后,那基本上矩阵求导就无所遁形了,对于复杂的矩阵可看做由行向量组成,逐步求导。
下面将列举几个常见的例子。
实例
(1) , 其中
这个式子可以说是最基本的,但是结果有两种形式,分别是 和
,差一个转置。首先
,
如果按照分子布局计算,记 是
的行向量,则
如果按照分母布局计算,则
(2) , 其中
可设
所以
上述求导过程可以看出采用的是分母布局。因此若采用分子布局,会得到另一个结果 ,这里你可以自己证明。
(3)另外矩阵求导往往也和矩阵的迹联系在一起,这里附赠一个关于迹的公式推导,对于很多关于迹的求导也许会有启发。
证明:
首先 , 而
得证。
总结
在很多时候你可能常见到以下的结论,实际上这些结果都是基于分母布局而得到的。
但是,如果你观察下面这个Jacobi矩阵的形式,我们可以说是基于分子布局的,这里分子分母都是列向量,之所以分母会写成转置的形式(有时候不加转置),这样显得更不容易产生歧义,因为无论是哪一种布局似乎都是对的,其中分子主序作行,分母主序作列。
最后,如果你觉得这些不够用,你可以查看以下博客,有更全面的公式。
https://blog.csdn.net/daaikuaichuan/article/details/80620518
https://blog.csdn.net/yc461515457/article/details/49682473