
「失敗の積み重ね」がLLMを生んだ(前編)— 数学の限界から意味の幾何学へ
はじめに
ChatGPTやClaudeのような大規模言語モデル(LLM)は、「LLMを作ろう」という目標から生まれたものではありません。
数学の限界を証明しようとした人、電話回線のノイズを減らそうとした人、機械翻訳の精度バグを直そうとした人——それぞれが全く別の問題を解いた副産物が、80年かけて積み重なってLLMになりました。
この記事では「その意図せぬ接続がどうなっているか」を順番に追います。ML・数学の知識は前提としません。
きっかけはFireshipのYouTube動画でした。LLMの歴史をコンパクトにまとめた内容に刺激を受け、「それぞれの発明が本当はどんな問題を解こうとしていたのか」をもっと深く掘り下げたくなり、この記事を書くことにしました。
前編(この記事) では、コンピュータの概念誕生から情報理論、ニューラルネットワークの訓練、そして言葉を数字に変える技術までを扱います。後編 では、文脈を扱うAttentionの誕生からTransformer、GPT-3のスケール革命、そして現在の整列・効率化の時代までを追います。
第1章 ー 「計算する」とはどういうことか? — Alan Turing (1936)
解こうとした問題
1930年代の数学界には、こんな夢がありました。
「数学のあらゆる命題は、アルゴリズムによって『真か偽か』を決定できるはずだ。」
これは 決定問題(Entscheidungsproblem) と呼ばれ、数学の巨人ヒルベルトが提唱しました。要するに「数学を完全に機械化できるか?」という問いです。
イギリスの数学者アラン・チューリングは、これが本当かどうかを証明しようとしました。
チューリングの翻訳:数学の問いをプログラムの問いへ
チューリングの鮮やかな発想は、問いを別の問いに翻訳したことです。
「数学の命題を決定するアルゴリズム」が存在するとしたら、それはこう動くはずです:
証明を探し続ける → 証明が見つかったら停止する → 見つからなければ永遠にループする
つまり「数学を機械化できるか?」という問いは、「プログラムが停止するかループするかを判定できるか?」という問いと同じになります。
だから、もし停止問題が解けないと証明できれば、数学の機械化も不可能だと証明できる。チューリングはそこを狙いました。
「停止問題」:自己言及が生む矛盾
「どんなプログラムでも、実行前に停止するかループするかを判定できる万能プログラム(判定機H)は作れるか?」
答えはNo。理由は「嘘つきのパラドックス」と同じ構造です。
「この文は偽である。」
→ 真なら偽。偽なら真。どちらも矛盾する。
判定機Hで同じ罠を作れます:
- 判定機Hを使って「逆張りプログラムD」を作る
- Hが「停止する」と言ったら → Dは永遠にループする
- Hが「ループする」と言ったら → Dはすぐ停止する
- DをD自身に適用する(自分で自分を判定させる)
- Hがどちらの答えを出しても矛盾する
これが「嘘をつく文」と同じ構造です。自分自身を参照した瞬間、どんな答えも矛盾する。 判定機Hは原理的に存在できない。
つまり「数学を完全に機械化できるか?」という夢は、不可能であることが証明されました。

意図せぬ副産物:「1台で何でもできる」コンピュータの概念
重要なのは証明の結論ではなく、証明のために必要だったものです。
「停止問題を証明する」ためには、まず「計算するとは何か」を厳密に定義しなければなりませんでした。そのために生まれたのがチューリングマシン——テープに書かれた記号を読み書きし、規則に従って状態を変える抽象的な機械のモデルです。
チューリングはさらに、この機械の決定的な性質に気づきました。プログラム自体もデータである。
どういうことか。
チューリングマシンのテープには「入力データ」を書けます。しかし「どう動くかの手順(プログラム)」も同じテープに書けます。つまり手順もデータの一種です。そうなると——「どんなプログラムの記述でも入力として受け取り、それを実行できる万能機械」が作れる。
これを 万能チューリングマシン(Universal Turing Machine) と言います。
この発想が革命的だった理由は、それ以前の世界と比べるとわかります:
UTM以前: 計算タスクA → 専用機械Aを作る
計算タスクB → 専用機械Bを作る
計算タスクC → 専用機械Cを作る
UTM以後: どんなタスクでも → 同じ1台の機械 + 異なるプログラム(入力)
これがあなたのノートPCです。ブラウザもゲームもLLMの推論も、ハードウェアは変わらない。プログラムという「データ」が変わるだけです。
ジョン・フォン・ノイマンはチューリングの論文を読んで、1940年代にこの概念を実際のコンピュータ設計に落とし込みました(ノイマン型アーキテクチャ)。プログラムをデータと同じメモリに格納する——今のコンピュータすべてがこの設計を踏襲しています。
この設計が業界標準になったことで、決定的なことが起きました。この共通アーキテクチャ上で表現できるアルゴリズムは、対応するどのハードウェアでも動く。 誰でもプログラムを書けば、世界中の互換機で実行できる。特定の専用機を持たなくても、アルゴリズムのアイデアさえあれば参加できる。これがソフトウェア産業の土台であり、LLMの訓練コードが世界中の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」が消える → 読み手はすでに予測している。情報損失は小さい。
ここに重要な発見があります。メッセージのすべての部分が等しい情報を持っているわけではない。 予測しやすい部分は情報が少なく、予測しにくい部分は情報が多い。ノイズが本当に害を与えるのは、情報量が大きい部分を壊したときです。
つまりノイズと戦うには、まず「何を守るべきか」を知る必要がある。守るべきものを知るには、「情報とは何か」を定義する必要がある。
「情報量」を定義する
シャノンの答え:「情報とは、不確実性の削減である。予測できなかったことが起きたほど、情報量が多い。」
「明日も太陽が東から昇る」——誰でも知っている。情報量はほぼゼロ。
「真夏に東京で雪が降る」——予測外。情報量が大きい。
この直感を数式にしたのが情報エントロピーです。「各出来事の起こりやすさ(確率)をもとに、全体の予測しにくさを計算する」式で、予測が難しいほど大きな値になります。

ちなみに「bit(ビット)」という単語もこの時代に登場しますが、シャノン自身が発明したのではありません。0と1という二進数の概念はライプニッツ(1703年)まで遡り、「bit」という単語は同僚のジョン・チューキーが作ってシャノンが論文で広めました。シャノンの本質的な発明は「0か1か」ではなく、情報を定量化する数学そのものです。
余談: AnthropicのAIアシスタント「Claude」は、クロード・シャノンにちなんで名付けられたと広く言われています。情報理論を生んだシャノンの名を冠するAIというのは、なかなか示唆的な選択です。
シャノンの答えが解き放った工学
情報を定義したことで、すべてが定量化できるようになりました:
- メッセージを測れる — 何ビットの情報を含んでいるか計算できる
- チャネルを測れる — 回線が毎秒何ビット確実に運べるか(チャネル容量)を計算できる
- 冗長性を設計できる — エラー訂正のために何ビット追加すべきか計算できる
そして最も重要な結果——雑音通信路符号化定理:情報レートがチャネル容量を下回る限り、どれだけノイズが多くても、適切な符号化をすれば事実上エラーなしで通信できる。
シャノン以前、技術者はノイズが多い回線では通信の質が落ちるのは避けられないと考えていました。シャノンはそうではないことを証明した。ノイズは限界を定めるが、その限界以下であれば完全な信頼性は達成可能——正しい符号化さえあれば。
圧縮への接続:情報が少ない部分は捨てられる
シャノンの情報量の定義は、もう一つの革命を生みました——データ圧縮です。
情報源符号化定理によれば、メッセージを圧縮できる理論的な最小サイズは、そのエントロピー(情報量)に等しい。つまり:
- 「AAAAAAAAAA」—— 完全に予測可能、エントロピーほぼゼロ → ほぼゼロまで圧縮できる
- ランダムノイズ —— 完全に予測不能、エントロピー最大 → 圧縮不可能
- 自然言語 —— 中間、パターンが多い → 大幅に圧縮可能
JPEG、MP3、ZIPファイル——すべてこの原理です。予測しやすい(情報量が低い)部分を取り除き、予測しにくい(情報量が高い)部分を保持する。展開時には、文脈から予測可能な部分を復元する。
LLMのトークナイザー(BPE——Byte Pair Encoding)もこの意味で圧縮です。頻出するシーケンス("the"、"ing"、"tion")は1つのトークンになり、稀なシーケンスは文字単位のまま残る。トークナイザーは文字通り、自然言語に対するシャノン最適符号化器です。

