对矩阵中的参数进行二次形式的导数

机器算法验证 衍生物 矩阵演算
2022-03-23 02:13:34

我想计算以下的导数:

yTC1(θ)yθk ,

(请注意,C 是一个协方差矩阵,取决于一组参数θ

我使用了链式法则: yTC1(θ)yθk=yTC1(θ)yC(θ)C(θ)θk

使用当量。来自 Matrix Cookbook 的 61 ( http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3274/pdf/imm3274.pdf ) 我得到:

yTC1(θ)yθk=[C1(θ)yyTC1(θ)]C(θ)θk

但是,这会导致矩阵乘以矩阵,并且我必须获得一个标量,我无法弄清楚我的推导在哪里出错。

2个回答

为了打字方便,定义 注意是对称矩阵. 另请注意,最终表达式中的冒号只是跟踪函数的一种方便(Frobenius 乘积)表示法。

Y=yyT,A=C1,J=Cθλ=yTC1y=Tr(YTA)=Y:A
(A,C,Y)

迹线的循环特性允许以多种方式重新排列 Frobenius 乘积的项。例如,以下所有表达式都是等价的 要找到首先要找到它的微分

A:BC=BC:A=AT:(BC)T=BTA:C=ACT:B
λθ
dλ=Y:dA=Y:AdCA=AYA:dC=AYA:Jdθλθ=AYA:J=Tr(C1yyTC1Cθ)
这与您在 Matrix Cookbook 中找到的内容一致,只是您应该在链式法则中使用 Frobenius 乘积而不是常规矩阵乘积。

对于矩阵微积分问题,我发现使用微分比使用链式法则更容易。对于很多问题,链式法则所需的中间量是三阶和四阶张量,它们很难理解,甚至更难计算。

我猜正确的链式法则是

yTC1(θ)yθk=i,jyTC1(θ)yCi,j(θ)Ci,j(θ)θk=Tr[(yTC1(θ)yC(θ))T(C(θ)θk)]

在哪里Tr(A)=iai,i,An×n是一个跟踪函数。