直積とアダマール積(Hadamard 積)の基礎
このページでは、線形代数でよく現れる「直積(主にベクトル・行列のテンソル積 / クロネッカー積)」と「アダマール積(Hadamard 積:要素ごとの積)」の違いと使いどころを整理する。
参考にしたドキュメント
- Wikipedia(日本語)アダマール積
https://ja.wikipedia.org/wiki/アダマール積 - Wikipedia(日本語)直積 (ベクトル) https://ja.wikipedia.org/wiki/直積_(ベクトル)
1. 用語の整理
文脈により「直積」は少し意味が変わるが、このページでは主に
- ベクトル空間の直積:
のように、2 つのベクトル空間を組にした新しい空間 - ベクトル・行列のテンソル積 / クロネッカー積:
- ベクトル:
- 行列:
- ベクトル:
を指すものとして説明する(特に行列については「クロネッカー積」と呼ばれることが多い)。
一方、
- アダマール積(Hadamard 積):
同じサイズの行列を、要素ごとに掛け合わせる積
$ (A \circ B){ij} = A B_{ij} $
のことを指す。
2. ベクトルの直積(テンソル積)
2.1 定義(ベクトル)
長さ
このとき、テンソル積(直積)
のように定義される(並び順は約束によるが、一般にこのような形)。
2.2 イメージ
- 次元を増やす操作:
から を作る。
- 量子力学の 2 体系(スピン系など)やテンソルネットワークでは、
- 「2 つの自由度をまとめて 1 つの大きな状態として扱う」際の基本操作になる。
3. 行列の直積(クロネッカー積)
3.1 定義(行列)
クロネッカー積(直積)
と定義される。
3.2 簡単な例
のとき、
となる。
3.3 性質(ごく一部)
- サイズ:
が 、 が なら は 。
- 積との相性(よく使う性質):
(次元が合う場合)
- 固有値:
の固有値を 、 の固有値を とすると、 の固有値は になる。
4. アダマール積(Hadamard 積)
4.1 定義
同じサイズの行列
アダマール積
と「要素ごと(成分ごと)」に掛け算した行列として定義される。
例として、どちらも
なら
となる。
4.2 性質
- サイズ:
と は同じサイズでなければならない。
- 対応する要素ごとの積なので、
が成り立つ(結合律・交換律)。
- スペクトル(固有値)やランクなどの性質は、通常の行列積・クロネッカー積と全く異なる。
5. 直積(クロネッカー積)とアダマール積の違い
5.1 操作としての違い
直積(テンソル / クロネッカー積)
- 次元を増やす/ブロック構造を作る操作。
- 行列サイズが大きく変わる(
が 、 が → )。 - 多体系の状態や、線形写像の構造を表現するときに使う。
アダマール積
- 同じサイズの行列の「要素ごとの掛け算」。
- サイズは変わらない。
- 重み付きマスク、共分散行列からの操作、Hadamard 不等式など、確率・統計・信号処理・機械学習でよく使われる。
5.2 典型的な用途の違い
| 観点 | 直積(テンソル / クロネッカー) | アダマール積(Hadamard) |
|---|---|---|
| 次元 | 増える(大きな行列になる) | 変わらない |
| 使う場面 | 多体系量子状態、テンソルネットワーク、離散化、線形写像の構成など | 要素ごとの重み付け、マスク、共分散操作、カーネルの組み合わせなど |
| 線形写像としての扱い | 「別の空間への線形変換」として自然に解釈できる | 通常はある空間上の「点ごとの操作」として解釈 |
| 名前 | クロネッカー積、テンソル積 | Hadamard 積、要素ごとの積 |
6. どちらをいつ使うか
6.1 直積を使う場面
- 「自由度を増やしたい」とき
- 2 つのベクトル空間
, から を作る。
- 2 つのベクトル空間
- 「2 つの行列の線形写像を組み合わせた新しい写像」を作るとき
- 例:離散化された 2D 作用素を 1D 作用素のテンソル積として表現する。
- 量子力学・テンソルネットワーク
- 多体波動関数、ゲート演算、MPS/PEPS などの構成要素。
6.2 アダマール積を使う場面
- 「同じ形のデータに対して、要素ごとに重みを掛けたい」とき
- 画像にマスクをかける、行列要素ごとのスケール調整など。
- カーネル法やガウス過程
- カーネル行列同士の Hadamard 積で、新しいカーネルを構成することがある。
- 統計・行列解析
- 共分散行列を要素ごとに調整する、Hadamard 不等式に関する議論など。
7. まとめ
- 「直積(テンソル / クロネッカー積)」は、
- 空間や行列のサイズを増やし、自由度を組み合わせるための積。
- 「アダマール積」は、
- 同じサイズの行列の要素をそのまま掛け合わせるための積。
直積は「空間を作る/写像を構成する」操作、
アダマール積は「与えられた空間上でのローカルな操作」として使い分けるイメージを持つと整理しやすい。