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

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

- Source: https://oharu121.com/ja/blog/llm-birth-history-turing-shannon-perceptron-word2vec-part1/
- Published: 2026-08-11T22:23:50+09:00
- Tags: LLM, 生成AI, ディープラーニング

---
## はじめに

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

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

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

きっかけは[FireshipのYouTube動画](https://www.youtube.com/watch?v=ML3q7Ok4hJg)でした。LLMの歴史をコンパクトにまとめた内容に刺激を受け、「それぞれの発明が本当はどんな問題を解こうとしていたのか」をもっと深く掘り下げたくなり、この記事を書くことにしました。

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

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

### 解こうとした問題

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

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

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

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

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

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

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

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

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

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

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

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

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

```
H(P, I) → 「停止する」または「ループする」
```

*Figure — DeciderContract: これ以降のすべては、この「仮に」の中の話。*

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

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

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

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

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

*Figure — ContrarianProgram: Dは賢いプログラムではない。反対することだけが仕事のラッパーである。*

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

*Figure — HaltingTrace: 罠はHの答えではなく、その答えをDが聞けてしまうことにある。*

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

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

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

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

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

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

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

どういうことか。

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

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

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

*Figure — UniversalMachine: 機械は「問題ごとに作るもの」ではなくなった。*

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

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

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

*Image: 一度書いたアルゴリズムがどこでも動く様子を示す図。プログラムは命令セット・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」が消える → 読み手はすでに予測している。情報損失は小さい。

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

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

### 「情報量」を定義する

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

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

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

*Image: 情報とは不確実性の削減であることを示す図。ほぼ確実な出来事の情報量はごくわずかで、予想外の出来事の情報量は大きい。エントロピーの式がこの直感をビットに変換し、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つのトークンになり、稀なシーケンスは文字単位のまま残る。トークナイザーは文字通り、自然言語に対するシャノン最適符号化器です。

*Image: 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を上げるとき、あなたは文字通り出力のシャノンエントロピーを上げている。

#### 全体の接続

*Figure — EntropyChain: 4回導き直したわけではない。1つの定義が、今も効いている。*

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

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

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

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

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

*Figure — PerceptronCircuit: ニューロン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次元平面にプロットすると：

*Figure — XorNotSeparable: どう直線を引いても Yes と No は分かれません。これが単層パーセプトロンの限界でした。*

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

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

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

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

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

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

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

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

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

*Figure — MultilayerNetwork: 中間の層が「隠れ層」と呼ばれるのは、外から見えないからです。*

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

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

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

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

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

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

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

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

*Figure — Backpropagation: Layer 2が何を出力すべきだったかは誰も知らない。だから正解を持つ唯一の場所から、逆向きに伝えるしかない。*

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

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

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

*Figure — NonLinearBoundary: 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`の結果を待つ必要がありません。

*Figure — GpuParallelism: 数学は何も変わっていない。変わったのは、同時に何個進められるかだけ。*

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... ← 事実上ゼロ
```

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

*Figure — VanishingGradient: 同じ誤差、同じ指示。違うのは、各層に届くころに何が残っているか。*

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

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

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

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

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

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

*Figure — SigmoidSlope: カーブで最も急な点でも 4 分の 1。それ以上の場所はどこにもない。*

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

#### ReLU：「愚直」が勝った理由

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

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

*Figure — ReluVsSigmoid: どちらも同じ10回。最後まで信号が残っているのは一方だけ。*

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

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

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

#### 残差接続（ResNet, 2015）：もう一つの解決策

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

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

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

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

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

*Figure — ResidualConnection: 入力をベースラインとして残すことで「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が深さの壁を壊した。**速度と深さ、両方の壁が倒れたことで、現代のディープラーニングが可能になりました。**

*Image: 勾配消失問題と、その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次元あれば、各次元がそれぞれ異なる意味の側面を捉えることができます。

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

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

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

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

*Image: 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点間の距離（ユークリッド距離）を使いたくなります。しかし高次元空間では、距離よりも**方向**のほうが意味の類似性をうまく捉えます。

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

*Figure — CosineSimilarity: どちらも猫についての文書で、片方が10倍長いだけ。距離はそれを意味の違いとして扱う。*

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

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

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

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

この技術は **Embedding（埋め込み）** と呼ばれます。

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

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

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

*Figure — EmbeddingPipeline: ここにはまだ知能はない。知能を可能にするための一歩である。*

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がどのように「設計されずに」完成したかの後半です。
