【新人エンジニア向け】暗記は不要!「行列の掛け算」のルールを5分でマスターする

こんにちは。ゆうせいです。

前回は、行列が「数を表のように並べたもの」であり、データをまとめて扱うのに便利だというお話をしました。

「なんだ、ただの表か」と安心したのも束の間、多くの初学者が最初に頭を抱えるのが「行列の計算ルール」です。

普通の数(スカラー)なら、掛け算は単純です。2 \times 3 = 6。それだけですよね。

しかし、行列の掛け算は少し特殊な動きをします。

「なんでこんな面倒な計算をするの?」

「どこを掛けてどこに足すのか覚えられない!」

そんな声が聞こえてきそうです。でも、大丈夫。

この計算ルールには明確なリズムと意味があります。今回は、その仕組みを「動き」のイメージで捉えていきましょう。

普通の掛け算とは違う?「行」と「列」の出会い

行列の計算において、もっとも重要なキーワードは「行(横)」と「列(縦)」です。

まずは、行列とベクトル(縦に並んだ数)の掛け算を見てみましょう。

例として、次の計算を考えてみます。

\begin{pmatrix} 6 & 4 \ 3 & 5 \end{pmatrix} \begin{pmatrix} 1 \ 2 \end{pmatrix}

左側の行列には数字が4つ、右側のベクトルには数字が2つあります。

これを計算すると、結果はどうなると思いますか?

正解は、こうなります。

\begin{pmatrix} 6 \times 1 + 4 \times 2 \ 3 \times 1 + 5 \times 2 \end{pmatrix} = \begin{pmatrix} 14 \ 13 \end{pmatrix}

いきなり式が出てきて驚いたかもしれません。

でも、よく見てください。ここにはある規則性があります。

計算のリズム:横から来て、縦に落ちる

この計算は、以下の手順で行われています。

  1. 左の行列は「横(行)」に見る。
  2. 右のベクトルは「縦(列)」に見る。
  3. それぞれのペアを掛けて、最後に足す。

具体的に見ていきましょう。

  • 上の段の計算左の行列の「1行目」は 6, 4 です。右のベクトルは 1, 2 です。先頭同士(61)、後ろ同士(42)を掛けて足します。6 \times 1 + 4 \times 2 = 14
  • 下の段の計算左の行列の「2行目」は 3, 5 です。右のベクトルは同じく 1, 2 です。これも同様に掛け合わせて足します。3 \times 1 + 5 \times 2 = 13

つまり、左側の「横の並び」が、右側の「縦の並び」にガチャンと噛み合わさるイメージです。

なぜこんな計算をするのか?

「単に同じ場所にある数字同士を掛ければいいじゃないか」と思うかもしれません。

しかし、この独特な計算方法には、データ分析において非常に重要な意味があります。

計算結果の「14」という数字に注目してください。

この数字を作るために、6、$4$、$1$、$2$ という全ての数字が使われていますよね。

これは、「変換後のひとつの要素は、元の要素のすべてから影響を受けている」ということを意味しています。

例えば、あるジュースの「おいしさ」を数値化したいとします。

「甘み」と「酸味」という2つの要素があったとき、それらを単純に足すだけでなく、「甘みは6倍重視、酸味は4倍重視して混ぜ合わせる」といった複雑なブレンドを行っているのが、この行列の掛け算なのです。

データサイエンスの世界では、さまざまな特徴を混ぜ合わせて新しい特徴を作り出すことがよくあります。行列の積は、まさにそのための「高性能ミキサー」なのです。

行列同士の掛け算へステップアップ

ベクトルとの計算ができれば、行列同士の掛け算も怖くありません。

実は、「ベクトルとの計算を横に並べて繰り返すだけ」だからです。

次の例を見てみましょう。

\begin{pmatrix} 2 & 1 \ 4 & 1 \end{pmatrix} \begin{pmatrix} 1 & 3 \ 3 & 1 \end{pmatrix}

右側がベクトルではなく、2列の行列になりました。

でも、焦る必要はありません。右側の行列を「2本のベクトルが並んでいる」と考えればいいのです。

手順はこれだけ

  1. まず、右側の行列の「1列目(左側の縦列)」*\begin{pmatrix} 1 \ 3 \end{pmatrix} に注目して計算します。
    • 上:2 \times 1 + 1 \times 3 = 5
    • 下:4 \times 1 + 1 \times 3 = 7これが答えの「1列目」になります。
  2. 次に、右側の行列の「2列目(右側の縦列)」 \begin{pmatrix} 3 \ 1 \end{pmatrix} に注目して計算します。
    • 上:2 \times 3 + 1 \times 1 = 7
    • 下:4 \times 3 + 1 \times 1 = 13これが答えの「2列目」になります。

合わせると、答えはこうなります。

\begin{pmatrix} 5 & 7 \ 7 & 13 \end{pmatrix}

「左側の行」×「右側の列」。

いつでもこのリズムを思い出せば、どんなに行列が大きくなっても迷うことはありません。

今回のまとめ

今回は、行列計算の基本ルールについて解説しました。

  • 基本動作 :左の「行(横)」と右の「列(縦)」を順に掛けて足す。
  • 意味 :ただの計算ではなく、要素同士を複雑に影響させ合う「情報のブレンド」である。
  • 行列同士の積 :ベクトルとの掛け算を、列の数だけ繰り返すだけ。

最初は指を使って、「横……縦……」となぞりながら計算してみるのがおすすめです。慣れてくると、頭の中で数字が動いて見えるようになりますよ。

さて、計算ができるようになったら、次はいよいよ実践編です。

この行列の力を使えば、中学時代に苦労した「連立方程式」を、魔法のようにシステマチックに解くことができるようになります。

次回は、エンジニアなら知っておきたいアルゴリズム「掃き出し法」と、数の世界でいう逆数にあたる「逆行列」について解説します。

それでは、また次回お会いしましょう!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。