クロネッカー積

Kronecker Product

中級

1. 定義

定義:クロネッカー積

$m \times n$ 行列 $A = (a_{ij})$ と $p \times q$ 行列 $B$ に対して、クロネッカー積(Kronecker product)$A \otimes B$ は次の $mp \times nq$ ブロック行列として定義される:

$$A \otimes B = \begin{pmatrix} a_{11}B & a_{12}B & \cdots & a_{1n}B \\ a_{21}B & a_{22}B & \cdots & a_{2n}B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}B & a_{m2}B & \cdots & a_{mn}B \end{pmatrix}$$

すなわち、$A$ の各成分 $a_{ij}$ を $a_{ij}B$(スカラー倍した行列 $B$)に置き換えたブロック行列である。

クロネッカー積の名前は、ドイツの数学者レオポルト・クロネッカー(Leopold Kronecker, 1823–1891)に由来する。テンソル積の行列表現として、数値計算・信号処理・量子情報など広い分野で使われる。

例: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: クロネッカー積のブロック構造($2 \times 2 \otimes 3 \times 3$)

a₁₁ a₁₂ a₂₁ a₂₂ A B (p×q) B = a₁₁B a₁₂B a₂₁B a₂₂B mp × nq 行列

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 \otimes B$ と $B \otimes A$ は置換行列(完全シャッフル置換)$P, Q$ を用いて $P(A \otimes B)Q = 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)(C \otimes D) = (AC) \otimes (BD)$$

これはクロネッカー積の最も重要な性質の一つであり、多くの証明や応用の基盤となる。

証明

$(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}$ は、混合積性質から直ちに従う。また、$k$ 乗についても:

$$(A \otimes B)^k = A^k \otimes B^k$$

が成り立つ($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$ のとき:

$$\operatorname{vec}(AXB) = (B^T \otimes A)\,\operatorname{vec}(X)$$

特殊な場合として:

  • $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$ とすると、$AXB$ の第 $k$ 列は:

$$(AXB)_k = A \displaystyle\sum_{j=1}^{p} x_j b_{jk} \cdot \mathbf{e}_j = \displaystyle\sum_{j=1}^{p} b_{jk} A \mathbf{x}_j$$

この操作が $(B^T \otimes A)$ を $\operatorname{vec}(X)$ に適用した結果と一致することを確かめられる。$\square$

図2: vec 作用素によるベクトル化

行列方程式を連立一次方程式に変換 x1 x2 x3 X vec x1 x2 x3 vec(X) AXB = C 行列方程式 vec (Bᵀ⊗A) vec(X) = vec(C) 連立一次方程式 通常の Ax=b の形で 解法を適用可能

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$ の固有値は:

$$\lambda_i \mu_j \quad (i = 1, \ldots, m, \; j = 1, \ldots, p)$$

であり、対応する固有ベクトルは $\mathbf{u}_i \otimes \mathbf{v}_j$ である。ここで $A\mathbf{u}_i = \lambda_i \mathbf{u}_i$、$B\mathbf{v}_j = \mu_j \mathbf{v}_j$ である。

証明

混合積性質を用いる。$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$ の全固有値が得られる。$\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$$

クロネッカー和の固有値は $\lambda_i + \mu_j$ であり、これは行列指数関数 $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$ となる。

6.2 基底の順序の影響

テンソル積空間 $V \otimes W$ の基底の並べ方は一意ではない。辞書式順序 $e_1 \otimes f_1, e_1 \otimes f_2, \ldots, e_m \otimes f_p$ を用いた場合にクロネッカー積 $A \otimes B$ が得られるが、別の順序を用いると行の置換や列の置換に相当する変換が生じる。

注意:クロネッカー積は基底に依存する表現であるため、「クロネッカー積 = テンソル積」と同一視するのは厳密には誤りである。正確には「クロネッカー積はテンソル積の標準的な行列表現」である。

7. 応用

7.1 行列方程式

シルベスター方程式

シルベスター方程式は、未知行列 $X$ に対する方程式:

$$AX + XB = C$$

vec 作用素を適用すると:

$$\operatorname{vec}(AX + XB) = (I \otimes A + B^T \otimes I)\operatorname{vec}(X) = \operatorname{vec}(C)$$

これは $mn \times mn$ の連立一次方程式 $(I \otimes A + B^T \otimes I)\operatorname{vec}(X) = \operatorname{vec}(C)$ に帰着される。係数行列 $I \otimes A + B^T \otimes I$ はクロネッカー和 $A \oplus B^T$ に他ならない。

リアプノフ方程式

リアプノフ方程式は制御理論における安定性解析の基本方程式である:

$$AX + XA^T = -Q$$

これはシルベスター方程式で $B = A^T$, $C = -Q$ とした特殊な場合であり、同様にクロネッカー積を用いてベクトル化できる。

7.2 信号処理

信号処理では、クロネッカー積は多次元フィルタリングに利用される。例えば、2次元の分離可能フィルタは水平方向のフィルタ $\mathbf{h}$ と垂直方向のフィルタ $\mathbf{v}$ のクロネッカー積 $\mathbf{v} \otimes \mathbf{h}^T$ で表される。これにより、$N^2$ 回の乗算を必要とする2次元畳み込みを $2N$ 回の1次元畳み込みに分解できる。

また、MIMO(多入力多出力)通信システムのチャネル行列のモデリングにも用いられる。空間相関と時間相関が分離可能な場合、チャネル共分散行列はクロネッカー構造 $R_t \otimes R_r$ を持つ。

7.3 量子情報

量子計算では、複数の量子ビットの複合系の状態空間はテンソル積で構成される。$n$ 量子ビット系の状態は $2^n$ 次元のヒルベルト空間に属し、各量子ビットへのゲート操作はクロネッカー積で表現される。

例:2量子ビットへのゲート操作

第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 ゲートやエンタングルメントの記述においても、クロネッカー積は不可欠な道具である。

8. よくある質問

Q1: クロネッカー積とテンソル積の違いは何か?

テンソル積は抽象的な代数学における概念で、基底の選び方に依存しない普遍的な構成である。クロネッカー積はテンソル積を特定の基底に関して行列表現したものであり、具体的な計算に用いられる。つまり、クロネッカー積はテンソル積の行列表現(座標表現)である。

Q2: クロネッカー積は交換法則を満たすか?

一般にクロネッカー積は交換法則を満たさない。すなわち $A \otimes B \neq B \otimes A$ である。ただし、$A \otimes B$ と $B \otimes A$ は置換行列(完全シャッフル置換)による相似変換で結ばれるため、固有値の集合(重複込み)は一致する。

Q3: vec 作用素とクロネッカー積にはどのような関係があるか?

vec 作用素は行列を列ベクトルに変換する操作であり、$\operatorname{vec}(AXB) = (B^T \otimes A)\operatorname{vec}(X)$ という重要な関係式が成り立つ。この性質により、行列方程式(シルベスター方程式やリアプノフ方程式など)を通常の連立一次方程式に変換して解くことができる。

9. 参考資料