ブロック行列関連の役に立ちそうな線形代数いろいろ (for Gaussian Process)

  • ????????????????????


Gaussian process regression を導出する際に使った線形代数をまとめました(自分用のメモとしてTeX打ちしたものをコピペしているだけなので文法などおかしいところあるかもしれません)。

行列のサイズなどいろいろと端折って書いてありますが、基本的には以下のルールで書いてます。
\begin{align}
\begin{bmatrix}
A&B\\
C&D
\end{bmatrix}
\end{align}
と書かれている場合、対角ブロックの \(A, D\) は正方行列です。\(B, C\) は正方行列とは限りません。単純な計算問題には証明はついていません。あしからず。


ブロック行列の線形代数

よく出てきそうなタイプの行列の逆行列

\(A, B\) を正則行列とする(サイズは違ってもOK).\(C, D\) を行列とする.このとき,
\begin{align}
(A+CBD)^{-1}&=A^{-1}-A^{-1}C(B^{-1}+DA^{-1}C)^{-1}DA^{-1}
\end{align}
となる.証明は \((A+CBD)(A+CBD)^{-1}\) が単位行列になることを計算するだけ.

ブロックLU分解

ブロックLU分解というのがただしい名前なのかは知らないですが,とにかくLU分解のブロックバージョンとも呼べる等式が存在します.
\begin{align}
\Sigma=&\begin{bmatrix}
A&B\\
C&D
\end{bmatrix}
\end{align}
このとき \(\Sigma\) は以下のように「上三角ブロック行列」と「下三角ブロック行列」の積に分解可能:
\begin{align}
\Sigma&=\begin{bmatrix}
A&0\\
C&I
\end{bmatrix}
\begin{bmatrix}
I&A^{-1}B\\
0&D-CA^{-1}B
\end{bmatrix}\\
\end{align}
証明は単に計算するだけで終わります.

三角ブロック行列の行列式

\begin{align}
\det\begin{bmatrix}
A&C\\
0&B
\end{bmatrix}
&=\det A\cdot \det B
\end{align}
証明.\(A, B\) をジョルダン標準形にする行列をそれぞれ,\(P, Q\) とする.あたらしいブロック行列 \(R\) を以下で定義する:
\begin{align}
R&=
\begin{bmatrix}
P&0\\
0&Q
\end{bmatrix}, \quad
R^{-1}=
\begin{bmatrix}
P^{-1}&0\\
0&Q^{-1}
\end{bmatrix}
\end{align}
このとき,
\begin{align}
R^{-1}&\begin{bmatrix}
A&C\\
0&B
\end{bmatrix}R
=\begin{bmatrix}
P^{-1}AP&Q^{-1}CP\\
0&Q^{-1}BQ
\end{bmatrix}
=\begin{bmatrix}
J(A)&Q^{-1}CP\\
0&J(B)
\end{bmatrix}
\end{align}
となり(\(J(\cdot)\) はジョルダン標準形),これは上三角行列なので,
\begin{align}
\det
\begin{bmatrix}
A&C\\
0&B
\end{bmatrix}
&=\det \bigg[R^{-1}
\begin{bmatrix}
A&C\\
0&B
\end{bmatrix}
R\bigg]\\
&=\det
\begin{bmatrix}
J(A)&Q^{-1}CP\\
0&J(B)
\end{bmatrix}\\
&=\det J(A)\cdot\det J(B)
=\det A\cdot\det B
\end{align}
上三角行列の行列式が対角成分の積で表されることを使ってます.

ブロック行列の行列式

\begin{align}
\det
\begin{bmatrix}
A&B\\
C&D
\end{bmatrix}
=\det A\cdot\det\bigg[D-CA^{-1}B\bigg]
\end{align}
上の2つを使えば証明は一瞬.

ブロック行列の逆行列

\(\Sigma\) を正則行列とする.これをブロック表記して
\begin{align}
\Sigma&=\begin{bmatrix}
A&B\\
C&D
\end{bmatrix}
\end{align}
となったとする(ただし,\(A, D\) は正方行列).このとき,
\begin{align}
\Sigma^{-1}
&=\begin{bmatrix}
W&X\\
Y&Z
\end{bmatrix},\\
\text{where}\quad
W&=(A-BD^{-1}C)^{-1}\\
X&=-A^{-1}B(D-CA^{-1}B)^{-1},\\
Y&=-D^{-1}C(A-BD^{-1}C)^{-1},\\
Z&=(D-CA^{-1}B)^{-1}
\end{align}
となる.ただし,\(W, Z\) はそれぞれ \(A, D\) と同サイズの正方行列とする.以下、証明.
\begin{align}
\begin{bmatrix}
A&B\\
C&D
\end{bmatrix}
\begin{bmatrix}
W&X\\
Y&Z
\end{bmatrix}=
\begin{bmatrix}
I&0\\
0&I
\end{bmatrix}
\end{align}
より,以下が成り立つ.
\begin{align}
&W=A^{-1}-A^{-1}BY\\
&X=-A^{-1}BZ\\
&Y=-D^{-1}CW\\
&Z=D^{-1}-D^{-1}CX
\end{align}
\(X, Y\) を正方行列 \(W, Z\) の右辺に代入して整理すると
\begin{align}
&W=(A-BD^{-1}C)^{-1}\\
&Z=(D-CA^{-1}B)^{-1}
\end{align}
となる.これをそれぞれ \(X, Y\) に代入すれば
\begin{align}
&X=-A^{-1}B(D-CA^{-1}B)^{-1}\\
&Y=-D^{-1}C(A-BD^{-1}C)^{-1}
\end{align}
を得る.証明終.


対称行列,正定値行列の線形代数

対称行列の逆行列

正則な対称行列 \(A\) の逆行列はやっぱり対称行列になる.なぜなら,\((A^{-1})^TA=(A^TA^{-1})^T=(AA^{-1})^T=I^T=I\) となるが、両辺左から \(A^{-1}\) をかければ,\((A^{-1})^T=A^{-1}\) が得られる.

小ブロックの正定値性

\(\Sigma\) を正定値行列として,これをブロック表記する(ただし \(A, B\) は正方行列)
\begin{align}
\Sigma&=\begin{bmatrix}
A&C\\
C^T&B
\end{bmatrix}
\end{align}
このとき,\(A, B\) は正定値行列.証明.正定値性より任意の非ゼロベクトル \(z\) に対して\(z^T\Sigma z>0\) なので,
\begin{align}
z=&\begin{bmatrix}
z_1\\
0
\end{bmatrix}
\end{align}
としてやれば,\(z_1^TAz_1>0\) がわかるので \(A\) は正定値.同様に \(B\) も正定値.

正定値行列の対角成分は正の値になる.

二次形式の平方完成

\(A\) を正則な対称行列とする.二次形式
\begin{align}
\frac12x^TAx-b^Tx+c
\end{align}
を平方完成すると
\begin{align}
\frac12(x-A^{-1}b)^TA(x-A^{-1}b)+c-\frac12b^TA^{-1}b
\end{align}
となる.証明は計算してみるだけです.

はてなブックマーク - ブロック行列関連の役に立ちそうな線形代数いろいろ (for Gaussian Process)
Pocket