機械学習の骨格——損失を最小にする
学習とは「予測誤差を数値化して、パラメータをずらす」作業。
- モデル・損失・最適化の三層構造を説明できる
- 訓練・検証・テストの役割を分け、過学習とデータ漏洩を説明できる
学習の三層構造
- モデル: 入力から出力への写像の型(直線、木構造、ニューラルネットなど)。パラメータ θ を持つ
- 損失関数: 「今の予測がどれだけ悪いか」を数値化(二乗誤差、交差エントロピーなど)
- 最適化: 損失を小さくする θ を探す。基本は勾配降下法
は学習率。大きすぎると発散、小さすぎると収束が遅い。ディープラーニングの進歩は、この単純な更新則を巨大なモデルで安定させる技術(Adam など)の積み重ねです。
過学習と汎化
| 状態 | 症状 | 対策 |
|---|---|---|
| 適合不足 (underfitting) | 訓練データにも十分適合しない | モデルの表現力・特徴量・学習の進み具合を確認する |
| 過学習 (overfitting) | 訓練は満点だが新しいデータに弱い | データ増加、正則化、早期打ち切り、ドロップアウト |
訓練データでパラメータを学習し、検証データでモデル・学習率・早期停止の時点を選びます。最後に、選択にも使っていないテストデータで汎化性能を評価します。訓練成績は学習の診断には役立ちますが、それだけでは未知データへの性能は分かりません。標準化の平均・分散も訓練データだけから求め、検証・テストに適用します。時系列は未来を訓練に混ぜず、同じ人物の記録が複数ある場合は人物単位で分けるなど、データ漏洩を防ぎます。
代表的なモデルと損失の組み合わせ
| モデル | 得意な場面 | 損失・指標 |
|---|---|---|
| 線形回帰 | 連続値の予測(価格、気温など) | 二乗誤差 |
| ロジスティック回帰 | 二値分類(確率付きの出力) | 交差エントロピー |
| k-NN(k近傍法) | 近くの k 個の多数決・平均。学習でパラメータを更新しない | 損失最小化の枠に入らない |
| 決定木 | 条件での分割。解釈しやすい | ジニ不純度など分割の良さの指標 |
二値分類で正解ラベルが y = 1、モデルの予測確率が p = 0.8 のときの交差エントロピー損失 L = −log p を求めよ。同じ問題で p = 0.2 と予測した場合はどうなるか。
解答・解説
p = 0.8 では L = −log 0.8 ≈ **0.223**。p = 0.2 では L = −log 0.2 ≈ **1.609**(log は自然対数)。正解に自信のない予測ほど損失が急激に増える設計になっており、確率の出力に二乗誤差より適する。
同じ分類問題・同じ検証データで、A の正解率は 95%、B は訓練 100%/検証 70% だった。計算費用などが同じなら、どちらを最終評価に進めるか。
解答・解説
**A** を選ぶ。B は過学習が疑われるが、分割間の分布の違いなども確認する。モデル選択には検証データを用い、選んだ後で未使用のテストデータを使って最終評価する。
モデルを 、訓練データを とする。損失を と定義する。w = 0、学習率 0.1 から1回更新せよ。
解答・解説
なので勾配は 。w = 0 で勾配は −10、更新後は 。損失は L(0) = 10 から L(1) = 2.5 に減る。これは訓練損失の改善であり、テスト性能の保証ではない。
学習率 η を極端に大きくすると何が起きやすいか。
解答・解説
最適点を飛び越えて**発散・振動**する。逆に極端に小さいと収束までの時間が膨張する。
回帰で二乗誤差の代わりに「絶対誤差」を使うと、外れ値への反応はどう変わるか。
ヒント
2乗は大きなズレを強調する。
解答・解説
**外れ値の影響が減る**。二乗は大きな誤差を強調するため、絶対誤差の方がロバスト。
例題と同じ損失で、w = 1、学習率 0.1 からもう1回更新せよ。更新後の損失も求めよ。
解答・解説
勾配は 5(1 − 2) = −5。更新後は w = 1 − 0.1 × (−5) = 1.5。損失は L(1.5) = (5/2) × (−0.5)² = 0.625 となる。
テスト正解率を見ながら学習率を何度も選び直した。この正解率を最終性能として報告してよいか。
解答・解説
よくない。テストデータをモデル選択に使ったため、評価結果に適合して楽観的な値になりうる。学習率は検証データで選び、最終性能には別の未使用データを用いる。
問1. 過学習を抑える手段はどれか。
問2. 勾配降下法で毎ステップ更新されるものは?