LLMへの接続:訓練から推論まで
訓練:クロスエントロピー損失
LLMを訓練するときの核心的な問いは「モデルは次の単語をどれだけ正確に予測できているか?」です。
この「予測の正確さ」を測る指標として使われるのがクロスエントロピー損失——シャノンのエントロピーから直接導かれます。
損失 = -(正解の確率 × log(モデルの予測確率) の合計)
LLMが学習するとき、モデルはひたすらこの数値を小さくしようとします。言い換えれば、次のトークンに対する「驚き」を減らすことが訓練の全目的です。シャノンが定義した「情報 = 不確実性の削減」がそのまま学習目標になっている。
推論:Temperatureはエントロピーのノブ
シャノンの「驚き」の概念は、LLMの出力制御にも直結します。Temperatureパラメータは、出力分布のエントロピーを直接操作するノブです。
P(トークン) = softmax(logit / temperature)
| Temperature | 分布への効果 | シャノンエントロピー |
|---|---|---|
| → 0 | 最高確率のトークンに集中 | エントロピー → 0(驚きゼロ) |
| = 1 | モデル本来の分布 | 自然なエントロピー |
| > 1 | 分布が平坦化、全トークンがより均等 | エントロピー上昇(驚き増加) |
Temperature低い = 最も予測可能(情報量が少ない)トークンを常に選ぶ。Temperature高い = より高エントロピーな分布からサンプリング = 創造的だが一貫性が下がる可能性。
「もっと創造的に書いて」とTemperatureを上げるとき、あなたは文字通り出力のシャノンエントロピーを上げている。

全体の接続
Shannon (1948): 情報 = 驚き = エントロピー を定義
↓
圧縮: 低エントロピー(予測可能)な部分を除去、高エントロピーを保持
↓
トークナイザー: BPEが同じ原理で言語を最適符号化
↓
訓練損失: クロスエントロピー = 正解トークンに対するモデルの「驚き」
↓
Temperature: 推論時に出力分布のエントロピーを制御
一つの数学的フレームワークが、LLMの構築と運用のすべての層に適用されています。電話回線のノイズを減らしたかったシャノンの数学が、80年後にLLMの「賢さの定義」にも「創造性の調整ノブ」にもなっている。
第3章 ー 機械は学べるか? — 楽観、挫折、復活
楽観の時代:パーセプトロン (1958)
「機械が学習できる」という最初のデモが、フランク・ローゼンブラットによるパーセプトロンでした。
仕組みはシンプルです。最もシンプルなニューラルネットワーク——「ニューロン」1つだけの回路です。
入力 重み 合計 出力
x1 ----(w1)----\
x2 ----(w2)-----→ Σ(xi·wi) + バイアス → 閾値判定 → 0 か 1
x3 ----(w3)----/
- 複数の入力(数値)を受け取る
- それぞれに「重み」をかけて足し合わせる
- 合計がある閾値を超えたら「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次元平面にプロットすると:

パーセプトロンは1本の直線でYesとNoを分離しようとします。しかし上の図を見れば、●と○を1本の直線で分けることは不可能です。どう線を引いても、必ず混ざります。
これだけなら「じゃあXORは特殊ケースだ」で済むかもしれません。しかしミンスキーとペパートが証明したのは、XORだけの話ではありませんでした。非線形な判定境界を必要とする問題のクラス全体——パリティ判定(偶数・奇数の判別)、対称性の検出、連結性の判定など——がすべてパーセプトロンには不可能だと示しました。XORは最もシンプルで、最も恥ずかしい反例にすぎません。
そしてこれが壊滅的だった理由は、期待と現実のギャップです。メディアは「歩いて話す機械」と報じた。数学者がその機械はXORすら学べないと証明した。資金を出す側の結論は「ニューラルネットワーク=行き止まり」。これが第一次AIの冬のきっかけです。研究資金が凍結され、多くのニューラルネットワーク研究者が職を失いました。

