MATLAB,Python,Scilab,Julia比較 その20【行列演算③】

MATLAB,Python,Scilab,Julia比較 その20【行列演算③】数値計算
MATLAB,Python,Scilab,Julia比較 その20【行列演算③】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/

スポンサーリンク

はじめに

前回は、行列の乗算(内積)の話だったが、
これを理解するには線形代数の基礎部分が必要となる。
行列演算の話を一通り行ったあとに線形代数を簡単に説明予定。

今回はアダマール積。

スポンサーリンク

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

スポンサーリンク

アダマール積

フクさん
フクさん

次はアダマール積。

太郎くん
太郎くん

アダマール積ってなんぞ?
って思ったからWikipediaから引用してきた。

フクさん
フクさん

(自分で調べてくるとは珍しいな)

数学におけるアダマール積(英: Hadamard product)は、同じサイズの行列に対して成分ごとに積を取ることによって定まる行列の積である。要素ごとの積(英: element-wise product)、シューア積(英: Schur product)、点ごとの積(英: pointwise product)、成分ごとの積(英: entrywise product)などとも呼ばれる。

Wikipediaより(https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%80%E3%83%9E%E3%83%BC%E3%83%AB%E7%A9%8D)
太郎くん
太郎くん

これを見ると、
前回の乗算(内積)と違って、要素単位で掛け算すればOKって感じか。

フクさん
フクさん

そうそう。
以下の計算になる。

\(
AB=
\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}\odot
\begin{bmatrix}
5 & 6 \\
7 & 8
\end{bmatrix}=
\begin{bmatrix}
1\times5 & 2\times6 \\
3\times7 & 4\times8
\end{bmatrix}=
\begin{bmatrix}
5 & 12 \\
21 & 32
\end{bmatrix}
\)

太郎くん
太郎くん

確かに要素単位で掛け算してるね。
\(\odot\)のマークがアダマール積を示すのか。

スポンサーリンク

アダマール積ってマイナー?

フクさん
フクさん

演算子については、あまり定まって無くて、
\(\otimes\)、\(\oslash\)、\(\circ\)で表現されていることもある。

太郎くん
太郎くん

そうすると、どう区別したらいいんだ・・・。

フクさん
フクさん

もう文脈に判断するしかないな。
ある程度、制約がある状況下で出てくることが多いから、それほど惑わされることはないと思うけど。

太郎くん
太郎くん

まじか・・・。

太郎くん
太郎くん

ちなみにアダマール積ってどういうときに使うの?

フクさん
フクさん

構造的には行列で表現してるけど、
計算したいのは行列としての積じゃなくて、ベクトルとしての積を求めたいときかな?
画像の畳み込みに使われることが多い
画像は、2次元平面上にピクセルが配置されてるから、
見た目は行列なんだけど、計算する側からするとベクトルとして計算したいことが多いんだよね。
行列からベクトルに直してから計算しても良いか、
あまり構造を変えたくないときは行列のままアダマール積を行って、それらの和を取れば、
ベクトルとして内積を取ったのと同じ計算結果になる。

太郎くん
太郎くん

(まじで何言ってんのか分からん・・・。)

フクさん
フクさん

ま、直近では使わないから、「アダマール積というものがある」という認識に留めておいてもよいだろう。

太郎くん
太郎くん

じゃー、そうしよう。

スポンサーリンク

まとめ

フクさん
フクさん

まとめだよ。

  • 今回はアダマール積について。
  • 演算子がいろいろあり、アダマール積かどうかは文脈で読み解くしかない。
  • しかし、特殊な状況でしか登場しないので、そういうものがあるという程度で留めておいてもよいかも。
    • 画像処理の畳み込みで出てくることは多い。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました