数学・統計学

アダマール積

アダマール積

アダマール積(Hadamard product)は、ベクトルや行列の対応する成分同士を掛け合わせる演算です[1]アダマール積という名前から難しい演算をイメージしがちですが、実際には対応する成分同士を掛け合わせるだけの単純な演算です。。ベクトルのアダマール積はベクトルを、行列のアダマール積は行列を返します。

画像処理、音声処理、自然言語処理におけるマスキング(フィルタリング)などで、アダマール積がよく用いられます。

アダマール積の定義(ベクトル、2次元)

\(\mathbf{a} = \begin{pmatrix} a_1 \\ a_2 \end{pmatrix}\)、\(\mathbf{b} = \begin{pmatrix} b_1 \\ b_2 \end{pmatrix}\) のアダマール積は、次のように定義されます[2]アダマール積の表記方法として、\(\mathbf{a} \odot \mathbf{b}\) もよく用いられます。

$$
\mathbf{a} \circ \mathbf{b} = \begin{pmatrix} a_1 b_1 \\ a_2 b_2 \end{pmatrix}
$$

例えば \(\mathbf{a} = \begin{pmatrix} 2 \\ 3 \end{pmatrix}\)、 \(\mathbf{b} = \begin{pmatrix} 3 \\ 1 \end{pmatrix}\) の場合、次のように計算されます。

$$
\mathbf{a} \circ \mathbf{b} = \begin{pmatrix} 2 \times 3 \\ 3 \times 1 \end{pmatrix} = \begin{pmatrix} 6 \\ 3 \end{pmatrix}
$$

アダマール積の定義(ベクトル、n次元)

\(\mathbf{a} = \begin{pmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{pmatrix}\)、\(\mathbf{b} = \begin{pmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{pmatrix}\) のアダマール積は、次のように定義されます。

$$
\mathbf{a} \circ \mathbf{b} = \begin{pmatrix} a_1 b_1 \\ a_2 b_2 \\ \vdots \\ a_n b_n \end{pmatrix}
$$

アダマール積の定義(行列)

行列 \(\mathbf{A} = (a_{ij})\)、\(\mathbf{B} = (b_{ij})\) が同じ形を持つとき、アダマール積は次のように定義されます。

$$
\mathbf{A} \circ \mathbf{B} = (a_{ij} b_{ij})
$$

例えば
\(\mathbf{A} = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}\)、\(\mathbf{B} = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix}\) の場合、、次のように計算されます。

$$
\mathbf{A} \circ \mathbf{B} = \begin{pmatrix} 1 \times 5 & 2 \times 6 \\ 3 \times 7 & 4 \times 8 \end{pmatrix} = \begin{pmatrix} 5 & 12 \\ 21 & 32 \end{pmatrix}
$$

脚注

脚注
1 アダマール積という名前から難しい演算をイメージしがちですが、実際には対応する成分同士を掛け合わせるだけの単純な演算です。
2 アダマール積の表記方法として、\(\mathbf{a} \odot \mathbf{b}\) もよく用いられます。
タイトルとURLをコピーしました