(《机器学习》完整版系列)附录 ——5、含矩阵的偏导数

讨论了如下含矩阵的偏导数:
迹的偏导数偏导数中的“分子”为标量,“分母”为矩阵
偏导数中的“分子”为矩阵,“分母”为标量
偏导数中的“分子”“分母”均为矩阵(或一矩阵一向量)

含矩阵的偏导数

式(A51)中,我们考虑 y \boldsymbol{y} y退化为标量 y y y x \boldsymbol{x} x进化为矩阵 X \mathbf{X} X时的情形。

(1)迹的偏导数

迹由式(A33)定义,它是自变量为矩阵的标量函数, 与其相关的偏导数公式有【西瓜书附录式(A.25)   ∼ \,\thicksim (A.29)】。
例如:

∂ t r   ( A B ) ∂ a i j = ∂ t r   ( [ ∑ k = 1 n a s k b k t ] ) ∂ a i j (由式(A15)) = ∂ ∑ s = 1 n [ ∑ k = 1 n a s k b k s ] ∂ a i j (由式(A33)) = ∂ ( a i j b j i + ∑ ∑ ( s ≠ i ) ∨ ( k ≠ j ) a s k b k s ) ∂ a i j = b j i \begin{align} \frac{\partial \mathrm{tr}\,(\mathbf{AB})}{\partial a_{ij}} & = \frac{\partial \mathrm{tr}\, \left( [\sum_{k=1}^na_{sk}b_{kt}] \right)}{\partial a_{ij}}\qquad \text{(由式(A15))}\notag \\ & = \frac{\partial \sum_{s=1}^n [\sum_{k=1}^na_{sk}b_{ks}] }{\partial a_{ij}}\qquad \text{(由式(A33))}\notag \\ & = \frac{\partial (a_{ij}b_{ji}+ \mathop{\sum\sum}_{\substack{(s\neq i)\vee (k\neq j)}}a_{sk}b_{ks}) }{\partial a_{ij}}\notag \\ & =b_{ji}\tag{A76} \end{align} aijtr(AB)=aijtr([k=1naskbkt])(由式(A15)=aijs=1n[k=1naskbks](由式(A33)=aij(aijbji+∑∑(s=i)(k=j)askbks)=bji(A76)
即为【西瓜书附录式(A.25)】。

∂ t r   ( A B ) ∂ A = ( [ ∂ t r   ( A B ) ∂ a i j ] ) (由前述“穿外套”方法) = ( [ b j i ] ) (由式(A76)) = B T \begin{align} \frac{\partial \mathrm{tr}\,(\mathbf{AB})}{\partial \mathbf{A}} & =\left( \left[ \frac{\partial \mathrm{tr}\,(\mathbf{AB})}{\partial a_{ij}} \right] \right) \qquad \text{(由前述“穿外套”方法)}\notag \\ & =\left( [b_{ji}] \right)\qquad \text{(由式(A76))}\notag \\ & ={\mathbf{B}}^\mathrm{T} \tag{A77} \end{align} Atr(AB)=([aijtr(AB)])(由前述穿外套方法)=([bji])(由式(A76)=BT(A77)
即为【西瓜书附录式(A.26)】,若令 B \mathbf{B} B I \mathbf{I} I,即得到【西瓜书附录式(A.28)】。

仿上述推导过程即可推导【西瓜书附录式(A.29)】。

在【西瓜书附录式(A.29)】中令 B = I \mathbf{B}=\mathbf{I} B=I,则
∂ t r   ( A T A ) ∂ A = 2 A \begin{align*} \frac{\partial \mathrm{tr}\,(\mathbf{A}^\mathrm{T}\mathbf{A})}{\partial \mathbf{A}} =2\mathbf{A} \end{align*} Atr(ATA)=2A

t r   ( A A T ) = t r   ( A T A ) (由【西瓜书附录式(A.7)】) \begin{align*} \mathrm{tr}\,(\mathbf{A}\mathbf{A}^\mathrm{T}) =\mathrm{tr}\,(\mathbf{A}^\mathrm{T}\mathbf{A}) \qquad\text{(由【西瓜书附录式(A.7)】)} \end{align*} tr(AAT)=tr(ATA)(由【西瓜书附录式(A.7)】)
即得【西瓜书附录式(A.30)】)

下面我们看一个常见的错误推导:
∂ t r   ( A B A T ) ∂ A = ∂ t r   ( A ( B A T ) ) ∂ A = ( B A T ) T (由【西瓜书附录式(A.26)】) = A B T \begin{align*} \frac{\partial \mathrm{tr}\,(\mathbf{AB}\mathbf{A}^\mathrm{T})}{\partial \mathbf{A}} & =\frac{\partial \mathrm{tr}\,(\mathbf{A}(\mathbf{B}\mathbf{A}^\mathrm{T}))}{\partial \mathbf{A}} \\ & =(\mathbf{B}\mathbf{A}^\mathrm{T})^\mathrm{T}\qquad\text{(由【西瓜书附录式(A.26)】)} \\ & =\mathbf{A}\mathbf{B}^\mathrm{T} \end{align*} Atr(ABAT)=Atr(A(BAT))=(BAT)T(由【西瓜书附录式(A.26)】)=ABT
与【西瓜书附录式(A.29)】比较,右边只是其中的一部分,那错在哪里?【西瓜书附录式(A.26)】中的 B \mathbf{B} B A \mathbf{A} A无关,故不能用 ( B A T ) (\mathbf{B}\mathbf{A}^\mathrm{T}) (BAT)代入公式中的 B \mathbf{B} B

(2)偏导数中的“分子”为标量,“分母”为矩阵
∂ y ∂ A \begin{align} \frac{\partial {y}}{\partial \mathbf{A}} \tag{A78} \end{align} Ay(A78)
通过列向量化(将矩阵的列逐列向下拼接形成的长向量)将矩阵变为向量,再用式(A43)的方式得到其偏导数,再将该偏导数向量变换回矩阵,该矩阵即是由【西瓜书附录式(A.19)】所定义。

有时,“分子”看起来是矩阵,其实是标量,如 t r A \mathrm{tr}\mathbf{A} trA,【西瓜书附录式(A.28)】:
∂ t r A ∂ A = I \begin{align} \frac{\partial \mathrm{tr}\mathbf{A}}{\partial \mathbf{A}}=\mathbf{I} \tag{A79} \end{align} AtrA=I(A79)
其中, I \mathbf{I} I的大小与方阵 A \mathbf{A} A相同,即为 n n n阶。

再如:
∂ t r ( B A − 1 ) ∂ A = − ( A − 1 B A − 1 ) T \begin{align} \frac{\partial \mathrm{tr}(\mathbf{B}\mathbf{A}^{-1})}{\partial \mathbf{A}}=-(\mathbf{A}^{-1}\mathbf{B}\mathbf{A}^{-1})^{\mathrm{T}} \tag{A80} \end{align} Atr(BA1)=(A1BA1)T(A80)
∂ ∣ A ∣ ∂ A = ∣ A ∣ A − T \begin{align} \frac{\partial |\mathbf{A}|}{\partial \mathbf{A}}=|\mathbf{A}|\mathbf{A}^{-\mathrm{T}} \tag{A81} \end{align} AA=AAT(A81)
注: A − T \mathbf{A}^{-\mathrm{T}} AT表示 ( A − 1 ) T (\mathbf{A}^{-1})^{\mathrm{T}} (A1)T ∣ A ∣ |\mathbf{A}| A为行列式,这两公式的证明需要用到较深的矩阵知识,本博直接引用不作推导。

(3)偏导数中的“分子”为矩阵,“分母”为标量

该偏导数也是矩阵,由【西瓜书附录式(A.18)】所定义,也可以通过矩阵的列向量化方式去定义。

例如【西瓜书附录式(A.24)】:
∂ A − 1 ∂ x = − A − 1 ∂ A ∂ x A − 1 \begin{align} \frac{\partial \mathbf{A}^{-1}}{\partial x}=-\mathbf{A}^{-1} \frac{\partial \mathbf{A}}{\partial x}\mathbf{A}^{-1} \tag{A82} \end{align} xA1=A1xAA1(A82)

(4)偏导数中的“分子”“分母”均为矩阵(或一矩阵一向量)

式(A43)定义了偏导数中的“分子”“分母”均为向量的情形,但当其一或二者都升级为矩阵时,则很复杂,本博不作讨论,仅列举简单几例说明。
∂ A ∂ A = I \begin{align} \frac{\partial \mathbf{A}}{\partial \mathbf{A}}=\mathbf{I} \tag{A83} \end{align} AA=I(A83)
其中, I \mathbf{I} I n 2 n^2 n2阶的单位矩阵(即大小为 n 2 × n 2 n^2\times n^2 n2×n2,其中 n n n为方阵 A \mathbf{A} A的阶)。 比较它与式(A79)的 I \mathbf{I} I,两单位矩阵大小不一样。


∂ A − 1 ∂ A = − A − T ⊗ A − 1 \begin{align} \frac{\partial \mathbf{A}^{-1}}{\partial \mathbf{A}}=-\mathbf{A}^{-\mathrm{T}} \otimes \mathbf{A}^{-1} \tag{A84} \end{align} AA1=ATA1(A84)
注: ⊗ \otimes 表示Kronecker积,两 n n n阶矩阵的Kronecker积 A ⊗ B \mathbf{A}\otimes \mathbf{B} AB的大小为 n 2 n^2 n2阶,其证明需要用到较深的矩阵知识,本博直接引用不作推导。

(5)偏导数的链式法则

链式法则式(A58)、式(A59),是基于向量而不是矩阵推导的,当变量为矩阵时,情况如何?

1)自变量为矩阵的复合函数,当中间变量为标量时,关于矩阵的函数的偏导数链式法则成立。
∂ z ∂ A = ∂ y ∂ A ∂ z ∂ y \begin{align} \frac{\partial z}{\partial \mathbf{A}} =\frac{\partial {y}}{\partial \mathbf{A}} \frac{\partial z}{\partial {y}} \tag{A85} \end{align} Az=Ayyz(A85)
例如(中间变量 ∣ A ∣ |\mathbf{A}| A为标量)
∂ ∣ A ∣ − 1 2 ∂ A = ∂ ∣ A ∣ ∂ A ∂ ∣ A ∣ − 1 2 ∂ ∣ A ∣ = − 1 2 ∣ A ∣ − 1 2 − 1 ∂ ∣ A ∣ ∂ A = − 1 2 ∣ A ∣ − 1 2 − 1 ∣ A ∣ A − T (由式(A81)) = − 1 2 ∣ A ∣ − 1 2 A − T \begin{align} \frac{\partial |\mathbf{A}|^{-\frac{1}{2}}}{\partial \mathbf{A}} & =\frac{\partial |\mathbf{A}|}{\partial \mathbf{A}}\frac{\partial |\mathbf{A}|^{-\frac{1}{2}}}{\partial |\mathbf{A}|}\notag \\ & ={-\frac{1}{2}}|\mathbf{A}|^{-\frac{1}{2}-1}\frac{\partial |\mathbf{A}|}{\partial \mathbf{A}}\notag \\ & ={-\frac{1}{2}}|\mathbf{A}|^{-\frac{1}{2}-1}|\mathbf{A}|\mathbf{A}^{-\mathrm{T}} \qquad \text{(由式(A81))}\notag \\ & ={-\frac{1}{2}}|\mathbf{A}|^{-\frac{1}{2}}\mathbf{A}^{-\mathrm{T}} \tag{A86} \end{align} AA21=AAAA21=21A211AA=21A211AAT(由式(A81)=21A21AT(A86)

2)自变量为矩阵的复合函数,当中间变量不为标量时,链式法则不成立。

我们用链式法则试试一例:

∂ a T A − 1 a ∂ A = ∂ A − 1 ∂ A ∂ a T A − 1 a ∂ A − 1 (试用链式法则) = ∂ A − 1 ∂ A ∂ t r ( a T A − 1 a ) ∂ A − 1 (标量的迹) = ∂ A − 1 ∂ A ∂ t r ( A − 1 a a T ) ∂ A − 1 (由【西瓜书附录式(A.8)】) = ∂ A − 1 ∂ A ( a a T ) T (由【西瓜书附录式(A.26)】) = − A − T ⊗ A − 1 ( a a T ) (由式(A84)) \begin{align} \frac{\partial \boldsymbol{a}^{\mathrm{T}}\mathbf{A}^{-1}\boldsymbol{a}}{\partial \mathbf{A}} & =\frac{{\partial \mathbf{A}^{-1}}}{{\partial \mathbf{A}}}\frac{\partial \boldsymbol{a}^{\mathrm{T}}\mathbf{A}^{-1}\boldsymbol{a}}{\partial \mathbf{A}^{-1}}\quad \text{(试用链式法则)}\tag{A87} \\ & =\frac{{\partial \mathbf{A}^{-1}}}{{\partial \mathbf{A}}}\frac{\partial \mathrm{tr}(\boldsymbol{a}^{\mathrm{T}}\mathbf{A}^{-1}\boldsymbol{a})}{\partial \mathbf{A}^{-1}}\quad \text{(标量的迹)}\notag \\ & =\frac{{\partial \mathbf{A}^{-1}}}{{\partial \mathbf{A}}}\frac{\partial \mathrm{tr}(\mathbf{A}^{-1}\boldsymbol{a}\boldsymbol{a}^{\mathrm{T}})}{\partial \mathbf{A}^{-1}}\quad \text{(由【西瓜书附录式(A.8)】)}\notag \\ & =\frac{{\partial \mathbf{A}^{-1}}}{{\partial \mathbf{A}}}{(\boldsymbol{a}\boldsymbol{a}^{\mathrm{T}})^{\mathrm{T}}}\quad \text{(由【西瓜书附录式(A.26)】)}\notag \\ & =-\mathbf{A}^{-\mathrm{T}} \otimes \mathbf{A}^{-1}{(\boldsymbol{a}\boldsymbol{a}^{\mathrm{T}})}\quad \text{(由式(A84))} \tag{A88} \end{align} AaTA1a=AA1A1aTA1a(试用链式法则)=AA1A1tr(aTA1a)(标量的迹)=AA1A1tr(A1aaT)(由【西瓜书附录式(A.8)】)=AA1(aaT)T(由【西瓜书附录式(A.26)】)=ATA1(aaT)(由式(A84)(A87)(A88)

∂ a T A − 1 a ∂ A = ∂ t r ( a T A − 1 a ) ∂ A = ∂ t r ( a a T A − 1 ) ∂ A = − ( A − 1 a a T A − 1 ) T (由式(A80) = − ( A − T a a T A − T ) \begin{align} \frac{\partial \boldsymbol{a}^{\mathrm{T}}\mathbf{A}^{-1}\boldsymbol{a}}{\partial \mathbf{A}} & =\frac{\partial \mathrm{tr}(\boldsymbol{a}^{\mathrm{T}}\mathbf{A}^{-1}\boldsymbol{a})}{\partial \mathbf{A}}\notag \\ & =\frac{\partial \mathrm{tr}(\boldsymbol{a}\boldsymbol{a}^{\mathrm{T}}\mathbf{A}^{-1})}{\partial \mathbf{A}}\notag \\ & =-(\mathbf{A}^{-1}\boldsymbol{a}\boldsymbol{a}^{\mathrm{T}}\mathbf{A}^{-1})^{\mathrm{T}} \quad \text{(由式(A80)}\notag \\ & =-(\mathbf{A}^{-{\mathrm{T}}}\boldsymbol{a}\boldsymbol{a}^{\mathrm{T}}\mathbf{A}^{-{\mathrm{T}}}) \tag{A89} \end{align} AaTA1a=Atr(aTA1a)=Atr(aaTA1)=(A1aaTA1)T(由式(A80)=(ATaaTAT)(A89)
显然,式(A88)不等于式(A89),两结果矩阵的大小就不一样,说明应用链式法则的式(A87)不成立。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:4、神经网络中的梯度(链式法则的图形助记)
下一篇:6、指示函数及应用(将分段函数表达成一个式子的技术)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值