当サイトについて知りたい方はこちら

機械学習と数学:行列の演算(足し算、引き算、掛け算)について

機械学習には、「行列」という概念が頻繫に出てきます。今回は、行列についての基本を説明します。

行列とは?

行列とは、整数などの要素を、縦横それぞれの方向に並べたものを指します。高校数学では、数年前まで「数学C」という範囲に入っていましたが、今では除外され、大学での「線形代数」の授業で学ぶ内容になっています。

$$ \begin{bmatrix} 1 & 3 \\ 5 & 4 \end{bmatrix} $$

数学の教科書などで、上記のようなものを見たことがある人も多いと思います。これこそが、行列です。

行列の縦方向を、横方向をと言います。

行列の形を表現する場合、「行数×列数の行列」と言うことがあります。例えば、上記の行列は2×2の行列です。

行列同士の足し算

数字を足し合わせるように、行列同士を足し算することもできます。

例:2つの行列の足し算

$$ \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} + \begin{bmatrix} 2 & 6 \\ 8 & 4 \end{bmatrix} = \begin{bmatrix} 3 & 8 \\ 11 & 8 \end{bmatrix} $$

例を見ればすぐわかると思いますが、要素同士を足し合わせれば良いです。より分かりやすくするために、記号で表してみます。

$$ \begin{bmatrix} a & b \\ c & d \end{bmatrix} + \begin{bmatrix} e & f \\ g & h \end{bmatrix} = \begin{bmatrix} a+e & b+f \\ c+g & d+h \end{bmatrix} $$

行列同士の引き算

引き算についても、足し算とほとんど同じように計算できます。

例:2つの行列の引き算

$$ \begin{bmatrix} 3 & 4 \\ 5 & 6 \end{bmatrix} + \begin{bmatrix} 1 & 3 \\ 2 & 6 \end{bmatrix} = \begin{bmatrix} 2 & 1 \\ 3 & 0 \end{bmatrix} $$

記号で表すと、次のようになります。

$$ \begin{bmatrix} a & b \\ c & d \end{bmatrix} + \begin{bmatrix} e & f \\ g & h \end{bmatrix} = \begin{bmatrix} a-e & b-f \\ c-g & d-h \end{bmatrix} $$

足し算、引き算をするための条件

足し算や引き算はどの行列同士でも行えるわけではありません。足し算引き算をするには、「列数と行数が一致している」行列同士である必要があります。

行列に整数を掛ける

行列に整数を掛け、「定数倍」する動作も簡単に行うことができます。

$$ 3 \times \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 3 & 6 \\ 9 & 12 \end{bmatrix} $$

記号で表すと、以下のようになります。

$$ t \times \begin{bmatrix} a & b \\ c & d \end{bmatrix} = \begin{bmatrix} at & bt \\ ct & dt \end{bmatrix} $$

行列同士の掛け算

掛け算は少し計算がややこしくなります。まずは、記号を使って書いてみます。

$$ \begin{bmatrix} a & b \\ c & d \end{bmatrix} \times \begin{bmatrix} e & f \\ g & h \end{bmatrix} = \begin{bmatrix} ae+bg & af+bh \\ ce+dg & cf+dh \end{bmatrix} $$

足し算や定数倍と比べると、難しい式になりました。初めから暗記するのは大変なので、計算問題を解きながら自然と覚えていくのが良いでしょう。

整数同士の掛け算と、行列同士の掛け算との違い

例えば、3×5を計算する場合は、3×5と計算しても5×3と計算しても答えは共に15となります。整数同士の掛け算では常識ですが、行列同士ではこれが必ずしも成り立つとは限りません。

例:行列A、Bの掛け算

$$ A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} , B = \begin{bmatrix} 2 & 5 \\ 3 & 0 \end{bmatrix} $$

$$A \times B = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \times \begin{bmatrix} 2 & 5 \\ 3 & 0 \end{bmatrix} = \begin{bmatrix} 8 & 5 \\ 18 & 15 \end{bmatrix} $$

$$B \times A = \begin{bmatrix} 2 & 5 \\ 3 & 0 \end{bmatrix} \times \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 17 & 24 \\ 3 & 6 \end{bmatrix} $$

全く異なる結果になりました。このように、AB=BAとはならないという点に注意が必要です。

行列同士の掛け算をする際の留意点

先ほどの例では行列A、Bは共に2×2の行列であり、スムーズに計算をすることができましたが、行列同士の掛け算はどんな場合でも成り立つわけではありません。

例:行列同士の掛け算ができない組み合わせ

$$\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \times \begin{bmatrix} 2 & 5 & 4\\ 3 & 0 & 2 \ \\ 4 & 1 & 5 \end{bmatrix} = ??? $$

この例では、2×2と3×3の行列同士を掛けようとしていますが、このような計算はできません。行列同士で掛け算をするためには、ある条件を満たす必要があります。

条件:

行列AとBの掛け算をしたい(ABを計算する)場合、

「Aの列数=Bの行数」が成立する必要がある

この例では、左側の行数の列数は2、右側の行数の行数は3なので、条件を満たしていません。したがって、掛け算はできないということになります。

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