本系列主要参考文献为维基百科的Matrix Caculas和张贤达的《矩阵分析与应用》。
一、求导定义与求导布局
1. 矩阵向量求导引入
2. 矩阵向量求导定义
3. 矩阵向量求导布局
具体总结如下:
4. 矩阵向量求导基础总结
有了矩阵向量求导的定义和默认布局,我们后续就可以对上表中的5种矩阵向量求导过程进行一些常见的求导推导总结求导方法,并讨论向量求导的链式法则。
二、矩阵向量求导之定义法
本小节讨论下标量对向量求导,标量对矩阵求导, 以及向量对向量求导这三种场景的基本求解思路。
对于本文中的标量对向量或矩阵求导这两种情况,如前文所说,以分母布局为默认布局。向量对向量求导,以分子布局为默认布局。如遇到其他文章中的求导结果和本文不同,请先确认使用的求导布局是否一样。另外,由于机器学习中向量或矩阵对标量求导的场景很少见,本系列不会单独讨论这两种求导过程。
1. 用定义法求解标量对向量求导
2. 标量对向量求导的一些基本法则
3. 用定义法求解标量对矩阵求导
4.用定义法求解向量对向量求导
5. 定义法矩阵向量求导的局限
使用定义法虽然已经求出一些简单的向量矩阵求导的结果,但是对于复杂的求导式子,则中间运算会很复杂,同时求导出的结果排列也是很头痛的。下一篇我们讨论使使用矩阵微分和迹函数的方法来求解矩阵向量求导。
三、矩阵向量求导之微分法
本文的标量对向量的求导,以及标量对矩阵的求导使用分母布局。如果遇到其他资料求导结果不同,请先确认布局是否一样。
1. 矩阵微分
2. 矩阵微分的性质
3. 使用微分法求解矩阵向量求导
4. 迹函数对向量矩阵求导
5. 微分法求导小结
使用矩阵微分,可以在不对向量或矩阵中的某一元素单独求导再拼接,因此会比较方便,当然熟练使用的前提是对上面矩阵微分的性质,以及迹函数的性质熟练运用。
还有一些场景,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦。如果我们可以利用一些常用的简单求导结果,再使用链式求导法则,则会非常的方便。因此下一篇我们讨论向量矩阵求导的链式法则。
四、矩阵向量求导链式法则
上面讨论了使用微分法来求解矩阵向量求导的方法。但是很多时候,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦。需要一些简洁的方法。
本文我们讨论矩阵向量求导链式法则,使用该法则很多时候可以帮我们快速求出导数结果。
本文的标量对向量的求导,标量对矩阵的求导使用分母布局, 向量对向量的求导使用分子布局。如果遇到其他资料求导结果不同,请先确认布局是否一样。
1. 向量对向量求导的链式法则
2. 标量对多个向量的链式求导法则
3. 标量对多个矩阵的链式求导法则
4. 矩阵向量求导小结
矩阵向量求导在前面我们讨论三种方法,定义法,微分法和链式求导法。在同等情况下,优先考虑链式求导法,尤其是第三节的四个结论。其次选择微分法、在没有好的求导方法的时候使用定义法是最后的保底方案。
基本上大家看了系列里这四篇后对矩阵向量求导就已经很熟悉了,对于机器学习中出现的矩阵向量求导问题已足够。这里还没有讲到的是矩阵对矩阵的求导,还有矩阵对向量,向量对矩阵求导这三种形式,如果大家只是关注机器学习的优化问题,不涉及其他应用数学问题的,可以不关注。
五、矩阵对矩阵的求导
本文所有求导布局以分母布局为准,为了适配矩阵对矩阵的求导,本文向量对向量的求导也以分母布局为准,这和前面的文章不同,需要注意。
本篇主要参考了张贤达的《矩阵分析与应用》和长躯鬼侠的矩阵求导术
1. 矩阵对矩阵求导的定义
2. 矩阵对矩阵求导的微分法
3. 矩阵对矩阵求导实例
4. 矩阵对矩阵求导小结
由于矩阵对矩阵求导的结果包含克罗内克积,因此和之前我们讲到的其他类型的矩阵求导很不同,在机器学习算法优化中中,我们一般不在推导的时候使用矩阵对矩阵的求导,除非只是做定性的分析。如果遇到矩阵对矩阵的求导不好绕过,一般可以使用(四) 矩阵向量求导链式法则中第三节最后的几个链式法则公式来避免。
https://www.cnblogs.com/pinard/p/10750718.html
https://www.cnblogs.com/pinard/archive/2004/01/13/10773942.html
https://www.cnblogs.com/pinard/archive/2004/01/13/10791506.html
https://www.cnblogs.com/pinard/archive/2004/01/13/10825264.html
https://www.cnblogs.com/pinard/archive/2004/01/13/10930902.html