タグ
白いカードに、青から紫の回路基板の線で描かれた脳と、中央の吹き出しに書かれたLLMの文字

「失敗の積み重ね」がLLMを生んだ(前編)— 数学の限界から意味の幾何学へ

LLMは無関係な問題の副産物だった。チューリングの計算可能性、シャノンの情報理論、パーセプトロン、バックプロパゲーション、GPU、そして言葉をベクトルに変えるWord2Vecまでを追います。

目次

はじめに

ChatGPTやClaudeのような大規模言語モデル(LLM)は、「LLMを作ろう」という目標から生まれたものではありません。

数学の限界を証明しようとした人、電話回線のノイズを減らそうとした人、機械翻訳の精度バグを直そうとした人。それぞれが全く別の問題を解いた副産物が、80年かけて積み重なってLLMになりました。

この記事では「その意図せぬ接続がどうなっているか」を順番に追います。ML・数学の知識は前提としません。

きっかけはFireshipのYouTube動画でした。LLMの歴史をコンパクトにまとめた内容に刺激を受け、「それぞれの発明が本当はどんな問題を解こうとしていたのか」をもっと深く掘り下げたくなり、この記事を書くことにしました。

前編(この記事) では、コンピュータの概念誕生から情報理論、ニューラルネットワークの訓練、そして言葉を数字に変える技術までを扱います。後編 では、文脈を扱うAttentionの誕生からTransformer、GPT-3のスケール革命、そして現在の整列・効率化の時代までを追います。

1. 「計算する」とはどういうことか? — Alan Turing (1936)

解こうとした問題

1930年代の数学界には、こんな夢がありました。

「数学のあらゆる命題は、アルゴリズムによって『真か偽か』を決定できるはずだ。」

これは 決定問題(Entscheidungsproblem) と呼ばれ、数学の巨人ヒルベルトが提唱しました。要するに「数学を完全に機械化できるか?」という問いです。

イギリスの数学者アラン・チューリングは、これが本当かどうかを証明しようとしました。

チューリングの翻訳:数学の問いをプログラムの問いへ

チューリングの鮮やかな発想は、問いを別の問いに翻訳したことです。

「数学の命題を決定するアルゴリズム」が存在するとしたら、それはこう動くはずです:

証明を探し続ける → 証明が見つかったら停止する → 見つからなければ永遠にループする

つまり「数学を機械化できるか?」という問いは、「プログラムが停止するかループするかを判定できるか?」という問いと同じになります。

だから、もし停止問題が解けないと証明できれば、数学の機械化も不可能だと証明できる。チューリングはそこを狙いました。

「停止問題」:自己言及が生む矛盾

「どんなプログラムでも、実行前に停止するかループするかを判定できる万能プログラム(判定機H)は作れるか?」

答えはNo。そしてそれを確かめる方法は、逆を仮定することです。仮に判定機Hが存在するとします。Hはプログラムとその入力の2つを受け取り、つねに正しく答えます:

H(P, I) → 「停止する」または「ループする」
完全な判定機 H が存在すると仮定する証明が出発点とする仮定を示した図。判定機 H はプログラム P と入力データ I の2つを受け取り、P に I を入力して実行したときに停止するか永遠にループするかを答える。H はどんなプログラムとどんな入力に対しても答え、決して間違えないと仮定されている。完全な判定機 H が存在すると仮定するプログラム P入力データ IP に I を入力して実行すると、停止するか、永遠にループするか?停止する ✓永遠にループする ↻仮定:H はどんなプログラムとどんな入力にも答え、決して間違えない
これ以降のすべては、この「仮に」の中の話。

何が壊れるのか、その構造は「嘘つきのパラドックス」ですでにおなじみです:

「この文は偽である。」 → 真なら偽。偽なら真。どちらも矛盾する。

チューリングは同じ罠をHで組み立てました。Hが存在するなら「逆張りプログラムD」も存在します。DはHをたった4行で包んだだけのものだからです:

D(X):
if H(X, X) == 「停止する」: 永遠にループする
else: 停止する

Dは「プログラムXに X 自身を入力したらどうなるか」をHに尋ね、その逆を実行します。

H が存在するなら D も存在する。H を 4 行で包んだだけ逆張りプログラム D を、判定機 H を薄く包んだだけのものとして示した図。D はプログラム X を受け取り、X に X 自身を入力して実行したらどうなるかを H に尋ね、その答えを反転させる。H が「停止する」と答えれば D は永遠にループし、H が「ループする」と答えれば D は停止する。D は何も賢いことをしておらず、H の判定を読んでその逆を実行するだけである。D は H を 4 行で包んだだけのものなので、H の存在を仮定することは D の存在を仮定することと同じになる。H が存在するなら D も存在する。H を 4 行で包んだだけプログラム D(入力 X)HX に X を入力した結果を H に尋ねるH:「停止する」H:「ループする」反転反転だから D は永遠にループだから D は停止D は何も賢いことをしない。H の判定を読んで、その逆をやるだけ。
Dは賢いプログラムではない。反対することだけが仕事のラッパーである。

ここでDに、D自身を入力として与えて実行します。Dが最初にするのは H(D, D) の計算です。Hはどんな入力にも答えるので、ここでも必ず答えます:

D に D 自身を入力として与えて実行するD に D 自身を入力として与えて実行する。D が最初にするのは H(D, D) の計算であり、H は必ず答える。そこから2つの行が続く。H が「停止する」と答えれば D はループの枝へ進んで永遠にループするので、H の答えは誤りになる。H が「ループする」と答えれば D は停止の枝へ進んで停止するので、やはり H の答えは誤りになる。両方の行が同じ結論に至り、3 行目は存在しないので、H はどちらに答えても誤る。H はどんなプログラムに対しても正しいはずだったが、D では誤る。D に D 自身を入力として与えて実行するD が最初にするのは H(D, D) の計算。H は必ず答えるH が「停止する」と答えるD はループの枝へD は永遠にループするH の答えは誤りH が「ループする」と答えるD は停止の枝へD は停止するH の答えは誤り3 行目はない。H はどちらに答えても誤る。H はどんなプログラムにも正しいはずだった。しかし D では誤る。
罠はHの答えではなく、その答えをDが聞けてしまうことにある。

3行目はありません。 Hの答えは「Dが何をするか」の予測であり、Dはその予測を読んで反対のことをします。偽になるのはDの振る舞いではなく、Hの判定のほうです。

これで証明は終わりです。Hはどんなプログラムに対しても正しいはずでした。しかしDに対しては誤ります。つまりHは正しい判定機ではありません。しかもDは特殊なものではなく、Hが書けるならDも書けます。判定機Hは原理的に存在できない。

つまり「数学を完全に機械化できるか?」という夢は、不可能であることが証明されました。

意図せぬ副産物:「1台で何でもできる」コンピュータの概念

重要なのは証明の結論ではなく、証明のために必要だったものです。

