クロネッカー積
Kronecker Product
中級
1. 定義
定義:クロネッカー積
$m \times n$ 行列 $A = (a_{ij})$ と $p \times q$ 行列 $B$ に対して、クロネッカー積(Kronecker product)$A \otimes B$ は次の $mp \times nq$ ブロック行列として定義される:
すなわち、$A$ の各成分 $a_{ij}$ を $a_{ij}B$(スカラー倍した行列 $B$)に置き換えたブロック行列である。
クロネッカー積の名前は、ドイツの数学者レオポルト・クロネッカー(Leopold Kronecker, 1823–1891)に由来するが、この行列の演算を最初に記述したのは J. G. Zehfuss(1858)とされ、「Zehfuss 行列」とも呼ばれた(Henderson, Pukelsheim & Searle, 1983)。テンソル積の行列表現として、数値計算・信号処理・量子情報など広い分野で使われる。
例:2×2 行列と 3×3 行列のクロネッカー積
$$A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad B = \begin{pmatrix} 5 & 6 & 7 \\ 8 & 9 & 10 \\ 11 & 12 & 13 \end{pmatrix}$$
このとき $A \otimes B$ は $6 \times 6$ のブロック行列となる:
$$A \otimes B = \begin{pmatrix} 1 \cdot B & 2 \cdot B \\ 3 \cdot B & 4 \cdot B \end{pmatrix} = \begin{pmatrix} 5 & 6 & 7 & 10 & 12 & 14 \\ 8 & 9 & 10 & 16 & 18 & 20 \\ 11 & 12 & 13 & 22 & 24 & 26 \\ 15 & 18 & 21 & 20 & 24 & 28 \\ 24 & 27 & 30 & 32 & 36 & 40 \\ 33 & 36 & 39 & 44 & 48 & 52 \end{pmatrix}$$
図1: クロネッカー積のブロック構造($A$ が $2 \times 2$ の場合)
2. 基本性質
以下、行列のサイズは演算が定義されるように適切に選ばれているものとする。
2.1 結合律
性質
$$(A \otimes B) \otimes C = A \otimes (B \otimes C)$$
ブロック行列の入れ子構造を展開すると両辺が一致することから確かめられる。
2.2 分配律
性質
$$A \otimes (B + C) = A \otimes B + A \otimes C$$
$$(A + B) \otimes C = A \otimes C + B \otimes C$$
2.3 スカラー倍
性質
スカラー $c$ に対して:
$$(cA) \otimes B = A \otimes (cB) = c(A \otimes B)$$
2.4 転置
性質
$$(A \otimes B)^T = A^T \otimes B^T$$
複素行列の場合、共役転置についても同様に $(A \otimes B)^* = A^* \otimes B^*$ が成り立つ。
証明
$A \otimes B$ の $(i,j)$ ブロックは $a_{ij}B$ であるから、$(A \otimes B)^T$ の $(j,i)$ ブロックは $(a_{ij}B)^T = a_{ij}B^T$ である。一方、$A^T \otimes B^T$ の $(j,i)$ ブロックは $(A^T)_{ji} B^T = a_{ij} B^T$ である。両者は一致する。$\square$
2.5 逆行列
性質
$A$, $B$ がそれぞれ正則であるとき:
$$(A \otimes B)^{-1} = A^{-1} \otimes B^{-1}$$
証明
後述する混合積性質を用いると:
$$(A \otimes B)(A^{-1} \otimes B^{-1}) = (AA^{-1}) \otimes (BB^{-1}) = I_m \otimes I_p = I_{mp}$$
同様に $(A^{-1} \otimes B^{-1})(A \otimes B) = I_{mp}$ も成り立つ。$\square$
2.6 トレース
性質
$A$ が $m \times m$、$B$ が $p \times p$ の正方行列のとき:
$$\operatorname{tr}(A \otimes B) = \operatorname{tr}(A) \cdot \operatorname{tr}(B)$$
証明
$A \otimes B$ の対角ブロックは $a_{11}B, a_{22}B, \ldots, a_{mm}B$ であり、各ブロックのトレースは $a_{ii}\operatorname{tr}(B)$ である。したがって:
$$\operatorname{tr}(A \otimes B) = \displaystyle\sum_{i=1}^{m} a_{ii} \operatorname{tr}(B) = \operatorname{tr}(A) \cdot \operatorname{tr}(B) \quad \square$$
2.7 行列式
性質
$A$ が $m \times m$、$B$ が $p \times p$ の正方行列のとき:
$$\det(A \otimes B) = (\det A)^p \cdot (\det B)^m$$
この公式は、後述する固有値の性質から導くことができる(固有値は複素数の範囲で、代数的重複度を込めて数える)。$A$ の固有値を $\lambda_1, \ldots, \lambda_m$、$B$ の固有値を $\mu_1, \ldots, \mu_p$ とすると、$A \otimes B$ の固有値は $\lambda_i \mu_j$($i = 1, \ldots, m$, $j = 1, \ldots, p$)であるから:
$$\det(A \otimes B) = \displaystyle\prod_{i=1}^{m}\displaystyle\prod_{j=1}^{p} \lambda_i \mu_j = \left(\displaystyle\prod_{i=1}^{m}\lambda_i\right)^p \left(\displaystyle\prod_{j=1}^{p}\mu_j\right)^m = (\det A)^p (\det B)^m$$
2.8 非可換性
一般に、クロネッカー積は可換ではない:
$$A \otimes B \neq B \otimes A$$
ただし、$A$ が $m \times n$、$B$ が $p \times q$ のとき、置換行列(完全シャッフル置換)である交換行列を用いて $K_{p,m}(A \otimes B)K_{n,q} = B \otimes A$ と関係付けられる(置換同値・4.3 節)。$A$, $B$ がともに正方行列なら $K_{n,q} = K_{p,m}^T = K_{p,m}^{-1}$ となるので、これは相似変換であり、$A \otimes B$ と $B \otimes A$ は同じ固有値(重複込み)を持つ。
3. 混合積性質
定理:混合積性質(Mixed-Product Property)
行列の積が定義されるとき($A$ が $m \times n$, $B$ が $p \times q$, $C$ が $n \times r$, $D$ が $q \times s$)、以下が成り立つ:
これはクロネッカー積の最も重要な性質の一つであり、多くの証明や応用の基盤となる。
証明
$(A \otimes B)$ の $(i,k)$ ブロックは $a_{ik}B$($p \times q$)であり、$(C \otimes D)$ の $(k,j)$ ブロックは $c_{kj}D$($q \times s$)である。したがって、積 $(A \otimes B)(C \otimes D)$ の $(i,j)$ ブロックは:
$$\displaystyle\sum_{k=1}^{n} (a_{ik}B)(c_{kj}D) = \displaystyle\sum_{k=1}^{n} a_{ik}c_{kj}(BD) = \left(\displaystyle\sum_{k=1}^{n} a_{ik}c_{kj}\right)(BD) = (AC)_{ij} \cdot (BD)$$
これは $(AC) \otimes (BD)$ の $(i,j)$ ブロックそのものである。$\square$
混合積性質の応用例
逆行列の公式 $(A \otimes B)^{-1} = A^{-1} \otimes B^{-1}$ は、混合積性質から直ちに従う。また、$A$, $B$ が正方行列で $k$ が 0 以上の整数のとき:
$$(A \otimes B)^k = A^k \otimes B^k$$
が成り立つ($k$ に関する帰納法と混合積性質による。$A$, $B$ が正則なら負の整数 $k$ でも成り立つ)。
4. vec 作用素との関係
4.1 vec 作用素の定義
定義:vec 作用素
$m \times n$ 行列 $X = (\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_n)$ に対して、vec 作用素は $X$ の列を縦に積み重ねた $mn \times 1$ ベクトルを返す:
$$\operatorname{vec}(X) = \begin{pmatrix} \mathbf{x}_1 \\ \mathbf{x}_2 \\ \vdots \\ \mathbf{x}_n \end{pmatrix}$$
4.2 基本的な vec の公式
定理
$A$ が $m \times n$、$X$ が $n \times p$、$B$ が $p \times q$ のとき:
特殊な場合として:
- $B = I$: $\operatorname{vec}(AX) = (I \otimes A)\,\operatorname{vec}(X)$
- $A = I$: $\operatorname{vec}(XB) = (B^T \otimes I)\,\operatorname{vec}(X)$
証明のスケッチ
$X$ の第 $j$ 列を $\mathbf{x}_j$、$B$ の第 $k$ 列を $\mathbf{b}_k$ とすると、$AXB$ の第 $k$ 列は:
$$(AXB)_k = AX\mathbf{b}_k = A\left(\displaystyle\sum_{j=1}^{p} b_{jk}\mathbf{x}_j\right) = \displaystyle\sum_{j=1}^{p} b_{jk} A \mathbf{x}_j$$
一方、$(B^T \otimes A)\operatorname{vec}(X)$ の第 $k$ ブロックは $\sum_{j} (B^T)_{kj} A\mathbf{x}_j = \sum_{j} b_{jk} A\mathbf{x}_j$ であり、両者は一致する。$\square$
図2: vec 作用素によるベクトル化
4.3 交換行列(Commutation Matrix)
$m \times n$ 行列 $X$ に対して、$\operatorname{vec}(X)$ と $\operatorname{vec}(X^T)$ を結びつける交換行列 $K_{m,n}$ が存在し、以下が成り立つ:
$$K_{m,n} \operatorname{vec}(X) = \operatorname{vec}(X^T)$$
交換行列を用いると、クロネッカー積の順序の入れ替えが可能になる:
$$K_{p,m}(A \otimes B)K_{n,q} = B \otimes A$$
ここで $A$ は $m \times n$、$B$ は $p \times q$ である。
5. 固有値
定理:クロネッカー積の固有値
$A$ を $m \times m$ 行列(固有値 $\lambda_1, \ldots, \lambda_m$)、$B$ を $p \times p$ 行列(固有値 $\mu_1, \ldots, \mu_p$)とする。このとき $A \otimes B$ の固有値は:
である(固有値は複素数の範囲で、代数的重複度を込めて数える)。また $A\mathbf{u} = \lambda \mathbf{u}$、$B\mathbf{v} = \mu \mathbf{v}$ なら、$\mathbf{u} \otimes \mathbf{v}$ は固有値 $\lambda \mu$ に対する $A \otimes B$ の固有ベクトルである。
証明
混合積性質を用いる。$A\mathbf{u}_i = \lambda_i \mathbf{u}_i$、$B\mathbf{v}_j = \mu_j \mathbf{v}_j$ のとき:
$$(A \otimes B)(\mathbf{u}_i \otimes \mathbf{v}_j) = (A\mathbf{u}_i) \otimes (B\mathbf{v}_j) = (\lambda_i \mathbf{u}_i) \otimes (\mu_j \mathbf{v}_j) = \lambda_i \mu_j \, (\mathbf{u}_i \otimes \mathbf{v}_j)$$
よって $\mathbf{u}_i \otimes \mathbf{v}_j$ は固有値 $\lambda_i \mu_j$ に対する固有ベクトルである。$A$ と $B$ が共に対角化可能ならば、これらの $mp$ 個の固有ベクトルで $A \otimes B$ の全固有値が得られる。一般の場合は、Schur 分解 $A = UTU^*$、$B = VSV^*$($U, V$ はユニタリ、$T, S$ は上三角)から $A \otimes B = (U \otimes V)(T \otimes S)(U \otimes V)^*$ となり、$T \otimes S$ は対角成分が $\lambda_i \mu_j$ の上三角行列なので、同じ結論が対角化可能でなくても成り立つ。$\square$
例:固有値の計算
$$A = \begin{pmatrix} 2 & 0 \\ 0 & 3 \end{pmatrix}, \quad B = \begin{pmatrix} 1 & 0 \\ 0 & 4 \end{pmatrix}$$
$A$ の固有値は $\lambda_1 = 2, \lambda_2 = 3$、$B$ の固有値は $\mu_1 = 1, \mu_2 = 4$。
したがって $A \otimes B$ の固有値は:
$$\lambda_1\mu_1 = 2, \quad \lambda_1\mu_2 = 8, \quad \lambda_2\mu_1 = 3, \quad \lambda_2\mu_2 = 12$$
クロネッカー和の固有値
関連する概念として、クロネッカー和(Kronecker sum)がある:
$$A \oplus B = A \otimes I_p + I_m \otimes B \quad (A \text{ は } m \times m,\ B \text{ は } p \times p)$$
クロネッカー和の固有値は $\lambda_i + \mu_j$ である。また $A \otimes I_p$ と $I_m \otimes B$ は可換なので、行列指数関数について $e^{(A \oplus B)t} = e^{At} \otimes e^{Bt}$ が成り立つ。
6. テンソル積との関係
テンソル積は抽象代数学における普遍的な構成であり、基底の選び方に依存しない。一方、クロネッカー積はテンソル積を特定の基底に関して行列表現したものである。
6.1 有限次元の場合
有限次元ベクトル空間 $V$($\dim V = m$)と $W$($\dim W = p$)に対して、線形写像 $T: V \to V$ と $S: W \to W$ を考える。$V$ の基底 $\{e_1, \ldots, e_m\}$ に関する $T$ の行列表現を $A$、$W$ の基底 $\{f_1, \ldots, f_p\}$ に関する $S$ の行列表現を $B$ とすると、テンソル積写像 $T \otimes S: V \otimes W \to V \otimes W$ の基底 $\{e_i \otimes f_j\}$ に関する行列表現がクロネッカー積 $A \otimes B$ となる。より一般に、$T: V \to V'$、$S: W \to W'$ が異なる空間への線形写像の場合も、$T \otimes S$ の行列表現として長方行列のクロネッカー積が現れる。
6.2 基底の順序の影響
テンソル積空間 $V \otimes W$ の基底の並べ方は一意ではない。辞書式順序 $e_1 \otimes f_1, e_1 \otimes f_2, \ldots, e_m \otimes f_p$ を用いた場合にクロネッカー積 $A \otimes B$ が得られるが、別の順序を用いると、行と列に同じ置換を施す相似変換 $P(A \otimes B)P^T$ が生じる($B \otimes A$ はその一例)。
注意:クロネッカー積は基底に依存する表現であるため、「クロネッカー積 = テンソル積」と同一視するのは厳密には誤りである。正確には「クロネッカー積はテンソル積の標準的な行列表現」である。
7. 応用
7.1 行列方程式
シルベスター方程式
シルベスター方程式は、$m \times m$ 行列 $A$、$n \times n$ 行列 $B$、$m \times n$ 行列 $C$ に対する未知の $m \times n$ 行列 $X$ の方程式:
$$AX + XB = C$$
vec 作用素を適用すると:
$$\operatorname{vec}(AX + XB) = (I_n \otimes A + B^T \otimes I_m)\operatorname{vec}(X) = \operatorname{vec}(C)$$
これは $mn \times mn$ の連立一次方程式 $(I_n \otimes A + B^T \otimes I_m)\operatorname{vec}(X) = \operatorname{vec}(C)$ に帰着される。係数行列 $I_n \otimes A + B^T \otimes I_m$ は、上の定義のクロネッカー和 $B^T \oplus A$ に等しい($A \oplus B^T$ とは置換行列で相似で、固有値 $\lambda_i + \mu_j$ は同じ)。したがって、$A$ の固有値と $-B$ の固有値に共通のものが無いとき(すべての $\lambda_i + \mu_j \neq 0$)に限り、解はただ一つに決まる。
リアプノフ方程式
リアプノフ方程式は制御理論における安定性解析の基本方程式である:
$$AX + XA^T = -Q$$
これはシルベスター方程式で $B = A^T$, $C = -Q$ とした特殊な場合であり、同様にクロネッカー積を用いてベクトル化できる。
7.2 信号処理
信号処理では、クロネッカー積は多次元フィルタリングに利用される。例えば、2次元の分離可能(ランク 1)なフィルタは、水平方向のフィルタ $\mathbf{h}$ と垂直方向のフィルタ $\mathbf{v}$ のクロネッカー積 $\mathbf{v} \otimes \mathbf{h}^T$ で表される。$N \times N$ のフィルタがこの形なら、出力 1 画素あたり $N^2$ 回の乗算が要る2次元畳み込みを、縦と横の1次元畳み込み(1 画素あたり計 $2N$ 回の乗算)に分けられる。一般の(分離できない)フィルタにはこの分解は使えない。
また、MIMO(多入力多出力)通信システムのチャネル行列のモデリングにも用いられる。送信側と受信側の空間相関が分離可能と仮定する(クロネッカーモデル)と、チャネル共分散行列は送信側の相関行列 $R_t$ と受信側の相関行列 $R_r$ のクロネッカー積 $R_t \otimes R_r$ の形になる(vec の並べ方によっては $R_t^T \otimes R_r$ と書く)。
7.3 量子情報
量子計算では、複数の量子ビットの複合系の状態空間はテンソル積で構成される。$n$ 量子ビット系の状態は $2^n$ 次元のヒルベルト空間に属し、各量子ビットに独立に作用するゲート(局所ゲート)は、他の量子ビットへの恒等作用素とのクロネッカー積で表現される。
例:2量子ビットへのゲート操作
計算基底を $|00\rangle, |01\rangle, |10\rangle, |11\rangle$ の順に並べ、第1量子ビットを左側の因子とする規約で、第1量子ビットにパウリ X ゲート、第2量子ビットに恒等ゲートを作用させる場合:
$$X \otimes I = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} \otimes \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \end{pmatrix}$$
CNOT ゲートのようにエンタングルメントを生むゲートは一般に単純なクロネッカー積ではないが、$|0\rangle\langle 0| \otimes I + |1\rangle\langle 1| \otimes X$ のようにクロネッカー積の和として書け、その記述にもクロネッカー積は不可欠な道具である。
8. よくある質問
Q1: クロネッカー積とテンソル積の違いは何か?
テンソル積は抽象的な代数学における概念で、基底の選び方に依存しない普遍的な構成である。クロネッカー積はテンソル積を特定の基底に関して行列表現したものであり、具体的な計算に用いられる。つまり、クロネッカー積はテンソル積の行列表現(座標表現)である。
Q2: クロネッカー積は交換法則を満たすか?
一般にクロネッカー積は交換法則を満たさない。すなわち $A \otimes B \neq B \otimes A$ である。ただし、両者は置換行列(完全シャッフル置換)で $K(A \otimes B)K' = B \otimes A$ と結ばれる。$A$, $B$ が正方行列のときはこれが相似変換になるため、固有値の集合(重複込み)は一致する。
Q3: vec 作用素とクロネッカー積にはどのような関係があるか?
vec 作用素は行列を列ベクトルに変換する操作であり、$\operatorname{vec}(AXB) = (B^T \otimes A)\operatorname{vec}(X)$ という重要な関係式が成り立つ。この性質により、行列方程式(シルベスター方程式やリアプノフ方程式など)を通常の連立一次方程式に変換して解くことができる。ただし、解がただ一つに決まるかは、得られた係数行列が正則かどうか(シルベスター方程式なら $A$ と $-B$ に共通の固有値が無いこと)による。
9. 参考資料
- Horn, R. A., & Johnson, C. R. (2012). Matrix Analysis, 2nd ed., Cambridge University Press. Cambridge University Press — 第4章でクロネッカー積の理論を詳述。
- Laub, A. J. (2005). Matrix Analysis for Scientists and Engineers, SIAM. SIAM
- Henderson, H. V., Pukelsheim, F., & Searle, S. R. (1983). On the history of the Kronecker product. Linear and Multilinear Algebra, 14(2), 113–120. doi:10.1080/03081088308817548
- Wikipedia: クロネッカー積
- Wikipedia (en): Kronecker product
- Wikipedia: テンソル積