知っておくと便利だった行列の計算ルール

サイズがうまくいっていれば,ブロック行列もだいたい計算規則は普通の行列と同じ.

前提

転置と内積 〜ベクトルの場合〜

ベクトルのときは右が転置していると行列、左が転置していると実数。

$$u v^\top = \begin{pmatrix} u_1 v_1 & \cdots & u_1 v_k \\ \vdots & \ddots & \vdots \\ u_k v_1 & \cdots & u_k v_k \end{pmatrix}$$ $$u^\top v = \sum_{i=1}^k u_i v_i \\$$

本題

ベクトルを並べて行列を表したときは、演算規則は行列そのもの。横ベクトルを立てに並べた行列を、ベクトルに左からかけるとそれは内積を立てに並べたものになる。
基本は,行列は列ベクトルが横に並んでいると思って見ておくと読みやすい. $V = \begin{pmatrix} & & \\ v_1 & \cdots & v_k \\ & & \end{pmatrix}$

転置と内積 〜行列の場合〜

行列のときは右が転置しているほうが和の形になる(内積っぽい雰囲気が出る)。

$$VW^\top = \begin{pmatrix} & & \\ v_1 & \cdots & v_k \\ & & \end{pmatrix} \begin{pmatrix} & w_1^\top & \\ & \vdots & \\ & w_k^\top & \end{pmatrix} = \sum_{j=1}^k (v_j w_j^\top)_j \\$$

しかし中身が内積なのは左が転置している場合.

$$V^\top W = \begin{pmatrix} & v_1^\top & \\ & \vdots & \\ & v_k^\top & \end{pmatrix} \begin{pmatrix} & & \\ w_1 & \cdots & w_k \\ & & \end{pmatrix} = \begin{pmatrix} \\ & & \\ & v_i^\top w_j & \\ & & \end{pmatrix}_{ij} = \begin{pmatrix} v_1^\top w_1 & \cdots & v_1^\top w_k \\ \vdots & \ddots & \vdots \\ v_k^\top w_1 & \cdots & v_k^\top w_k \end{pmatrix}$$

ベクトルの内積に出てくる行列

内積の表現で、左から行列をかけているやつは、実際は二次形式の形。

$$<u, A v> = u^\top A v \\$$

(ところでConjugate の定義から $<u, A v> = <A^* u, v>$だが,要するにこれは$<u, A v> = u^\top (A^\top)^\top v = <A^\top u, v>$)

行列の転置も,ベクトルを並べたものなら,ベクトルと同じようにできる.

全体を転置しつつ,各成分ベクトル自身も転置する.

$A = \begin{pmatrix} & & \\ A_1 & \cdots & A_k \\ & & \end{pmatrix}$ に対して $A^\top = \begin{pmatrix} & A_1^\top & \\ & \vdots & \\ & A_k^\top & \end{pmatrix}$

トレースまわりのこと

行列のトレースは linear

$tr(\alpha A + \beta B) &= \alpha tr A + \beta tr B$

行列の成分ごとの内積はトレースでかける。

$<A, B> = \sum_{ij} A_{ij} B_{ij}$ となってほしいが,これは $tr(A^\top B)$$tr(A B^\top)$ で実現できる($tr A = tr A^\top$なのでどちらでも同じ). $A = \begin{pmatrix} & & \\ A_1 & \cdots & A_k \\ & & \end{pmatrix}, B = \begin{pmatrix} & & \\ B_1 & \cdots & B_k \\ & & \end{pmatrix}$ に対して, $$\begin{split} <A, B> = tr(A^\top B) &= tr \begin{pmatrix} & A_1^\top & \\ & \vdots & \\ & A_k^\top & \end{pmatrix} \begin{pmatrix} & & \\ B_1 & \cdots & B_k \\ & & \end{pmatrix} \\ &= tr \begin{pmatrix} A_1^\top B_1 & \cdots & A_1^\top B_k \\ \vdots & \ddots & \vdots \\ A_k^\top B_1 & \cdots & A_k^\top B_k \end{pmatrix} \\ &= \sum_{j=1}^k A_j^\top B_j \end{split}$$ $$\begin{split} tr(A B^\top) &= tr \begin{pmatrix} & & \\ A_1 & \cdots & A_k \\ & & \end{pmatrix} \begin{pmatrix} & B_1^\top & \\ & \vdots & \\ & B_k^\top & \end{pmatrix}\\ &= tr\left(\sum_{j=1}^k A_j B_j^\top\right) \\ &= \sum_{j=1}^k tr(A_j B_j^\top) \\ &= \sum_{j=1}^k \sum_{i=1}^l A_{jl} B_{jl} \end{split}$$

特異値分解

特異値分解も,

$$X = U \Sigma V^\top = (u_1 \cdots u_p) \begin{pmatrix} \sigma_{1} & & \\ & \ddots & \\ & & \sigma_p \end{pmatrix} \begin{pmatrix} v_1^\top \\ \vdots \\ v_p^\top \end{pmatrix} = \sum_{k=1}^p \sigma_k u_k v_k^\top$$

という具合に,$X$を和に分解しているのだという様子が,内積的っぽい演算規則から分かる($u_k$ たちなどは実数ではなくベクトルなのに,内積と同じ形で和になっている).