「停止問題を証明する」ためには、まず「計算するとは何か」を厳密に定義しなければなりませんでした。そのために生まれたのがチューリングマシン、テープに書かれた記号を読み書きし、規則に従って状態を変える抽象的な機械のモデルです。

チューリングはさらに、この機械の決定的な性質に気づきました。プログラム自体もデータである。

どういうことか。

チューリングマシンのテープには「入力データ」を書けます。しかし「どう動くかの手順(プログラム)」も同じテープに書けます。つまり手順もデータの一種です。そうなると、「どんなプログラムの記述でも入力として受け取り、それを実行できる万能機械」が作れる。

これを 万能チューリングマシン(Universal Turing Machine) と言います。

この発想が革命的だった理由は、それ以前の世界と比べるとわかります:

万能チューリングマシンが置き換えたもの万能チューリングマシン以前は、計算タスクごとに専用の機械が必要だった。タスク A には専用機械 A、タスク B には専用機械 B、タスク C には専用機械 C というように。万能チューリングマシン以後は、どんなタスクでも同じ 1 台の機械で動き、変わるのは入力として与えるプログラムだけになった。これがノートPCというものである。ブラウザもゲームもLLMの推論も、ハードウェアは変わらず、プログラムというデータだけが変わる。万能チューリングマシンが置き換えたものUTM 以前タスク A専用機械 Aタスク B専用機械 Bタスク C専用機械 CUTM 以後どんなタスクでも同じ 1 台の機械+ 異なるプログラム(入力)これがあなたのノートPC。ブラウザもゲームもLLM推論も、ハードウェアは変わらない。
機械は「問題ごとに作るもの」ではなくなった。

これがあなたのノートPCです。ブラウザもゲームもLLMの推論も、ハードウェアは変わらない。プログラムという「データ」が変わるだけです。

ジョン・フォン・ノイマンはチューリングの論文を読んで、1940年代にこの概念を実際のコンピュータ設計に落とし込みました(ノイマン型アーキテクチャ)。プログラムをデータと同じメモリに格納する。今のコンピュータすべてがこの設計を踏襲しています。

この設計が業界標準になったことで、決定的なことが起きました。この共通アーキテクチャ上で表現できるアルゴリズムは、対応するどのハードウェアでも動く。 誰でもプログラムを書けば、世界中の互換機で実行できる。特定の専用機を持たなくても、アルゴリズムのアイデアさえあれば参加できる。これがソフトウェア産業の土台であり、LLMの訓練コードが世界中のGPUクラスタで走る理由でもあります。

一度書いたアルゴリズムがどこでも動く様子を示す図。プログラムは命令セット・OS・ランタイムライブラリという共通の契約を通り、ノートPCのCPU、ワークステーションのGPU、データセンターのGPUクラスタ、クラウドGPUのいずれでもそのまま動く。所有していない機械でも世界中の開発者が実行できる

ただし1936年の証明はもう一つのことも確定させました。チューリング自身が引いた「計算可能性の限界」は、LLMにも適用される。 ChatGPTもClaudeも、原理的に停止問題を解くことはできない。つまり、任意のプログラムが正しいかどうかを完全に保証することは不可能です。コンピュータを生んだ同じ論文が、そのコンピュータ上で動くあらゆるAIの永続的な天井も定義していました。

数学の限界を証明しようとして、「1台で何でもできるコンピュータ」という概念が生まれた。

余談: チューリングはこの14年後の1950年に「機械は考えられるか?」という問いを立て、人間と機械を区別できるかを試すチューリングテストを提案しました。LLMの能力を評価する会話テストの概念的な先祖です。また、コンピュータ科学の最高栄誉賞は**チューリング賞(ACM Turing Award)**と呼ばれ、「コンピュータ科学のノーベル賞」と言われるほどの権威があります。後述しますが、深層学習の立役者たちもこの賞を受賞しています。

2. 「情報」を数学で測れるか? — Claude Shannon (1948)

解こうとした問題

1940年代、ベル研究所の研究者クロード・シャノンには実務的な悩みがありました。

「ノイズだらけの電話回線で、どれだけ正確に情報を送れるか?」

AIとも機械学習とも無関係な、電話工学の問題です。

なぜ「情報とは何か」を定義する必要があったのか

当時の電話技術者たちはノイズに対して直感的に対処していました。信号を増幅する、ケーブルの品質を上げる、メッセージを繰り返す。しかし、ある根本的な問いに答えることができませんでした。

「このノイズだらけの回線で、理論上どこまで正確に情報を送れるか? 限界はどこか?」

答えられない理由はシンプルです。ノイズが何を壊しているのかを数学的に定義できなかったから。

考えてみてください。ノイズは信号を壊します。では、信号の「何」が壊れると困るのか?

例えば「THE CAT SAT ON THE MAT」というメッセージがノイズで一部化けた場合:

  • 「CAT」の「C」が消える → 意味が壊れる。致命的。
  • 「THE」が「TH_」になる → 読み手が復元できる。問題なし。
  • 2回目の「THE」が消える → 読み手はすでに予測している。情報損失は小さい。

ここに重要な発見があります。メッセージのすべての部分が等しい情報を持っているわけではない。 予測しやすい部分は情報が少なく、予測しにくい部分は情報が多い。ノイズが本当に害を与えるのは、情報量が大きい部分を壊したときです。

つまりノイズと戦うには、まず「何を守るべきか」を知る必要がある。守るべきものを知るには、「情報とは何か」を定義する必要がある。

「情報量」を定義する

シャノンの答え:「情報とは、不確実性の削減である。予測できなかったことが起きたほど、情報量が多い。」

「明日も太陽が東から昇る」。誰でも知っている。情報量はほぼゼロ。 「真夏に東京で雪が降る」。予測外。情報量が大きい。

この直感を数式にしたのが情報エントロピーです。「各出来事の起こりやすさ(確率)をもとに、全体の予測しにくさを計算する」式で、予測が難しいほど大きな値になります。

情報とは不確実性の削減であることを示す図。ほぼ確実な出来事の情報量はごくわずかで、予想外の出来事の情報量は大きい。エントロピーの式がこの直感をビットに変換し、4つの結果を持つ変数を例に、結果が均等になるにつれて0.24ビット、1.57ビット、2.00ビットと増えていく様子を示す

情報量の単位

ちなみに「bit(ビット)」という単語もこの時代に登場しますが、シャノン自身が発明したのではありません。0と1という二進数の概念はライプニッツ(1703年)まで遡り、「bit」という単語は同僚のジョン・チューキーが作ってシャノンが論文で広めました。シャノンの本質的な発明は「0か1か」ではなく、情報を定量化する数学そのものです。

余談: AnthropicのAIアシスタント「Claude」は、クロード・シャノンにちなんで名付けられたと広く言われています。情報理論を生んだシャノンの名を冠するAIというのは、なかなか示唆的な選択です。

シャノンの答えが解き放った工学

情報を定義したことで、すべてが定量化できるようになりました:

  1. メッセージを測れる:何ビットの情報を含んでいるか計算できる
  2. チャネルを測れる:回線が毎秒何ビット確実に運べるか(チャネル容量)を計算できる
  3. 冗長性を設計できる:エラー訂正のために何ビット追加すべきか計算できる

そして最も重要な結果が雑音通信路符号化定理です。情報レートがチャネル容量を下回る限り、どれだけノイズが多くても、適切な符号化をすれば事実上エラーなしで通信できる。

シャノン以前、技術者はノイズが多い回線では通信の質が落ちるのは避けられないと考えていました。シャノンはそうではないことを証明した。ノイズは限界を定めるが、その限界以下であれば完全な信頼性は達成可能です。正しい符号化さえあれば。

圧縮への接続:情報が少ない部分は捨てられる

シャノンの情報量の定義は、もう一つの革命を生みました。データ圧縮です。

情報源符号化定理によれば、メッセージを圧縮できる理論的な最小サイズは、そのエントロピー(情報量)に等しい。つまり:

  • 「AAAAAAAAAA」:完全に予測可能、エントロピーほぼゼロ → ほぼゼロまで圧縮できる
  • ランダムノイズ:完全に予測不能、エントロピー最大 → 圧縮不可能
  • 自然言語:中間、パターンが多い → 大幅に圧縮可能

JPEG、MP3、ZIPファイルはすべてこの原理です。予測しやすい(情報量が低い)部分を取り除き、予測しにくい(情報量が高い)部分を保持する。展開時には、文脈から予測可能な部分を復元する。

LLMのトークナイザー(BPE、Byte Pair Encoding)もこの意味で圧縮です。頻出するシーケンス(“the”、“ing”、“tion”)は1つのトークンになり、稀なシーケンスは文字単位のまま残る。トークナイザーは文字通り、自然言語に対するシャノン最適符号化器です。

BPEトークナイザーをシャノン最適な圧縮として示す図。「the」「ing」「tion」のような頻出シーケンスは1トークンにまとまり、約4〜6ビットの短い符号になる。一方、稀なシーケンスは文字単位のまま残り、20ビット以上かかる。最適な符号化器は各シンボルに確率の負の対数(−log2 p)だけの符号長を与えるためである

LLMへの接続:訓練から推論まで

訓練:クロスエントロピー損失

LLMを訓練するときの核心的な問いは「モデルは次の単語をどれだけ正確に予測できているか?」です。

この「予測の正確さ」を測る指標として使われるのがクロスエントロピー損失で、シャノンのエントロピーから直接導かれます。

損失 = -(正解の確率 × log(モデルの予測確率) の合計)

LLMが学習するとき、モデルはひたすらこの数値を小さくしようとします。言い換えれば、次のトークンに対する「驚き」を減らすことが訓練の全目的です。シャノンが定義した「情報 = 不確実性の削減」がそのまま学習目標になっている。

推論:Temperatureはエントロピーのノブ

シャノンの「驚き」の概念は、LLMの出力制御にも直結します。Temperatureパラメータは、出力分布のエントロピーを直接操作するノブです。

P(トークン) = softmax(logit / temperature)
Temperature 分布への効果 シャノンエントロピー
→ 0 最高確率のトークンに集中 エントロピー → 0(驚きゼロ)
= 1 モデル本来の分布 自然なエントロピー
> 1 分布が平坦化、全トークンがより均等 エントロピー上昇(驚き増加)

Temperature低い = 最も予測可能(情報量が少ない)トークンを常に選ぶ。Temperature高い = より高エントロピーな分布からサンプリング = 創造的だが一貫性が下がる可能性。

「もっと創造的に書いて」とTemperatureを上げるとき、あなたは文字通り出力のシャノンエントロピーを上げている。

全体の接続

1つの定義が、推論まで貫かれる1つの定義が5つの段階を貫いていく様子を示した図。シャノンは 1948 年に、情報を「驚き」として定義し、エントロピーで測った。圧縮はエントロピーの低い予測可能な部分を取り除き、高い部分を残す。トークナイザーも同じ原理で、BPE が言語を最適に符号化する。訓練損失はクロスエントロピーであり、正解トークンに対するモデルの驚きを測っている。そして Temperature は推論時に出力分布のエントロピーを制御する。どの段階も、同じ考えを違う場所に当てはめたものである。1つの定義が、推論まで貫かれるシャノン (1948)情報 = 驚き = エントロピー と定義する圧縮エントロピーの低い(予測可能な)部分を除き、高い部分を残すトークナイザーBPE が同じ原理で言語を最適に符号化する訓練損失クロスエントロピー = 正解トークンに対するモデルの「驚き」Temperature推論時に出力分布のエントロピーを制御する
4回導き直したわけではない。1つの定義が、今も効いている。

一つの数学的フレームワークが、LLMの構築と運用のすべての層に適用されています。電話回線のノイズを減らしたかったシャノンの数学が、80年後にLLMの「賢さの定義」にも「創造性の調整ノブ」にもなっている。

3. 機械は学べるか? — 楽観、挫折、復活

楽観の時代:パーセプトロン (1958)

「機械が学習できる」という最初のデモが、フランク・ローゼンブラットによるパーセプトロンでした。

仕組みはシンプルです。最もシンプルなニューラルネットワークは、「ニューロン」1つだけの回路です。

パーセプトロン:最もシンプルなニューラルネットワークパーセプトロンを回路として描いた図。x1、x2、x3 という3つの入力が、それぞれ w1、w2、w3 という重みを持つ接続を通る。重み付けされた入力はバイアスとともに合計され、その合計が閾値と比較されて、0 か 1 という1つの二値出力になる。学習が変えるのは重みだけであり、回路の他の部分は動かない。パーセプトロン:最もシンプルなニューラルネットワーク入力重み合計出力x1w1x2w2x3w3Σ(xi·wi) + バイアス閾値判定0 か 1学習が変えるのは重みだけ。回路の他の部分は動かない。
ニューロン1個。調整できるのは、線に乗っている重みだけ。
  1. 複数の入力(数値)を受け取る
  2. それぞれに「重み」をかけて足し合わせる
  3. 合計がある閾値を超えたら「Yes(1)」、超えなければ「No(0)」を出力する

具体例で見てみましょう。「このメールはスパムか?」を判定するパーセプトロン:

入力:
x1 = 「無料当選」を含む?(1 or 0)
x2 = 知っている連絡先から?(1 or 0)
x3 = 添付ファイルあり?(1 or 0)
学習された重み:
w1 = +0.9(強いスパムシグナル)
w2 = -0.8(強い非スパムシグナル)
w3 = +0.3(弱いスパムシグナル)
スコア = (1)(0.9) + (0)(-0.8) + (1)(0.3) = 1.2
閾値 = 0.5
1.2 > 0.5 → 「スパム」

「学習」とは、この重みの調整です。最初はランダムな重みで始め、答え合わせをしながら少しずつ重みを修正していく。何千回も繰り返すと、重みが適切な値に収束します。

パーセプトロン以前、すべてのプログラムは人間が手書きしたルールで動いていました。パーセプトロンは機械がデータから自分でルールを見つけるという革命的な概念のデモでした。