ただし彼らの著書には、一行の注記がありました。
「多層のネットワークならこの問題を解けるかもしれない。ただし、どう訓練するかは不明だ。」
この「ただし」が、次の17年間の研究課題を定義しました。
復活:バックプロパゲーション (1986)
「ただし」を解いたのがルメルハート、ヒントン、ウィリアムズによる バックプロパゲーション(誤差逆伝播法) です。
多層ネットワークとは、パーセプトロンを複数つなげたものです。各パーセプトロンがそれぞれ独自の重みを持ち、層ごとにグループ化されています。

この図で真ん中のLayer 2は隠れ層(hidden layer)と呼ばれます。「隠れ」と言っても、何かを隠しているわけではありません。入力層はユーザーがデータを渡す場所、出力層はユーザーが結果を受け取る場所——どちらもユーザーから「見える」。一方、真ん中の層はユーザーが直接触ることのない内部の作業スペースです。外から見えないから「隠れ(hidden)」。
層が増えるとき、増えるのはこの隠れ層です。入力層と出力層は常に1つずつ。その間に隠れ層を何層積むかが「ネットワークの深さ」であり、これが「ディープ(深層)ラーニング」の「ディープ」の意味です。この「隠れ」という概念は第5章で再登場するので、覚えておいてください。
学習の流れは直感的です:
- すべての重みをランダムな値で初期化する(ランダムでないと全ニューロンが同じことを学んでしまう)
- データを入力し、全層を通して予測を出す(「この画像は猫だ」)
- 答え合わせをして、どれだけ間違えたかを計算する
- 「どの重みがこの間違いに貢献したか」を出力から入力方向へ逆向きに追跡する
- 貢献度に応じて各重みをほんの少し修正する(重みは上書きされる。スナップショットは残らない)
- これを何百万回も繰り返す
答えの正解を知っているのは最終出力だけです。途中の層が「正しく何を出すべきか」は誰にもわかりません。「猫の画像に対するLayer 1の正しいエッジ検出結果」なんて、正解がない。
Input → [Layer1] → [Layer2] → [Layer3] → 出力 vs 正解
↑
唯一の採点ポイント
だから、誤差信号を出力から逆向きに伝えます。数学の 連鎖律(チェーンルール) を使って、「AがBに影響し、BがCに影響するなら、AがCに与える影響は二つの効果の掛け算で求まる」という原理で、各層の責任を順番に計算していきます。
順方向パス(左→右):
入力 → Layer1 → Layer2 → Layer3 → 出力 → 「間違い!」
逆方向パス(右→左):
「間違い!」 → Layer3の責任 → Layer2の責任 → Layer1の責任
「Layer3、あなたの責任は40% → 重みを40%分調整」
「Layer2、あなたの責任は35% → 重みを35%分調整」
「Layer1、あなたの責任は25% → 重みを25%分調整」
誤差が逆方向に伝播する——だからバックプロパゲーション(誤差逆伝播法)。
多層ネットワークをこの方法で訓練できることが示され、ミンスキーたちが「不明だ」と言った問題が解決しました。

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

