Matrix Derivative矩阵求导

学习机器学习算法时总碰见矩阵求导,现学习一波,主要总结下
注意:这里只涉及实数的求导,研究通信的人可能接触的往往是负数求导
矩阵可以写成列向量(column vectors)或行向量(row vectors)的形式,这两种不同的形式把矩阵求导分成了两种不同的情况

求导类型

1.jpg
表格列举了六种不同的矩阵求导类型,粗体代表向量或者矩阵(其实标量和向量也可以看作矩阵).
表格中还有三个空格没写出,实际上也是存在,但暂时先不讨论,因为这三种情况的求导结果大部分都是高于二阶的张量(tensor)形式,与常见的二维矩阵形式不同.

布局约定Layout conventions

机器学习中,以线性回归为例,每个输入都有多个属性,在表示属性时可以采用列向量或者行向量的形式,这两种形式会造成求导结果形式的不同.
注意是形式上的不同,因为本质上形式的不同不会影响求导结果,只不过将结果按照不同的方式组织起来,方便进一步运算
布局决定(Layout conventions)就是为了将不同形式的求导分类.分为两种布局:分子布局(numerator layout)和分母布局(denominator layout)
通俗解释,现规定向量或者矩阵分为原始形式和转置形式两种,比如在线性回归中我们把列向量作为属性值的原始形式,其转置形式就是行向量

  • 对于分子布局(numerator layout),求导结果中分子保持原始形式,分母为转置形式
  • 对于分母布局(denominator layout),求导结果中分子为转置形式,分母保持原始形式
    下图展示各种类型求导与两种布局之间的关系
    2.png

    numerator layout

    将上述表格中的分子布局单独拿出来,求导结果如下
    3.png
    下面的两种定义只在分子布局中有意义
    4.png

    denominator layout

    将上述表格中的分母布局单独拿出来,求导结果如下
    5.png

常见求导结果

现给出常见的求导结果,推导相关公式时可以查表
求导有链式法则(Chain Rule),但是矩阵乘积不满足交换律,所以链式法则对于matrix-by-scalar derivatives和scalar-by-matrix derivatives这两种情况不适用
下面贴出三种求导结果

Vector-by-vector

之所以先展示vector-by-vector的表格,是因为所有适用于vector-by-vector求导的操作也直接适用于vector-by-scalar or scalar-by-vector这两种情况
6.png

Scalar-by-vector

7.png

8.png

Vector-by-scalar

9.png

参考:
Matrix calculus

0%