ニューヨーク・タイムズはこう報じました。「海軍が、歩いて話して見て書いて自己複製できる機械の胚種を発表した」。楽観的な空気が漂っていました。

挫折:第一次AIの冬 (1969)

マービン・ミンスキーとシーモア・ペパートが、冷水を浴びせました。

パーセプトロンには数学的な限界がある。

ここで一つの疑問が浮かぶかもしれません。「チューリングが1936年に証明したように、万能チューリングマシンはどんな計算でも実行できるはずだ。なぜXORごときが問題になるのか?」

答えは、チューリングの万能性とパーセプトロンの学習は全く別の能力だからです。

  • チューリングの万能性: 正しいプログラムを人間が書けば、どんな計算でもできる。XOR? if文1行で書ける。
  • パーセプトロンの約束: 機械がデータから自分でルールを発見する。人間はルールを書かない。

XORが破壊したのは「計算能力」ではなく、「学習メカニズム」そのものです。

具体的に見ましょう。XOR(排他的論理和)は「2つの入力が両方1か両方0なら0、片方だけ1なら1」という単純なルールです。2次元平面にプロットすると:

XOR(排他的論理和)は 1 本の直線では分離できない真理値表と 2 次元プロットを並べた図。表は XOR を示し、0 と 0 なら 0、0 と 1 なら 1、1 と 0 なら 1、1 と 1 なら 0 になる。プロット上では出力 1 の 2 点が対角に位置し、出力 0 の 2 点も対角に位置するため、正方形をどう直線で切っても必ず 1 点が反対側に残る。これが単層パーセプトロンの限界である。XOR(排他的論理和)は 1 本の直線では分離できない真理値表2 次元プロットx1x2出力000011101110x1x20101NoYesYesNoどう直線を引いても Yes と No を分離できない。これがパーセプトロンの限界。
どう直線を引いても Yes と No は分かれません。これが単層パーセプトロンの限界でした。

パーセプトロンは1本の直線でYesとNoを分離しようとします。しかし上の図を見れば、●と○を1本の直線で分けることは不可能です。どう線を引いても、必ず混ざります。

これだけなら「じゃあXORは特殊ケースだ」で済むかもしれません。しかしミンスキーとペパートが証明したのは、XORだけの話ではありませんでした。二人が示したのは、非線形な判定境界を必要とする問題のクラス全体がパーセプトロンには不可能だということでした。パリティ判定(偶数・奇数の判別)、対称性の検出、連結性の判定などです。XORは最もシンプルで、最も恥ずかしい反例にすぎません。

そしてこれが壊滅的だった理由は、期待と現実のギャップです。メディアは「歩いて話す機械」と報じた。数学者がその機械はXORすら学べないと証明した。資金を出す側の結論は「ニューラルネットワーク=行き止まり」。これが第一次AIの冬のきっかけです。研究資金が凍結され、多くのニューラルネットワーク研究者が職を失いました。

ただし彼らの著書には、一行の注記がありました。

「多層のネットワークならこの問題を解けるかもしれない。ただし、どう訓練するかは不明だ。」

この「ただし」が、次の17年間の研究課題を定義しました。

復活:バックプロパゲーション (1986)

「ただし」を解いたのがルメルハート、ヒントン、ウィリアムズによる バックプロパゲーション(誤差逆伝播法) です。

多層ネットワークとは、パーセプトロンを複数つなげたものです。各パーセプトロンがそれぞれ独自の重みを持ち、層ごとにグループ化されています。

多層ニューラルネットワークの構造3 層のノードからなる図。左に入力ノードが 3 つ、中央に隠れノードが 2 つ、右に出力ノードが 2 つあり、各層は次の層と全結合している。入力層と出力層は外から見えるが、中央の層は見えないため「隠れ層」と呼ばれる。各接続は独自の重みを持ち、訓練によってその重みが調整される。多層ニューラルネットワークの構造入力層(Layer 1)隠れ層(Layer 2)出力層(Layer 3)w1w2w5w6ABCDEFG見える見えない(hidden)見える各接続が独自の重み (w) を持つ。訓練で重みが調整され、パターンが学習される。
中間の層が「隠れ層」と呼ばれるのは、外から見えないからです。

この図で真ん中のLayer 2は隠れ層(hidden layer)と呼ばれます。「隠れ」と言っても、何かを隠しているわけではありません。入力層はユーザーがデータを渡す場所、出力層はユーザーが結果を受け取る場所。どちらもユーザーから「見える」。一方、真ん中の層はユーザーが直接触ることのない内部の作業スペースです。外から見えないから「隠れ(hidden)」。

なぜ「ディープ」ラーニングなのか?

層が増えるとき、増えるのはこの隠れ層です。入力層と出力層は常に1つずつ。その間に隠れ層を何層積むかが「ネットワークの深さ」であり、これが「ディープ(深層)ラーニング」の「ディープ」の意味です。この「隠れ」という概念は第5章で再登場するので、覚えておいてください。

学習の流れは直感的です:

  1. すべての重みをランダムな値で初期化する(ランダムでないと全ニューロンが同じことを学んでしまう)
  2. データを入力し、全層を通して予測を出す(「この画像は猫だ」)
  3. 答え合わせをして、どれだけ間違えたかを計算する
  4. 「どの重みがこの間違いに貢献したか」を出力から入力方向へ逆向きに追跡する
  5. 貢献度に応じて各重みをほんの少し修正する(重みは上書きされる。スナップショットは残らない)
  6. これを何百万回も繰り返す

「どの重みがどれだけ間違いに貢献したか」を、どうやって計算するのか?

答えの正解を知っているのは最終出力だけです。途中の層が「正しく何を出すべきか」は誰にもわかりません。「猫の画像に対するLayer 1の正しいエッジ検出結果」なんて、正解がない。

だから、誤差信号を出力から逆向きに伝えます。数学の 連鎖律(チェーンルール) を使って、「AがBに影響し、BがCに影響するなら、AがCに与える影響は二つの効果の掛け算で求まる」という原理で、各層の責任を順番に計算していきます。

バックプロパゲーション:1つの誤差を、各層の責任に分けるバックプロパゲーションを、同じ3層に対する2つのパスとして示した図。順方向パスでは、左から右へ入力が Layer 1、Layer 2、Layer 3 を通って出力に至り、正解と比較されて誤りだと分かる。この比較だけが唯一の採点ポイントである。中間層が何を出力すべきだったかは誰も知らないからである。逆方向パスでは、右から左へ誤差が各層の責任に分けられる。Layer 3 の責任は 40%、Layer 2 は 35%、Layer 1 は 25% であり、1つの誤差を3つに分けた責任の合計は 100% になる。各層はこの割合の分だけ重みを調整する。この分割は連鎖律で計算される。AがBに影響し、BがCに影響するなら、AがCに与える影響は二つの効果の掛け算になる。バックプロパゲーション:1つの誤差を、各層の責任に分ける順方向パス(左 → 右)入力Layer 1Layer 2Layer 3出力と正解の比較↑ 唯一の採点ポイント。中間層が何を出力すべきだったかは誰も知らない逆方向パス(右 → 左)「間違い!」1つの誤差を3つに分けた責任:40 + 35 + 25 = 100%連鎖律:AがBに影響し、BがCに影響するなら、AがCに与える影響は二つの掛け算
Layer 2が何を出力すべきだったかは誰も知らない。だから正解を持つ唯一の場所から、逆向きに伝えるしかない。