層が増えるほど、より複雑な判定境界を描ける。これがディープラーニング(深層学習)の根幹です。
しかし理論と実用の間には大きな壁がありました。多層ネットワークの訓練には膨大な計算量が必要で、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個以上)を持ち、シンプルな計算を大量に同時実行する設計です。
CPU: 4人の熟練数学者が、複雑な問題を順番に解く
GPU: 4000人の小学生が、足し算をいっせいに解く
ニューラルネットワークの訓練は、その大部分が行列の掛け算——何千もの重みと何千もの入力を掛け合わせて足すという単純な計算の繰り返しです。そして各掛け算は互いに独立しており、w3×x3の結果はw1×x1の結果を待つ必要がありません。
CPUアプローチ(逐次処理):
w1×x1 → 完了 → w2×x2 → 完了 → w3×x3 → 完了 → ... → w1000×x1000 → 完了
合計: 1000ステップ
GPUアプローチ(並列処理):
w1×x1, w2×x2, w3×x3, ... w1000×x1000 → 全部同時に完了
合計: 1ステップ
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... ← 事実上ゼロ
最終層に近いほどフィードバックが強く、最初の層ほどフィードバックが消えていく:
Layer1 Layer2 Layer3 ... Layer50 出力
←×0.3← ←×0.3← ←×0.3← ... ←×0.3← 誤差!
Layer50: 「30%間違っている、調整せよ!」 ← 学習できる
Layer25: 「0.000001%間違っている」 ← ほとんど学習できない
Layer1: 「0.0000000000%間違っている」 ← 動けない、学習不能
これは建物の基礎が壊れているのに直せないようなものです。Layer 1は基本的な特徴(エッジ、単純なパターン)を学ぶべき層ですが、フィードバックが届かないので学習できない。基礎がデタラメなままでは、その上に何を積み上げても意味がありません。

この壁は、複数の技法の組み合わせで段階的に克服されました。
先ほど各層の掛け算の係数が「0.3」のように1未満だと説明しました。この係数はどこから来るのでしょうか? 答えは活性化関数——各ニューロンが出力をどう変換するかの関数です。
長年使われていたのがSigmoidです。Sigmoidは生物のニューロンを模倣して設計されました。実際のニューロンは単純なオン・オフではなく、刺激の強さに応じてなめらかに活性化します。Sigmoidはこれを再現する滑らかなS字カーブで、どんな入力も0〜1の範囲に変換します。
しかしバックプロパゲーションでは、各層の「責任の係数」はこの活性化関数の 傾き(勾配) で決まります。Sigmoidの傾きは最大でも約0.25、通常はそれ以下です。
Sigmoidの傾き:
入力が極端に大きい/小さい → 傾き ≈ 0.0(ほぼ平坦)
入力が0付近(最良のケース)→ 傾き ≈ 0.25
各層の最良ケース: ×0.25
10層通過後: 0.25^10 ≈ 0.000001 → 信号は死ぬ
生物学的な妥当性と数学的な美しさ——Sigmoidが「賢い」と思われた理由そのものが、勾配を殺す原因でした。長所がそのまま欠点だった。

ReLU:「愚直」が勝った理由
ReLU(Rectified Linear Unit) は驚くほど単純です。「正なら素通し、負ならゼロ」——それだけ。
数学者は当初これを軽視しました。粗雑すぎる。微分不可能な点がある。ニューロンとは似ても似つかない。
しかしReLUの正の値に対する傾きはちょうど1.0です。0.25ではなく、0.1でもなく、1。
バックプロパゲーション時の係数比較:
Sigmoid: ×0.25 → ×0.25 → ×0.25 → ... → 信号が死ぬ
10層後: 0.25^10 = 0.000001
ReLU: ×1.0 → ×1.0 → ×1.0 → ... → 信号が生き残る
10層後: 1.0^10 = 1.0
ReLUは信号を「増幅」するわけではありません。殺すのをやめただけです。Sigmoidは各層で信号を積極的に圧縮していた。ReLUはそのまま通す。
1980年代にはネットワークが2〜3層しかなく、Sigmoidの問題は表面化しませんでした。層が深くなって初めて、「賢い設計」の隠れたコストが致命的になったのです。スケールにおいては、信号を保存する愚直さが、信号を壊す美しさに勝つ。

