矩阵,向量求导-求导布局,表格查找
矩阵,向量求导(Matrix calculus)
Not to be confused with geometric calculus or vector calculus.
0.约定
- 标量用小写字母表示。
- 向量用小写粗体字母表示。(默认为列向量,维;,维)。
- 矩阵用大写粗体字母表示。可能表示维,也可能是维,也可能是维度。
1.目标
-
理清标量,向量和矩阵之间的求导关系。
2.完整的求导表格
完整表格
1.布局说明
前提说明:若为向量,则默认为列向量,为行向量。
分子布局(Numerator-layout)
- 分子布局: 分子列向量 ,分母为行向量 (即,分子为列向量或者分母为行向量)。
分母布局(Denominator-layout)
- 分母布局: 分子为行向量,分母为 列向量 (即,分子为行向量或者分母为列向量)。
2.举个例子
分子布局例子
说明:上述公式依次表示在分子布局下,。
- 其中是列向量(),是列向量(),是矩阵(),是矩阵()。
- 标量/向量(分母是向量,且是分子布局,则把分母的向量按照行向量铺开)
- 向量/标量:(分子是向量,且是分子布局,则把分子按照列向量铺开)
- 向量/向量:(分子分母都是向量,且是分子布局,则分子向量按照列向量铺开,分母向量按照行向量铺开)【雅克比式】
- 标量/矩阵(分子布局下,矩阵是转置后铺开的)
- 矩阵/标量(分子布局下,矩阵是原型铺开)
分母布局例子
说明:上述公式依次表示在分母布局下,。
- 其中是列向量(),是列向量(),是矩阵()
- 分母中没有。
- 标量/向量(分母是向量,且是分母布局,则把分母的向量按照列向量铺开)
- 向量/标量:(分子是向量,且是分母布局,则把分子按照行向量铺开)
- 向量/向量:(分子分母都是向量,且是分母布局,则分子向量按照行向量铺开,分母向量按照列向量铺开)【梯度矩阵】
- 标量/矩阵(分母布局下,X矩阵无需转置,就是原始矩阵)
3.表格细化
- 实际操作时可以参考以下。
1.Vector-by-vector
2.Scalar-by-vector
3.Vector-by-scalar
4.Scalar-by-matrix
- 直接维基https://en.wikipedia.org/wiki/Matrix_calculus
5.Matrix-by-scalar
- 直接维基https://en.wikipedia.org/wiki/Matrix_calculus
6.Scalar-by-scalar
- 直接维基https://en.wikipedia.org/wiki/Matrix_calculus
3.实际操作
- 参考自:https://blog.****.net/nomadlx53/article/details/50849941
举一个线性模型的例子
均为列向量,为,为;为矩阵,为.
-
分析:该式属于,目标是得出结果为列向量,所以更加上述的总表,整体采用分母布局。
-
展开
-
- 查上述的Scalar-by-vector identities,在表格中匹配形式到第1行的位置,因为分母为列向量,因此为分母布局,对应的求导结果就是 。
-
- 查上述的Scalar-by-vector identities表格,在表格中匹配形式到第11行的位置,对应的求导结果是。
-
- 查上述的Scalar-by-vector identities表格,在表格中匹配形式到第10行的位置,对应的求导结果是。
-
- 查上述的Scalar-by-vector identities表格,在表格中匹配形式到第13行的位置,对应的结果为。
-
-
合并:
4.习惯上使用混合布局
-
使用分母布局,保证求导完之后结果是列向量。
-
使用分子布局,保证求导完之后结果是列向量。
-
使用雅克比式(Jaocibian)。
说明,是(m*1)的列向量,是(n*1)的列向量,的结果是(m*n)大小的矩阵。
-
详细参见:https://www.cnblogs.com/pinard/p/10750718.html
矩阵向量求导的链式法则
1. 一般步骤
- 按照标量的链式法则写出链式关系。(预想布局方式(采用一种))
- 对于前后导数相乘的行列上的不匹配,进行调整。(不是分子上加转置,就是分母上加转置),矩阵前后可以相乘。
- 对于求导的每一项,简单的可以直接写出,不能直接写出的,进行查表。
2.深入了解和推导
-
如果想深入了解和推导每一步的过程:
参见:https://www.cnblogs.com/pinard/p/10750718.html【关于求导的合辑】,这个博主是个大佬!
总结
1.个人操作
- 首先掌握布局方式
- 能根据表(不一定都记住),写出求导结果
- 链式法则,可能会修改前后关系,调整符号表示
- 想一步步推导出来,参见刘建平大佬https://www.cnblogs.com/pinard/p/10750718.html
2.其他
- 网上关于这方面的教材有:
- 张贤达《矩阵分析与应用》
- 《matrix vector derivatives for machine learning》
- 《The Matrix Cookbook》
- https://www.zhihu.com/question/25399811【知乎上关于矩阵求导教材的讨论】
- http://psi.toronto.edu/
- 知乎:https://pan.百度.com/s/1jGFBSNk#list/path=%2F【来自知乎的一个分享,把百度换成baidu即可】
参考:
https://en.wikipedia.org/wiki/Matrix_calculus
https://www.cnblogs.com/pinard/p/10750718.html【合辑】
https://blog.****.net/lcczzu/article/details/89160371
https://www..com/article/5516168061/
https://blog.****.net/nomadlx53/article/details/50849941