-
定义辅助函数
设 x 是一个 n×n 的正定矩阵,V 是一个任意的 n×n 对称矩阵。我们定义一个单变量函数 g(t):
g(t)=f(x+tV)=logdet(x+tV)
我们的目标是计算 g′′(t) 并在 t=0 处求值。
-
计算一阶导数 g′(t)
我们使用链式法则以及矩阵行列式的导数公式:dtddet(A(t))=det(A(t))tr(A(t)−1dtdA(t))。
由此可得对数行列式的导数公式:
dtdlogdet(A(t))=det(A(t))1dtddet(A(t))=tr(A(t)−1dtdA(t))
在我们的问题中,A(t)=x+tV,因此 dtdA(t)=V。
将此代入公式,我们得到 g(t) 的一阶导数:
g′(t)=tr((x+tV)−1V)
-
计算二阶导数 g′′(t)
接下来,我们对 g′(t) 求导。这需要用到矩阵逆的导数公式:dtdA(t)−1=−A(t)−1(dtdA(t))A(t)−1。
g′′(t)=dtdtr((x+tV)−1V)=tr(dtd((x+tV)−1)V)=tr(−((x+tV)−1dtd(x+tV)(x+tV)−1)V)=tr(−(x+tV)−1V(x+tV)−1V)
-
在 t=0 处求值
将 t=0 代入 g′′(t) 的表达式:
g′′(0)=−tr(x−1Vx−1V)
-
证明 g′′(0)≤0
我们需要证明 −tr(x−1Vx−1V)≤0,这等价于证明 tr(x−1Vx−1V)≥0。
- 因为 x 是正定矩阵 (x≻0),所以它的逆 x−1 也是正定矩阵。
- 因为 x−1 是正定的,所以它存在一个唯一的正定平方根,我们记为 (x−1/2)。
- 利用迹 (trace) 的循环性质 tr(AB)=tr(BA),我们可以重写表达式:
tr(x−1Vx−1V)=tr(x−1/2x−1/2Vx−1/2x−1/2V)=tr((x−1/2Vx−1/2)(x−1/2Vx−1/2))
- 我们定义一个新矩阵 A=x−1/2Vx−1/2。
- 因为 x−1/2 和 V 都是对称矩阵,所以 A 也是一个对称矩阵。
- 表达式变为 tr(A2)。
- 对于任何实对称矩阵 A,其迹可以表示为其特征值 λi 的和。因此,A2 的特征值为 λi2。
tr(A2)=i=1∑nλi(A2)=i=1∑n(λi(A))2
- 由于特征值 λi(A) 是实数,它们的平方 (λi(A))2 必然是非负的。
- 因此,它们的和也必然是非负的:
tr(A2)=i=1∑n(λi(A))2≥0
- 这就证明了 tr(x−1Vx−1V)≥0。
-
结论
因为 tr(x−1Vx−1V)≥0,所以:
g′′(0)=−tr(x−1Vx−1V)≤0
由于二阶方向导数对于任意方向 V 都是非正的,这表明函数 f(x) 的 Hessian 矩阵是负半定的。因此,函数 f(x)=logdet(x) 在其定义域(所有正定矩阵的集合)上是凹函数。