ただしSigmoidは「間違い」だったわけではありません。正しかったが、スケールに耐えられなかったのです。自転車の補助輪のようなもので、初心者には正しい設計だが、レーサーには邪魔になる。実際、今でもSigmoidは特定の用途——出力層でのYes/No分類(0〜1の確率が必要な場面)や、記憶セル内のゲート制御——で使われています。ただし深いネットワークの隠れ層では、もはやReLUが標準です。
残差接続(ResNet, 2015):もう一つの解決策
ReLUが各層の信号減衰を抑えたのに対し、**残差接続(ResNet)**は全く別のアプローチで勾配消失に挑みました。
通常のネットワークでは、各層が「入力を受け取り、完全な出力を生成する」ことを求められます。残差接続では、入力がショートカット経路を通って出力にそのまま加算されます。
通常の経路: 入力 → [Layer] → 出力
残差接続あり: 入力 → [Layer] → Layer結果 + 入力 = 出力
│ ↑
└────────────────────────────┘
ショートカット(入力がそのまま加算される)
これが何を変えるのか? 層の仕事が根本的に変わります。
残差接続なし:
入力 = 5, 期待される出力 = 5.3
層が学ぶべきこと: 「5.3を出力せよ」 ← 全体を学ぶ
残差接続あり:
入力 = 5, 期待される出力 = 5.3
出力 = 層の結果 + 入力
層が学ぶべきこと: 「0.3を出力せよ」 ← 小さな補正だけ学ぶ
最終出力: 0.3 + 5 = 5.3
層の役割が「完全な出力を生成する」から「入力に対する小さな補正(残差)を学ぶ」に変わります。だから 残差(Residual)接続 と呼ばれるのです。
身近な例で考えると、体重計に乗っても軽すぎて測れない犬の体重を量りたいとき——犬を抱っこして一緒に体重計に乗り、自分の体重を引けば犬の体重がわかります。自分の体重(入力)という既知のベースラインがあるからこそ、小さな差分(犬=残差)が正確に測れる。残差接続も同じで、入力というベースラインを保持することで、層が学ぶべき小さな補正が検出可能になります。
そして勾配にとっても決定的な違いがあります。バックプロパゲーションでは、勾配は両方の経路を通って流れます:
逆方向パス:
層の経路を通る勾配(縮むかもしれない: ×0.25)
╱
合計勾配 =
╲
ショートカット経路の勾配(そのまま: ×1.0)
合計 = (縮んだ信号)+(完全な信号)
層の経路で勾配が0.001に縮んでも、ショートカット経路が1.0を加算します。合計は約1.001。ショートカットが保険として機能し、信号が死なない。 そして層の経路にも勾配は流れるので、層自体も学習できます——フィードバックが消えないからです。
もし層が何も有用な補正を見つけられなければ? 0を出力すればよい。出力 = 0 + 入力 = 入力がそのまま通る。層が「何もしない」という選択肢を持てるため、深い層を追加しても性能が悪化しない。

ResNetはこの仕組みで152層のネットワークを訓練して成功を収め、ImageNet 2015で優勝しました。
ReLUとResNet:異なるアプローチ、同じ目標
ReLUとResNetは勾配消失という同じ問題に対する異なる角度からの解決策です。ReLUは各層内部の勾配減衰を防ぎ(係数を1.0に保つ)、ResNetは層をまたぐ勾配の迂回路を確保する。現代のディープラーニングでは両方を組み合わせることで、100層以上のネットワークが実用的になりました。
GPUが速度の壁を壊し、ReLU・ResNetが深さの壁を壊した。速度と深さ、両方の壁が倒れたことで、現代のディープラーニングが可能になりました。