誤差が逆方向に伝播する。だからバックプロパゲーション(誤差逆伝播法)

多層ネットワークをこの方法で訓練できることが示され、ミンスキーたちが「不明だ」と言った問題が解決しました。

なぜ多層にすると解けるのか? 核心は線形か非線形かの違いです。パーセプトロン(単層)は直線1本しか引けない。これが線形の限界です。多層ネットワークでは、各層がそれぞれ直線を引き、それらを組み合わせることで曲線や複雑な形の判定境界を作れます。これが非線形です。

層が増えるほど、判定境界は複雑になる同じ点の集合を3つのプロットで示した図。一方のクラスが中央に固まり、もう一方がそれを取り囲んでいる。1つめでは、1層のネットワークは直線を1本しか引けないため、その線は中央を突っ切り、両方のクラスの点が反対側に取り残される。2つめでは、数層が複数の直線を組み合わせて中央のかたまりを囲む三角形を作る。かなり近づくが、角はまだ粗い。3つめでは、より深いネットワークが十分な数の直線を組み合わせ、境界はかたまりの形にぴったり沿った滑らかな閉曲線になる。個々の層が曲線を引くことは一度もない。十分な数の直線による切り分けを遠くから見ると、曲線に見えるというだけである。層が増えるほど、判定境界は複雑になる1層:1本の直線反対側に取り残される点がある数層:直線を組み合わせる近づくが、角がまだ粗いさらに深く:多数の直線形に沿った境界になるどの層も曲線は引かない。十分な数の直線を遠くから見ると、曲線に見えるだけ。
3つとも同じ点。変わるのは、使える直線の本数だけ。

層が増えるほど、より複雑な判定境界を描ける。これがディープラーニング(深層学習)の根幹です。

しかし理論と実用の間には大きな壁がありました。多層ネットワークの訓練には膨大な計算量が必要で、1980〜90年代のハードウェアでは実用的な速度で訓練を回すことができなかったのです。

速度の壁を破る:GPUの登場 (2012)

バックプロパゲーションが確立されても、多層ネットワークはしばらく実用から遠い存在でした。データが足りない。計算が遅い。

2012年、ImageNet(100万枚超の画像を1000カテゴリに分類するコンテスト)でその状況が一変しました。AlexNetというモデルが圧倒的な成績を叩き出したのです。2位の誤差率26.2%に対し、AlexNetは15.3%。差にして約11ポイント。機械学習の世界では前年比で1〜2ポイントの改善が普通で、11ポイントは「他を圧倒した」と表現してもなお控えめな数字でした。コンピュータビジョン研究者の多くが翌年から一斉に深層学習へ転向し、業界の常識が書き換わりました。

AlexNetが使ったのは**GPU(グラフィックスチップ)**です。なぜGPUがこれほど効果的だったのか? それまでの訓練はCPUで行われていましたが、CPUとGPUでは設計思想が根本的に異なります。

CPUは少数の高性能コア(4〜16個)を持ち、複雑なタスクを逐次的にこなす設計です。一方、GPUは数千の単純なコア(4000個以上)を持ち、シンプルな計算を大量に同時実行する設計です。

ニューラルネットワークの訓練は、その大部分が行列の掛け算で、何千もの重みと何千もの入力を掛け合わせて足すという単純な計算の繰り返しです。そして各掛け算は互いに独立しており、w3×x3の結果はw1×x1の結果を待つ必要がありません。

ImageNet 2012:同じ計算を、全部同時にImageNet 2012 では、2位の誤差率が 26.2%、AlexNet が 15.3% で、約11ポイントの差がついた。年に1〜2ポイントの改善が普通の分野での差である。どちらも同じ2012年の大会の数字である。その理由は CPU と GPU の違いにある。CPU は少数の高速コアで逐次処理する。4人の数学者が難問を順番に解くようなもので、w1×x1 を計算して完了し、次に w2×x2 を計算し、と w1000×x1000 まで進むので合計1000ステップかかる。GPU は数千の単純なコアで並列処理する。4,000人の小学生が足し算を一斉に解くようなもので、1000個の掛け算を1ステップで終える。これが成り立つのは各掛け算が独立しているからで、w3×x3 は w1×x1 の結果を待つ必要がない。CPUで数週間から数ヶ月かかる訓練が、GPUでは数日で終わった。ImageNet 2012:同じ計算を、全部同時にImageNet 2012 の誤差率2位:26.2%AlexNet:15.3%約11ポイント差。年1〜2ポイントが普通の世界でCPU — 少数の高速コアで逐次処理4人の数学者が難問を順番に解くw1×x1 → 完了 → w2×x2 → 完了 → … → w1000×x1000合計:1000ステップGPU — 数千の単純コアで並列処理4,000人の小学生が足し算を一斉に解くw1×x1, w2×x2, w3×x3, … w1000×x1000合計:1ステップ各掛け算は独立。w3×x3 は w1×x1 を待たない。CPUで数週間〜数ヶ月が、GPUでは数日に。
数学は何も変わっていない。変わったのは、同時に何個進められるかだけ。

AlexNetの訓練はCPUでは数週間〜数ヶ月かかるところ、GPUでは数日で完了しました。同じ数学、同じ結果。ただ大規模に並列化しただけです。GPUによって訓練速度の壁が破られ、「GPU + 大量データ + 多層ネットワーク」の組み合わせが実用レベルで機能することが証明されました。

ただし、AlexNetは8層のネットワークでした。「もっと深く(層を増やせば)もっと賢くなる」はずですが、層を深くしようとすると別の壁が立ちはだかります。

余談: AlexNetの著者の一人、ジェフリー・ヒントンは、1986年のバックプロパゲーション論文にも名前があります。AIの冬を越えて、同じ人物が26年後に深層学習の復活を主導した。ヒントンは2018年にヤン・ルカン、ヨシュア・ベンジオとともにチューリング賞を受賞し、3人まとめて「ディープラーニングの父たち」と呼ばれています。

余談: GPUを作っていたNVIDIAは、元々ゲーム用グラフィックスの会社でした。ゲームの3D描画も「大量のピクセルに対して同じ計算を並列実行する」という処理であり、これがニューラルネットワークの行列演算と構造的に同じだったのです。AIブームによりNVIDIAは世界で最も価値のある企業の一つになりました。ゲーム用チップがAI訓練の最適ツールになるというのも、この記事で追ってきた「意図せぬ接続」のひとつです。

さらに深く:勾配消失の克服 (2010s)

