なぜニューラルネットワークの層と層の間は「内積」でつながっているのか?

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

今日は、ニューラルネットワークの層と層の間の演算に「内積」が使われている理由について、詳しく解説していきます。

「なんで足し算とかじゃなくて、内積なの?」
そんな疑問を持ったあなたのために、仕組みと背景をやさしくひもといていきます!


ニューラルネットの基本構造をおさらい

まずはおさらいから。

ニューラルネットワークは、

  • 入力層
  • 中間層(隠れ層)
  • 出力層

という層の集合体です。各層には「ニューロン(ノード)」という小さな処理ユニットがたくさん並んでいます。

これらの層は次の層に信号を渡していくのですが、そのときに使われるのが「内積」なんです。


入力と重みの「内積」で信号を伝える

ニューロン同士がつながるとき、前の層の出力(数値)に「重み(weight)」をかけて、次の層に渡します。

たとえば:

  • 前の層の出力:x = [x₁, x₂, x₃]
  • 重み:w = [w₁, w₂, w₃]

このとき、次の層のニューロンでは、

z = x₁×w₁ + x₂×w₂ + x₃×w₃
z = x・w
(ゼットは、エックス1かけるダブリュー1 たす エックス2かけるダブリュー2 たす エックス3かけるダブリュー3)

という計算、つまり内積が行われます。


でも、なぜ「内積」?

ここからが本題です!

層と層の演算に内積が使われるのには、ちゃんと理由があります。


理由1:すべての入力を「まとめて」扱えるから

内積は、複数の入力をひとつの値に圧縮できます。

これはつまり、「このニューロンにどれくらい刺激が届いているか?」を数字1つで表現できるということ。

これはとても効率が良いんです。

たとえば、料理で言えば:

  • 塩、こしょう、醤油などの調味料(=入力)
  • 分量(=重み)

これらをうまく組み合わせて「この料理はしょっぱいぞ!」と判断する、みたいな感じです。


理由2:行列演算として拡張しやすい!

ニューラルネットでは、何十個、何百個というニューロンが同時に計算されます。

これを一つひとつやっていたら、時間がかかって仕方ありません。

そこで使われるのが「行列(matrix)」です。

  • 入力ベクトル:x(1行n列)
  • 重み行列:W(n行m列)
  • 結果:z = xW(1行m列)

つまり、ベクトルと行列の掛け算により、一気に全ニューロンの内積を計算できるんです!

これによって、GPUなどの計算機でも超高速で処理できるようになります。


理由3:内積には「方向性と相性」がある

内積には、ベクトルの方向の違いを測る意味もあります。

  • 同じ方向 → 内積が大きくなる(よく反応)
  • 正反対 → 内積がマイナス(反応しない)
  • 直角 → 内積がゼロ(無視)

つまり、重みベクトルというのは「この特徴に注目しているよ!」という方向を持っており、入力ベクトルとの内積を取ることで、「注目していた特徴がどれだけあったか」を数値化できるわけです。


内積じゃなかったらどうなる?

逆に、もし内積を使わずに、たとえば「全部の入力を足すだけ」にすると…

  • どの入力が重要なのか区別がつかない
  • 全体の強さしかわからない
  • ニューロンが学習できる表現が限られる

といった欠点が出てきます。

重みによる調整 + 内積 = ニューロンが「意味ある判断」をできるという仕組みなんですね。


数式でのまとめ

層と層の間の演算は、次のように表せます。

z = x・w + b
z = x₁w₁ + x₂w₂ + ... + xₙwₙ + b
(ゼットは、エックス1かけるダブリュー1 たす エックス2かけるダブリュー2 … たす バイアス)

ここに活性化関数(ReLUなど)を通すことで、非線形性も導入されます。


まとめ

ニューラルネットの層間演算に内積が使われる理由は、主に3つ。

理由内容
複数入力の圧縮重み付き和をコンパクトに表現できる
行列演算の効率GPUなどで高速処理できる
類似度の測定重みと入力の相性を計算できる

内積は「たった一つの操作で、ニューロンが意味のある判断を下すための土台」となっているのです。


今後の学習のヒント

次のステップとして、以下のテーマを勉強してみてください!

  • バイアス項の意味と効果
  • 活性化関数の役割(ReLU, sigmoid, tanhなど)
  • 内積とコサイン類似度の違い
  • 行列計算とテンソル演算の違い

「仕組み」だけでなく、「なぜこの仕組みにしたのか?」まで考えると、グッと理解が深まりますよ!

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

投稿者プロフィール

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