第4章 ー 言葉を数字にするとは? — 意味の幾何学
コンピュータは数字しか扱えない
ここまでの話は「いかに正確に学習させるか」でした。そしてここまでの成功例はすべて、最初から数字だったデータを扱っていました。画像はピクセルの数値(各ピクセルが0〜255の色情報)。音声は波形の数値。株価、気温、センサーデータ——すべて最初から数字です。ニューラルネットワークにそのまま入力できます。
しかし言葉は数字ではありません。 「猫」「経済」「美しい」——これらは記号であり、そのままではニューラルネットワークの行列計算に入力できません。LLMを作るためには、「言葉をどう数字に変換するか?」という根本的な問題をまず解く必要がありました。
最もシンプルな方法:「猫=1、犬=2、空=3…」と番号を割り振る。しかしこれでは「猫」と「犬」の間に意味的な関係がありません。「猫と犬は似ている」「猫と宇宙船は遠い」という情報が数字に入っていない。
Word2Vec:意味を空間の座標に (2013)
Googleのミコロフらが示したアイデア:単語を高次元空間の「座標(ベクトル)」として表す。
「高次元」とはどういうことか。私たちが日常で使う地図は2次元(東西・南北)、建物の中なら3次元(+上下)です。Word2Vecでは1つの単語を300次元の座標で表します。人間には300次元の空間を想像することはできませんが、数学的には2次元や3次元と同じように距離や方向を計算できます。
なぜ300次元も必要なのか? 言語の意味は多面的だからです。「猫」という単語は「動物か?」「ペットか?」「大きさは?」「危険か?」「可愛いか?」など無数の軸で特徴づけられます。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回出現 → ベクトルの大きさ: 大(5回の文書の10倍方向に伸びる)
両者のユークリッド距離: 大きい(遠い)
両者の向いている方向: 同じ
どちらも「猫について書かれた文書」なのに、距離で測ると「遠い」と判定されてしまいます。方向で測れば「同じ」——これが正しい。
コサイン類似度は、2つのベクトルがどれだけ同じ方向を向いているかを測ります。
コサイン類似度:
完全に同じ方向 → 1.0(同じ意味)
直角(無関係)→ 0.0
正反対 → -1.0(反対の意味)
例(イメージ):
「犬」 ↗ ← 「猫」とほぼ同じ方向 → コサイン類似度 ≈ 0.9
「猫」 →
「宇宙船」 ↓ ← 全然違う方向 → コサイン類似度 ≈ 0.1

これが現在のRAG(検索拡張生成)やセマンティック検索の基盤です。ユーザーの質問をベクトル化し、データベース内のドキュメントのベクトルとコサイン類似度を計算し、最も方向が近いドキュメントを取得する。Word2Vecから始まった「意味を方向で測る」というアイデアが、今のAIアプリケーションの検索エンジンになっています。
この技術は** Embedding(埋め込み)** と呼ばれます。
EmbeddingがなぜLLMに不可欠なのか
Embeddingの重要性はRAGや検索だけではありません。LLMが言語を処理するための入口そのものです。
LLMの内部はニューラルネットワーク——つまり行列の掛け算の連鎖です。行列の掛け算には数値のベクトルが必要です。「猫」という文字列をそのままニューラルネットワークに入れることはできません。
「猫が寝ている」という文をLLMに入力するとき:
Step 1: トークン化
「猫」「が」「寝」「て」「いる」 → [4521, 12, 8834, 67, 2201]
Step 2: Embedding(各トークンIDを300次元のベクトルに変換)
4521 → [0.12, -0.34, 0.56, ..., 0.78] ← 「猫」の意味ベクトル
12 → [0.01, -0.02, 0.03, ..., 0.01] ← 「が」の意味ベクトル
...
Step 3: これらのベクトルがニューラルネットワークに入る
Embeddingがなければ、LLMは入力を受け取ることすらできません。Word2Vecが確立した「単語を意味のあるベクトルに変換する」技術は、LLMの文字通りの入口——最初の層——に組み込まれています。

ここまでで「単語を数値にする方法」は解決しました。しかし次の問題が待っています。単語をベクトルに変換しただけでは、 単語の並び順(文脈) が失われます。「犬が猫を追いかけた」と「猫が犬を追いかけた」——単語のベクトルは同じでも、意味は正反対です。
文脈をどう扱うか? この問いが次の章のテーマです。そしてこの問いに最初に本気で取り組んだのが、機械翻訳の研究者たちでした。
後編に続く: 第5章では、RNNの構造的限界からAttentionが生まれ、Transformerが「パッチからアーキテクチャへ」進化する過程を追います。そしてGPT-3のスケール革命、RLHFによる整列、現在の効率化の時代まで——LLMがどのように「設計されずに」完成したかの後半です。