GPUが速度の問題を解決しても、ネットワークを深くすること自体に別の壁がありました。勾配消失問題です。

バックプロパゲーションで見たように、唯一の採点ポイントは最終出力にしかありません。誤差信号は逆方向に層を遡るしかない。そして各層を通過するたびに、信号は掛け算で縮小されます。各掛け算の係数は典型的に1未満(例:0.3)なので、小さな数を繰り返し掛けると急速にゼロに近づきます。

3層: 0.3 × 0.3 × 0.3 = 0.027 ← 小さいが使える
10層: 0.3^10 ≈ 0.000006 ← ほぼゼロ
50層: 0.3^50 ≈ 0.00000000000000000000000... ← 事実上ゼロ

最終層に近いほどフィードバックが強く、最初の層ほどフィードバックが消えていく:

なぜ最初の層は学習を止めるのか勾配消失問題を示す図。誤差信号は、正解を知る唯一の場所である出力から入り、逆向きに進む途中で層を1つ越えるたびに約 0.3 倍される。そのため各層が実際に聞き取る内容は大きく異なる。出力に近い Layer 50 は「30% 間違っている」と聞き取り、そこから学習できる。Layer 25 は「0.000001% 間違っている」としか聞こえず、ほとんど学習できない。Layer 1 に至ってはゼロと区別できない数値しか届かず、まったく動けない。Layer 1 は基本的な特徴を学ぶべき層であり、基礎が壊れたまま手が届かない状態なので、その上に何を積み上げても意味をなさない。なぜ最初の層は学習を止めるのか誤差は出力から入り、層を1つ越えるたびに ×0.3 されるLayer 1Layer 25Layer 50出力誤差!×0.3×0.3各層が実際に聞き取る内容Layer 50「30% 間違っている、調整せよ」学習できるLayer 25「0.000001% 間違っている」ほとんど学習できないLayer 1「0.0000000000% 間違っている」動けないLayer 1 は基本的な特徴を学ぶ層。基礎が壊れたまま届かないので、その上に何を積んでも意味がない。
同じ誤差、同じ指示。違うのは、各層に届くころに何が残っているか。

これは建物の基礎が壊れているのに直せないようなものです。Layer 1は基本的な特徴(エッジ、単純なパターン)を学ぶべき層ですが、フィードバックが届かないので学習できない。基礎がデタラメなままでは、その上に何を積み上げても意味がありません。

この壁は、複数の技法の組み合わせで段階的に克服されました。

なぜ信号は「0.3倍」に縮んでいたのか:Sigmoid活性化関数

先ほど各層の掛け算の係数が「0.3」のように1未満だと説明しました。この係数はどこから来るのでしょうか? 答えは活性化関数、各ニューロンが出力をどう変換するかの関数です。

長年使われていたのがSigmoidです。Sigmoidは生物のニューロンを模倣して設計されました。実際のニューロンは単純なオン・オフではなく、刺激の強さに応じてなめらかに活性化します。Sigmoidはこれを再現する滑らかなS字カーブで、どんな入力も0〜1の範囲に変換します。

しかしバックプロパゲーションでは、各層の「責任の係数」はこの活性化関数の 傾き(勾配) で決まります。Sigmoidの傾きは最大でも約0.25、通常はそれ以下です。

縮む係数はどこから来たのか:Sigmoid の傾きSigmoid 活性化関数を S 字カーブとして描いた図。どんな入力も 0 から 1 の範囲に押し潰す。このカーブの傾きが、バックプロパゲーション時の各層の係数になる。入力が極端に大きい、あるいは極端に小さい領域ではカーブはほぼ平坦で、傾きは 0 に近い。最も急な、入力が 0 付近の場所でも傾きは約 0.25 にしかならない。つまり最良のケースでも信号は 4 分の 1 になり、層を通るたびにその掛け算が繰り返される。縮む係数はどこから来たのか:Sigmoid の傾き−10+101.00.0入力が 0 付近、最良のケース → 傾き ≈ 0.25どんな入力も 0〜1 の範囲に押し潰す入力が極端に大きい → 傾き ≈ 0.0入力が極端に小さい → 傾き ≈ 0.0最良でも 4 分の 1。層を通るたびに、これが掛かる。
カーブで最も急な点でも 4 分の 1。それ以上の場所はどこにもない。

生物学的な妥当性と数学的な美しさ、つまりSigmoidが「賢い」と思われた理由そのものが、勾配を殺す原因でした。長所がそのまま欠点だった。

ReLU:「愚直」が勝った理由

ReLU(Rectified Linear Unit) は驚くほど単純です。「正なら素通し、負ならゼロ」。それだけ。 数学者は当初これを軽視しました。粗雑すぎる。微分不可能な点がある。ニューロンとは似ても似つかない。

しかしReLUの正の値に対する傾きはちょうど1.0です。0.25ではなく、0.1でもなく、1。

Sigmoid と ReLU:同じ10層を通すとSigmoid と ReLU という2つの活性化関数が、10層を通る信号に何をするかを比較した図。Sigmoid の傾きは最大でも約 0.25 なので、信号は10層それぞれで 0.25 倍される。0.25 の10乗は約 0.000001 となり、信号は死ぬ。ReLU の正の入力に対する傾きはちょうど 1.0 なので、信号は10層それぞれで 1.0 倍される。1.0 の10乗は 1.0 であり、信号はそのまま生き残る。ReLU は信号を増幅しているわけではなく、殺すのをやめただけである。1980年代のように2〜3層しかなければこの差は表面化せず、層が深くなって初めて致命的になる。Sigmoid と ReLU:同じ10層を通すとSigmoid — 傾きは最大でも 0.25×0.250.25¹⁰ ≈ 0.000001信号が死ぬReLU — 正の入力に対する傾きはちょうど 1.0×1.01.0¹⁰ = 1.0信号が生き残るReLU は信号を増幅しない。殺すのをやめただけ。1980年代のように2〜3層なら差は表面化しない。深くなって初めて致命的になる。
どちらも同じ10回。最後まで信号が残っているのは一方だけ。

ReLUは信号を「増幅」するわけではありません。殺すのをやめただけです。Sigmoidは各層で信号を積極的に圧縮していた。ReLUはそのまま通す。

1980年代にはネットワークが2〜3層しかなく、Sigmoidの問題は表面化しませんでした。層が深くなって初めて、「賢い設計」の隠れたコストが致命的になったのです。スケールにおいては、信号を保存する愚直さが、信号を壊す美しさに勝つ。

ただしSigmoidは「間違い」だったわけではありません。正しかったが、スケールに耐えられなかったのです。自転車の補助輪のようなもので、初心者には正しい設計だが、レーサーには邪魔になる。実際、今でもSigmoidは特定の用途で使われています。出力層でのYes/No分類(0〜1の確率が必要な場面)や、記憶セル内のゲート制御です。ただし深いネットワークの隠れ層では、もはやReLUが標準です。

残差接続(ResNet, 2015):もう一つの解決策

