矩阵微分的一般方法
首先说明,我们的方法主要在是在 denominator layout 框架下。
按照微分分子分母的类型,我们可以给矩阵微分分为几个类别。如果 scalar / vector、vector / matrix 等等。我们不需要记住每一种情况下的规则。除却涉及矩阵的微分计算(形式比较特殊),我们首先需要记住的是微分计算的两个个法则:乘法法则、和链式法则(加法法则比较简单直观,无需记忆)。
vector-by-vector
1.乘法法则(最后列为denominator layout)
2. 链式法则(最后列为denominator layout)
scalar-by-vector
1.乘法法则(最后列为denominator layout)
2. 链式法则(最后列为denominator layout)
vector-by-scalar
1.乘法法则(最后列为denominator layout)
2. 链式法则(最后列为denominator layout)
涉及matrix微分运算的方法
设计到matrix微分的运算方法情况比较复杂,一种处理方法是把微分问题转化为 element-wise,也就对matrix的单个元素做微分,之后在整合到一起。
一些常用微分结论
按位计算的向量函数及其导数:
我们定义 x = [x1, · · · , xK]T, z = [z1, · · · , zK]T
其中, f(x)是按位运算的,即[f(x)]i = f(xi),则有:
参考文献:
[1] Matrix calculus
[2] 神经网络与深度学习(邱锡鹏)