正定値実対称行列の諸性質


 機械学習やより一般の情報科学の文脈で頻出する正定値実対称行列の性質についてまとめる。(分散共分散行列とかで出てくるンゴ。)より広くエルミート行列とか半正定値行列とかの性質について考えるのが見通しが良くていいのだが、実際使う上で正定値実対称に絞って覚えて(?)しまった方が楽。

定義

ARn×nA\in \mathbb{R}^{n\times n} とする。この時、(実)対称性及び正定値性は次のように定義される。

Aが対称行列    def  AT=AA0defx0,  xTAx>0\begin{aligned} A\text{が対称行列} \;\; & \overset{\mathrm{def}}{\Longleftrightarrow} \; &&A^T = A \\ A\succ 0\quad & \overset{\mathrm{def}}{\Longleftrightarrow} &&\forall_{\bm{x}\neq 0},\; \bm{x}^T A \bm{x}>0 \end{aligned}

ただし A0A\succ 0AA の正定値性を表す。

性質

この時、実対称行列 AA に対して次の同値条件が成立する。

Aが正定値Aの固有値はすべて正  (U,  UTU=I  A=UDUT,  D=diag(λ1,λ2,),  λi>0)Aはグラム行列  (B;  正則  A=BTB)Aのコレスキー分解が存在する  (L;  下三角、対角成分が正  A=LLT)\begin{aligned} & A\text{が正定値} \\ & \\ & \qquad \Longleftrightarrow A\text{の固有値はすべて正}\\ & \qquad\qquad \qquad \; \left(^{^\exists U,\; U^T U = I}\; A = UDU^T ,\; D=\text{diag}(\lambda_1,\lambda_2,\ldots),\;\lambda_i > 0\right)\\ & \qquad \Longleftrightarrow A\text{はグラム行列}\\ & \qquad\qquad \qquad \;\left(^{^\exists B;\;\text{正則}}\; A=B^{T}B\right)\\ & \qquad \Longleftrightarrow A\text{のコレスキー分解が存在する}\\ & \qquad\qquad \qquad \;\left(^{^\exists L;\;\text{下三角、対角成分が正}}\; A=LL^T\right) \end{aligned}

また、よく使うのは次。

  • 実対称 AA の固有値がすべて正 \Longrightarrow AA は正定値
  • AA が実対称正定値 \Longrightarrow AA は正則
    • A=UTDUA=U^T D U に対し A1=UTD1UA^{-1} = U^T D^{-1} U
  • AAが実対称正定値の時 f(x)=12xTAxbTxf(\bm{x}) = \dfrac{1}{2}\bm{x}^T A \bm{x} - \bm{b}^T\bm{x} の最小値は一意に存在し、Axmin=bA\bm{x}_\text{min}=\bm{b}
    • ( AAが実対称正定値の時、 Ax=bAx=b は共役勾配法で解ける)
  • AAが正定値実対称の時 B:正定値実対称;  A=B2^\exists B:\text{正定値実対称};\; A=B^2
    • (正定値平方根 A1/2A^{1/2} が存在する。)
  • 正則行列の極分解は直交行列+正定値実対称行列で、一意
    • F=SU=VT  ,  UTU=VTV=I  ,  S,T;実対称正定値F=SU=VT\; , \; U^T U = V^T V = I \;,\; S,T;\text{実対称正定値}

証明

実対称正定値 <-> 固有値はすべて正

AAが実対称行列とすると、AA は直交行列によって対角化可能である。

UAU1=D=diag(λ1,λ2,)A=UTDU UAU^{-1} = D = \text{diag}\left(\lambda_1,\lambda_2,\ldots\right)\leadsto A = U^{T}D U

よって、

xTAx=xTUTDUx=(Ux)TD(Ux)=iλi(Ux)i2\begin{aligned} \bm{x}^TAx &= \bm{x}^TU^{T}D U\bm{x}\\ & = \left(U\bm{x}\right)^T D \left(U\bm{x}\right)\\ & = \sum_i \lambda_i \left(U\bm{x}\right)_i^2 \end{aligned}

となるので、固有値 λi\lambda_i が正なら xTAx>0\bm{x}^T A \bm{x}>0 となる。また、x0\forall \bm{x}\neq 0x\bm{x} が動く時 UxU\bm{x}Rn\0\mathbb{R}^n\backslash \bm{0} を動くので、 x0;xTAx>0i;λi>0\forall {\bm{x}\neq 0} ; \bm{x}^T A \bm{x}>0 \Longrightarrow \forall i ; \lambda_i >0である。

グラム行列・正定値平方根

AA の対角行列 D=diag(λ1,λ2,)D = \text{diag}(\lambda_1,\lambda_2,\ldots)に対して、 λi>0\lambda_i>0 より次のように定義することが可能。

D1=  diag(λ11,λ21)D=  diag(λ1,λ2)\begin{aligned} D^{-1} = \;\text{diag}\left(\lambda_1^{-1},\lambda_2^{-1}\ldots\right)\\[5pt] \sqrt{D} = \; \text{diag}\left(\sqrt{\lambda_1},\sqrt{\lambda_2}\ldots\right) \end{aligned}

よって、 AA は次のように分解できる。

A=UTDU=UTDDU=UTDTQQTDU=(QTDU)T(QTDU)=(UTDU)(UTDU)\begin{aligned} A &= U^T D U = U^T \sqrt{D}\sqrt{D} U = U^T \sqrt{D}^T Q Q^T\sqrt{D} U \\ &= \left(Q^T\sqrt{D}U\right)^T \left(Q^T\sqrt{D}U\right)\\ &= \left(U^T \sqrt{D}U\right)\left(U^T \sqrt{D}U\right) \end{aligned}

ただし QQ は任意の直交行列である。この時、 B=QTDUB=Q^T\sqrt{D}UAAをグラム行列として見た時の分解 A=BTBA = B^T B を与え、 Q=UQ = U ととる時 BT=BB^T = Bとなり A1/2=UTDUA^{1/2} = U^T \sqrt{D}UAAの正定値平方根 A=A1/2A1/2A = A^{1/2}A^{1/2} を与える。