ReLUが各層の信号減衰を抑えたのに対し、**残差接続(ResNet)**は全く別のアプローチで勾配消失に挑みました。

通常のネットワークでは、各層が「入力を受け取り、完全な出力を生成する」ことを求められます。残差接続では、入力がショートカット経路を通って出力にそのまま加算されます。

これが何を変えるのか? 層の仕事が根本的に変わります。層の役割が「完全な出力を生成する」から「入力に対する小さな補正(残差)を学ぶ」に変わります。だから 残差(Residual)接続 と呼ばれるのです。

身近な例で考えると、体重計に乗っても軽すぎて測れない犬の体重を量りたいときは、犬を抱っこして一緒に体重計に乗り、自分の体重を引けば犬の体重がわかります。自分の体重(入力)という既知のベースラインがあるからこそ、小さな差分(犬=残差)が正確に測れる。残差接続も同じで、入力というベースラインを保持することで、層が学ぶべき小さな補正が検出可能になります。

そして勾配にとっても決定的な違いがあります。バックプロパゲーションでは、勾配は両方の経路を通って流れます:

残差接続:層は差分だけを学ぶ残差接続を2つの部分に分けて示した図。1つめは、層に求められることである。通常の経路では、入力 5 に対して期待される出力が 5.3 なら、層は 5.3 全体を出力できるように学ばなければならない。残差接続があると、入力はショートカットを通って層の出力に加算されるので、層が学ぶべきなのは小さな補正である 0.3 だけになり、0.3 + 5 で 5.3 になる。2つめは、逆向きに流れる勾配が見つけるものである。勾配は両方の経路を流れる。層の経路では ×0.001 かそれ以下まで縮むかもしれないが、ショートカット経路では ×1.0 のまま届く。合計は約 1.001 となり、ゼロにはならない。有用な補正が見つからない層は 0 を出力し、入力はそのまま通り抜ける。層を深くしても精度が落ちなくなったのはこのためである。残差接続:層は差分だけを学ぶ層に求められること通常の経路入力 = 5期待される出力 = 5.3[ Layer ]学ぶべきこと:「5.3 を出力せよ」全体を学ぶ残差接続あり入力 = 5期待される出力 = 5.3[ Layer ]+ショートカット:入力がそのまま加算される学ぶべきこと:「0.3 を出力せよ」小さな補正だけ。0.3 + 5 = 5.3逆向きに流れる勾配が見つけるもの層の経路 — ×0.001 かそれ以下まで縮むかもしれないショートカット経路 — ×1.0 のまま届く合計 ≈ 1.001。ゼロにはならない有用な補正がない層は 0 を出力し、入力がそのまま通る。深くしても精度が落ちなくなったのはこのため。
入力をベースラインとして残すことで「5.3を出力せよ」が「0.3を出力せよ」に変わり、勾配には細らない道ができる。

層の経路で勾配が0.001に縮んでも、ショートカット経路が1.0を加算します。合計は約1.001。ショートカットが保険として機能し、信号が死なない。 そして層の経路にも勾配は流れるので、層自体も学習できます。フィードバックが消えないからです。

もし層が何も有用な補正を見つけられなければ? 0を出力すればよい。出力 = 0 + 入力 = 入力がそのまま通る。層が「何もしない」という選択肢を持てるため、深い層を追加しても性能が悪化しない。

ResNetはこの仕組みで152層のネットワークを訓練して成功を収め、ImageNet 2015で優勝しました。

ReLUとResNet:異なるアプローチ、同じ目標

ReLUとResNetは勾配消失という同じ問題に対する異なる角度からの解決策です。ReLUは各層内部の勾配減衰を防ぎ(係数を1.0に保つ)、ResNetは層をまたぐ勾配の迂回路を確保する。現代のディープラーニングでは両方を組み合わせることで、100層以上のネットワークが実用的になりました。

GPUが速度の壁を壊し、ReLU・ResNetが深さの壁を壊した。速度と深さ、両方の壁が倒れたことで、現代のディープラーニングが可能になりました。

勾配消失問題と、その2つの対処を並べた図。ReLUは各層の内部で勾配を1.0に保ち、ResNetのスキップ接続は層をまたいで勾配を運ぶ。GPUが速度の壁を取り除いたうえで、この2つが100層を超えるネットワークを実用にする

4. 言葉を数字にするとは? — 意味の幾何学

コンピュータは数字しか扱えない

ここまでの話は「いかに正確に学習させるか」でした。そしてここまでの成功例はすべて、最初から数字だったデータを扱っていました。画像はピクセルの数値(各ピクセルが0〜255の色情報)。音声は波形の数値。株価、気温、センサーデータも、すべて最初から数字です。ニューラルネットワークにそのまま入力できます。

しかし言葉は数字ではありません。 「猫」「経済」「美しい」。これらは記号であり、そのままではニューラルネットワークの行列計算に入力できません。LLMを作るためには、「言葉をどう数字に変換するか?」という根本的な問題をまず解く必要がありました。

最もシンプルな方法:「猫=1、犬=2、空=3…」と番号を割り振る。しかしこれでは「猫」と「犬」の間に意味的な関係がありません。「猫と犬は似ている」「猫と宇宙船は遠い」という情報が数字に入っていない。

Word2Vec:意味を空間の座標に (2013)

Googleのミコロフらが示したアイデア:単語を高次元空間の「座標(ベクトル)」として表す。

「高次元」とはどういうことか。私たちが日常で使う地図は2次元(東西・南北)、建物の中なら3次元(+上下)です。Word2Vecでは1つの単語を300次元の座標で表します。人間には300次元の空間を想像することはできませんが、数学的には2次元や3次元と同じように距離や方向を計算できます。

なぜ300次元も必要なのか? 言語の意味は多面的だからです。「猫」という単語は「動物か?」「ペットか?」「大きさは?」「危険か?」「可愛いか?」など無数の軸で特徴づけられます。2〜3次元ではこの豊かな意味の違いを表現しきれません。300次元あれば、各次元がそれぞれ異なる意味の側面を捉えることができます。

訓練の方法はシンプルです。「似たような文脈に登場する単語には、近い座標を与える」ように学習させる。「猫」と「犬」はどちらも「ペット」「餌」「散歩」といった文脈で使われるので、座標が近くなる。

結果として生まれた「意味の地図」には驚くべき性質がありました:

「王様」の座標 − 「男性」の座標 + 「女性」の座標 ≈ 「女王」の座標

意味の演算ができる。言語が数学になりました。

1つの単語が多数の意味の軸で同時に表される様子を示す図。「猫」が動物・ペット・野生・危険・かわいさ・柔らかさ・夜行性・室内といった軸で数値化され、同じ考えが2次元から3次元、300次元へと広がる。さらに「王様 − 男性 + 女性 ≈ 女王」というベクトル演算がその空間に描かれる

