この回のゴール
- 「機械学習」の一番シンプルな形である 線形回帰 を、手で動かす
- 損失関数 と 勾配降下法 の数式を、コードと図で腹落ちさせる
- ニューラルネットワーク・LLM まで続く「学習」の共通骨格を掴む
1. 機械学習とは何か
前回まで、AI は「ルール」か「探索」で動いていました。しかし:
- 「犬と猫の画像を見分けて」
- 「この文章はネガティブかポジティブか」
- 「次に来る単語は何?」
これらを 人間が場合分けルールで書くのは不可能 です。データを大量に集めて、そこからパターンを 関数として取り出す のが機械学習です。
共通の枠組み
- データ: 入力 $x$ と正解 $y$ のペア ${(x_i, y_i)}_{i=1}^n$
- モデル: パラメータ $\theta$ を持つ関数 $f_\theta(x)$
- 損失関数: 予測と正解のズレを測る $L(y, \hat{y})$
- 学習: 損失が小さくなるように $\theta$ を調整
$$ \theta^* = \arg\min_\theta \frac{1}{n} \sum_{i=1}^n L(y_i, f_\theta(x_i)) $$
これは LLM でも全く同じ骨格です。 違いはモデル $f_\theta$ の複雑さだけ。
2. 最もシンプルな例: 線形回帰
入力: 1 次元の $x$ (例: 気温) 出力: 1 次元の $y$ (例: アイスクリームの売上) モデル: $f_\theta(x) = w x + b$ ($\theta = (w, b)$)
損失関数: 平均二乗誤差(MSE)
$$ L(w, b) = \frac{1}{n} \sum_{i=1}^n \bigl( y_i - (w x_i + b) \bigr)^2 $$
解析解(閉じた式で解ける)
実は線形回帰だけは 公式で一発解ける:
$$ w^ = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2}, \quad b^ = \bar{y} - w^* \bar{x} $$
でも現実のほとんどのモデル (ニューラルネット・LLM) は 解析解が存在しない。そこで:
3. 勾配降下法(Gradient Descent)
損失関数 $L$ を 坂道 と見立てて、低い方に少しずつ降りる方法。
勾配とは
$$ \nabla L = \left( \frac{\partial L}{\partial w}, \frac{\partial L}{\partial b} \right) $$
これは「$L$ を 最も急に増やす方向」を指すベクトル。その 逆向き に進めば減る。
更新ルール
学習率 $\eta > 0$ を使って、各ステップ:
$$ w \leftarrow w - \eta \frac{\partial L}{\partial w}, \quad b \leftarrow b - \eta \frac{\partial L}{\partial b} $$
線形回帰での具体的な勾配
$L = \frac{1}{n} \sum (y_i - w x_i - b)^2$ を $w, b$ で偏微分すると:
$$ \frac{\partial L}{\partial w} = -\frac{2}{n} \sum x_i (y_i - w x_i - b) $$
$$ \frac{\partial L}{\partial b} = -\frac{2}{n} \sum (y_i - w x_i - b) $$
4. 学習率の重要性
$\eta$ の大きさが結果を左右する:
| $\eta$ | 起きること |
|---|---|
| 小さすぎ | なかなか収束しない |
| ちょうど良い | 少しずつ損失が減る |
| 大きすぎ | 発散する(損失が無限大に飛ぶ) |
これは LLM の学習でも全く同じ問題です。現代では Adam などの高度な手法が使われますが、基本は勾配降下法です。
5. LLM との繋がり
LLM を学習する際の骨格も同じ:
| 概念 | 線形回帰 | LLM |
|---|---|---|
| 入力 $x$ | 気温などの数値 | 単語列(トークン) |
| 出力 $y$ | 売上などの数値 | 次のトークンの確率 |
| モデル $f_\theta$ | $wx+b$(2 パラメータ) | Transformer(数十億〜数兆パラメータ) |
| 損失 $L$ | 平均二乗誤差 | 交差エントロピー |
| 最適化 | 勾配降下 | AdamW など勾配降下系 |
👉 規模が違うだけで、骨格は全く同じ。これがこの章で一番伝えたいポイントです。
まとめ
- 機械学習の共通骨格: データ → モデル → 損失 → 最適化
- 線形回帰 は一番シンプルな機械学習で、唯一 解析解 を持つ特殊な例
- 勾配降下法 は「損失という坂を降りる」だけの単純なアルゴリズム
- この骨格は LLM の学習でも本質的に同じ
この回の限界(次への動機)
| 問題 | 何が起きるか |
|---|---|
| 入力が複雑(文章・画像) | 単純な $wx+b$ では表現できない |
| 非線形な関係 | 直線でフィットできない |
| 出力が連続値ではない(例: 次の単語) | そもそも MSE で測れない |
👉 次の章 (02. 生成AI) では、「確率分布そのもの」を学習するモデル に進みます。「新しい文章を作り出す」ためには、$y$ の値を 1 つ当てるのではなく、「あり得る $y$ の 確率分布」を学ぶ必要があります。
よくある質問
Q. なぜ解析解があるのに勾配降下を使うの? A. 線形回帰だけが特別に解析解を持ちます。ニューラルネットや LLM のモデルは 非線形 で高次元なので解析解がなく、勾配降下(およびその拡張)で 近似的に 解くしかありません。
Q. LLM の学習には何日かかるの? A. モデルサイズや計算資源によりますが、大規模モデルで数週間〜数ヶ月、数千〜数万 GPU を使います。しかし アルゴリズム自体は今日学んだものと同じ骨格 です。
Q. 深層学習は何が違う? A. $f_\theta$ を 多層ニューラルネット にしたもの。パラメータの数が巨大になり、非線形性が増しますが、学習の枠組みは今日と同じです。
参考文献
- Goodfellow, Bengio, Courville Deep Learning Ch.4-5 (最適化)
- 中井悦司『IT エンジニアのための機械学習理論入門』