内積とは何を計算しているのか?|「影」と「角度」でわかるベクトルの本質

数学
スポンサーリンク

ChatGPTでも使われている「内積」

以前の記事では、ChatGPTのようなAIが、「意味の近さ」を判断するために、内積を使っていることを解説しました。

たとえば、

  • 「猫」と「犬」は近い
  • 「猫」と「自動車」は遠い

といった“意味の近さ”は、ベクトル同士の角度や内積によって計算されています。

▶ AI編はこちら
ChatGPTは“意味の近さ”をどう理解しているのか?|AIを支える「内積」の話
ChatGPTは、「猫」と「犬」が近い言葉だと理解しています。でも、AIは人間のように“意味”を感覚で理解しているわけではありません。では、なぜAIは、「猫」と「犬」は近い「猫」と「自動車」は遠いと判断できるのでしょうか?実は、その裏側では...

ですが、ここで疑問が出てきます。

$$\vec{a}\cdot\vec{b}=|\vec{a}||\vec{b}|\cos\theta$$

なぜ内積は、こんな式になるのでしょうか?

この記事では、

  • なぜ \(\cos\theta\) が出てくるのか?
  • なぜ角度で値が変わるのか?
  • なぜ直角だと \(0\) になるのか?

を、「影(正射影)」のイメージから直感的に解説していきます。

そもそも内積は何を表しているのか?

内積は、単なる「掛け算」ではありません。

実は内積は、「片方のベクトルが、もう片方の方向にどれくらい伸びているか」を表しています。

その“伸び”を表しているのが、「影(正射影)」です。

内積を正射影として捉える図解

図では、ベクトル \(\vec{b}\) の「影」を、ベクトル \(\vec{a}\) の方向に落としています。

つまり内積は、「長さそのもの」ではなく、“相手方向への成分”を見ているのです。

なぜ \(\cos \theta\) が出てくるのか?

まずは、\(0^\circ < \theta < 90^\circ\) の場合を考えてみます。

ベクトル \(\vec{b}\) の「影」を、ベクトル \(\vec{a}\) の方向に落とすと、次のような直角三角形ができます。

なぜ|b|cosθが表せるのか図解

直角三角形では、

$$\cos\theta=\frac{\text{隣辺}}{\text{斜辺}}$$

です。

斜辺は \(|\vec{b}|\) なので、隣辺は

$$
|\vec{b}|\cos\theta
$$

になります。

そのため、\(|\vec{b}|\cos\theta\)は、「\(\vec{b}\) を \(\vec{a}\) の方向に写した長さ」になっています。

つまり内積は、

  • \(\vec{a}\) の長さ
  • \(\vec{b}\) の“ \(\vec{a}\) 方向成分”

を掛け合わせたものだと考えられます。

そのため、

$$\vec{a}\cdot\vec{b}=|\vec{a}|\times(|\vec{b}|\cos\theta)$$

となり、整理すると、

$$\vec{a}\cdot\vec{b}=|\vec{a}||\vec{b}|\cos\theta$$

になります。

\(90^\circ < \theta < 180^\circ\) のとき

では、角度が \(90^\circ\) を超えると、どうなるのでしょうか?

この場合、「影」は反対方向にはみ出します。

つまり、「相手方向へ進む」どころか、逆方向へ成分を持っている状態です。

そのため、

$$
\cos\theta < 0 $$ となり、内積も負になります。 つまり内積は、

  • 鋭角 → 正
  • 直角 → \(0\)
  • 鈍角 → 負

という性質を持つのです。

特別な角度で考えると分かりやすい

たとえば、

  • \(\theta = 0^\circ\)

なら、完全に同じ方向なので、内積は大きな値になります。

逆に、

  • \(\theta = 90^\circ\)

では、影が存在しないため、

$$
\vec{a}\cdot\vec{b}=0
$$

になります。

さらに、

  • \(\theta = 180^\circ\)

では、完全に逆方向になるため、内積は小さな値になります。

だから、内積にはこんな性質がある

内積を「影を測る計算」として考えると、さまざまな性質が自然に理解できます。

垂直なとき、内積は \(0\)

垂直ということは、相手方向への“影”が存在しないということです。

そのため、

$$
\vec{a}\cdot\vec{b}=0
$$

になります。

自分自身との内積は「長さの2乗」

もし、\(\vec{a}\cdot\vec{a}\) を考えると、角度は \(0^\circ\)。

つまり、\(\cos0^\circ = 1\) なので、

$$
\vec{a}\cdot\vec{a}=|\vec{a}|^2
$$

になります。

つまり内積は、ベクトルの「長さ」と深く関係しているのです。

交換法則や分配法則も成り立つ

内積では、

$$
\vec{a}\cdot\vec{b}=\vec{b}\cdot\vec{a}
$$

という交換法則や、

$$
\vec{a}\cdot(\vec{b}+\vec{c})=\vec{a}\cdot\vec{b}+\vec{a}\cdot\vec{c}
$$

という分配法則も成り立ちます。

これは、「相手方向への成分」を取り出して計算するという内積の性質と相性が良いためです。

まとめ

内積は、

  • 単なる掛け算
  • ただの公式

ではありません。

本質的には、「相手方向への成分(影)」を測る計算です。

だから、

  • 角度が小さいほど大きくなる
  • 直角で \(0\) になる
  • 逆向きで負になる

という性質が自然に生まれます。

高校数学で出てくる公式も、「何を測っているのか?」から考えると、かなり違って見えてきます。

ChatGPTが「意味の近さ」を扱える背景にも、こうした内積の考え方があります。

高校数学の公式が、現代のAI技術につながっている。

そう考えると、内積が少し違って見えてきませんか?

▶ 内積についてもっと知りたい

そう感じた人には、ベクトルや内積を基礎から解説してくれる本もおすすめです。

https://amzn.to/4woErg8

コメント

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