余談: 「意味は関係性の中にある」という発想には先行者がいます。1998年、スタンフォードの大学院生ラリー・ペイジとセルゲイ・ブリンは論文 “The Anatomy of a Large-Scale Hypertextual Web Search Engine”PageRankを提案しました。当時の検索エンジンはページ内のキーワード出現頻度で順位を決めていましたが、PageRankは他のページからどれだけリンクされているか、つまりWebの構造的な関係性で重要度を測りました。「コンテンツそのものより、周囲との関係が本質を表す」という考え方は、Word2Vecの「単語の意味は周囲の文脈(共起する単語)で決まる」と驚くほど似ています。そしてこのPageRankから生まれたGoogleが、後にGoogle Brainを設立し、2017年の “Attention Is All You Need”(Transformer)論文を生み出すことになります。検索エンジンの会社がLLMの中核アーキテクチャを発明した。これもまた「意図せぬ接続」のひとつです。

「近い」をどう測るか? — コサイン類似度

「猫と犬は近い」「猫と宇宙船は遠い」と言いましたが、300次元空間で「近い」とはどういう意味でしょうか?

直感的には、2点間の距離(ユークリッド距離)を使いたくなります。しかし高次元空間では、距離よりも方向のほうが意味の類似性をうまく捉えます。

理由を具体例で見ましょう。「猫」に関する長い文書と短い文書があるとします。

「近い」とは距離ではなく方向のこと高次元空間での「近さ」を、距離ではなく方向で測る理由を示した図。「猫」が 5 回出てくる短い文書と 50 回出てくる長い文書では、ベクトルの大きさが大きく異なる。そのためユークリッド距離で測ると、どちらも猫についての文書であるにもかかわらず遠いと判定されてしまう。しかし向いている方向は同じである。コサイン類似度は代わりに角度を測る。1.0 は完全に同じ方向で同じ意味、0.0 は直角で無関係、−1.0 は正反対で反対の意味を表す。イメージとしては、「犬」は「猫」とほぼ同じ方向を向くので約 0.9、「宇宙船」は全く違う方向なので約 0.1 になる。「近い」とは距離ではなく方向のことユークリッド距離の問題短い文書:「猫」が 5 回出現長い文書:「猫」が 50 回出現ユークリッド距離:遠い方向:同じどちらも猫についての文書。距離で測ると無関係と判定される。コサイン類似度は、代わりに角度を測る1.0完全に同じ方向 — 同じ意味0.0直角 — 無関係−1.0正反対 — 反対の意味具体例(イメージ)「犬」≈ 0.9「猫」とほぼ同じ方向「宇宙船」≈ 0.1全然違う方向
どちらも猫についての文書で、片方が10倍長いだけ。距離はそれを意味の違いとして扱う。

どちらも「猫について書かれた文書」なのに、距離で測ると「遠い」と判定されてしまいます。方向で測れば「同じ」。これが正しい。

コサイン類似度は、2つのベクトルがどれだけ同じ方向を向いているかを測ります。

尺度は、完全に同じ方向なら 1.0、直角なら 0.0、正反対なら −1.0 です。上の図に、この尺度と具体例の両方が入っています。

これが現在のRAG(検索拡張生成)やセマンティック検索の基盤です。ユーザーの質問をベクトル化し、データベース内のドキュメントのベクトルとコサイン類似度を計算し、最も方向が近いドキュメントを取得する。Word2Vecから始まった「意味を方向で測る」というアイデアが、今のAIアプリケーションの検索エンジンになっています。

この技術は Embedding(埋め込み) と呼ばれます。

EmbeddingがなぜLLMに不可欠なのか

Embeddingの重要性はRAGや検索だけではありません。LLMが言語を処理するための入口そのものです。

LLMの内部はニューラルネットワーク、つまり行列の掛け算の連鎖です。行列の掛け算には数値のベクトルが必要です。「猫」という文字列をそのままニューラルネットワークに入れることはできません。

Embedding 層:LLM の入口LLM の入口で文に何が起きるかを示した図。「猫が寝ている」という文は、まず「猫」「が」「寝」「て」「いる」に分割され、4521、12、8834、67、2201 というトークンIDになる。次に Embedding 層が各IDを 300 次元のベクトルに変換する。4521 は 0.12、−0.34、0.56 と続いて 0.78 で終わるベクトルになり、これが「猫」の意味ベクトルである。12 も同様のベクトルになり、これが「が」の意味ベクトルである。そのあとでようやく、これらのベクトルがニューラルネットワークに入る。ネットワークは数字を掛け算することしかできず、ここまでの手順はすべてその数字を作るために存在している。Embedding 層:LLM の入口ステップ 1 — トークン化「猫が寝ている」「猫」4521「が」12「寝」8834「て」67「いる」2201ステップ 2 — Embedding各 ID が 300 次元のベクトルになる4521[0.12, −0.34, 0.56, …, 0.78]「猫」の意味ベクトル12[0.01, −0.02, 0.03, …, 0.01]「が」の意味ベクトルステップ 3 — ネットワークへネットワークは数字を掛け算することしかできない。ここまでの手順は、その数字を作るためにある。
ここにはまだ知能はない。知能を可能にするための一歩である。

Embeddingがなければ、LLMは入力を受け取ることすらできません。Word2Vecが確立した「単語を意味のあるベクトルに変換する」技術は、LLMの文字通りの入口である最初の層に組み込まれています。

ここまでで「単語を数値にする方法」は解決しました。しかし次の問題が待っています。単語をベクトルに変換しただけでは、 単語の並び順(文脈) が失われます。「犬が猫を追いかけた」と「猫が犬を追いかけた」では、単語のベクトルは同じでも意味は正反対です。

文脈をどう扱うか? この問いが次の章のテーマです。そしてこの問いに最初に本気で取り組んだのが、機械翻訳の研究者たちでした。

まとめ

前編では、コンピュータの誕生からWord2Vecまでを追いました。一本の線で貫いていたのは、どの発明も全く別の問題を解いていたという事実です。

  • チューリング (1936):数学の限界を証明しようとして、万能コンピュータの概念と、LLMにも適用される永続的な天井が生まれた。
  • シャノン (1948):電話回線のノイズと戦うために「情報 = 不確実性の削減」を定義したことが、LLMのクロスエントロピー損失とTemperatureのノブになった。
  • パーセプトロンからバックプロパゲーションへ (1958–1986):XORが第一次AIの冬を招き、「多層だがどう訓練するか」という問いに誤差の逆伝播が答えた。
  • GPUとReLU/ResNet (2012–2015):速度の壁と深さの壁を同時に破ったことで、現代のディープラーニングが実用になった。
  • Word2Vec (2013):単語を空間の座標として表すことで言語が数学になり、LLMの入口であるEmbedding層になった。

次の問題は文脈です。単語をベクトルに変換すると並び順が失われ、「犬が猫を追いかけた」と「猫が犬を追いかけた」が区別できなくなります。後編ではそこから始め、Attentionの誕生、Transformer、GPT-3のスケール革命、そして現在の整列・効率化の時代までを追います。LLMがどのように「設計されずに」完成したかの後半です。

この記事をシェア