訓練データでの精度が高いモデルが、良いモデルとは限りません。そこだけを見ていると失敗します。
こんにちは、zawato(@zawato7)です!
本記事はディープラーニング入門ロードマップの第8回です。
- データを訓練・検証・テストに分ける理由と分け方
- 過学習が起きる仕組みと、正則化による抑え方
- 評価指標の使い分けと、データリーケージの落とし穴
なぜデータを分けるのか
手元のデータを、すべて学習に使ってはいけません。目的は手元のデータを当てることではなく、まだ見ぬデータを当てることだからです。この対応力を汎化性能と言います。過去問の答えを丸暗記しても、本番の問題は解けないのと同じです。
そこでデータを分けます。訓練データで学習させ、検証データで調整具合を確認し、テストデータで最終性能を測ります。検証データの精度を追い続けるとそこに合わせ込むため、一度も触れないデータを残します。
| 分け方 | やり方と向いている場面 |
|---|---|
| ホールドアウト法 | 7割を訓練、3割を検証のように単純分割する。データ量が十分な場合に有効 |
| k分割交差検証 | データをk個に分け、検証役を入れ替えながらk回学習する。データが少ない場合に有効 |
過学習と、それを抑える正則化
過学習(オーバーフィッティング)は、訓練データに合わせすぎて未知データの精度が落ちる状態です。現実のデータには誤差が混ざっており、そこまで再現すると本来の傾向から外れます。逆に単純すぎて傾向を捉えられない状態が未学習(アンダーフィッティング)です。
この関係がバイアスとバリアンスのトレードオフです。バイアスは単純すぎて生じる誤差、バリアンスは複雑すぎて生じる誤差で、過学習はバリアンスが大きい状態。同時には小さくできないため、ちょうどよい複雑さを探します。その調整役が正則化で、複雑さに罰則を与えて引き戻します。
| 手法 | 罰則の内容と効果 |
|---|---|
| L1正則化(ラッソ回帰) | 係数の絶対値の和に罰則。一部が0になり説明変数を減らせる |
| L2正則化(リッジ回帰) | 係数の二乗和に罰則。係数が極端に大きくならず滑らかになる |
評価指標は目的に合わせて選ぶ
正解率だけを見ていると、役に立たないモデルを高く評価してしまいます。1万個に1個不良品が混ざるラインで、すべて「良品」と答えるモデルは正解率99.99%ですが、不良品を1つも見つけられません。
分類の評価は、予測と実績を4つに分けた混同行列から始めます。
| 正例と予測 | 負例と予測 | |
|---|---|---|
| 実際は正例 | TP(真陽性) | FN(偽陰性・見逃し) |
| 実際は負例 | FP(偽陽性・誤検知) | TN(真陰性) |
| 指標 | 何を測るか |
|---|---|
| 正解率 | 全体のうち正しく予測できた割合 |
| 適合率 | 正例と予測したうち本当に正例だった割合。誤検知の少なさ |
| 再現率 | 実際に正例のうち正例と予測できた割合。見逃しの少なさ |
| F値 | 適合率と再現率のバランスを取った指標 |
適合率と再現率は片方を上げると片方が下がる関係で、どちらを重視するかは目的から決めます。ほかにROC曲線とその下側の面積AUCもあり、AUCは1に近いほど高性能、でたらめな予測で0.5です。
混同行列や適合率・再現率については、こちらの記事でより詳しく解説しています。
2値分類タスクに用いる評価指標を理解しよう!適合率・再現率・AUCなどについて解説
やりがちな失敗|データリーケージと不均衡データ
データの扱いを誤ると、評価の数字そのものが当てになりません。データリーケージ(データリーク)は、本来知り得ない情報が学習側に混ざり込むことです。訓練データに検証データと同じ画像があれば当たって当然ですし、時系列で未来から過去を予測する分け方も典型例。検証時だけ精度が高く、本番で通用しません。
もう1つが不均衡データです。クラスごとの件数が偏っていると、モデルは多数派に引っ張られます。多数派から間引くアンダーサンプリング、少数派を水増しするオーバーサンプリング(SMOTEなど)で調整します。
まとめ
- 測るべきは汎化性能。データは訓練・検証・テストに分け、ホールドアウト法とk分割交差検証を使い分ける
- 過学習はバリアンスが大きい状態。正則化(L1=ラッソ/L2=リッジ)で抑える
- 正解率だけで判断せず、目的に応じて適合率・再現率・F値・AUCを選ぶ
よくある質問
Q. 検証データとテストデータは何が違いますか?
A. 検証データは調整中の精度確認に使い、テストデータは調整後の最終性能を一度だけ測ります。調整に使うと合わせ込みが起きるためです。
Q. 過学習と未学習はどう見分けますか?
A. 訓練データの精度が高いのに検証データの精度が低ければ過学習、どちらも低ければ未学習です。両方を並べて見るのが基本です。
Q. 適合率と再現率のどちらを重視すべきですか?
A. 目的次第です。見逃しの損害が大きい不良品検査や病気の検出では再現率を、誤検知のコストが大きい場面では適合率を優先します。バランスを見るならF値です。
- 前の記事: 強化学習の基本|報酬から学ぶAI
- 次の記事: ニューラルネットワークの構造
- シリーズ全33回の目次を見る



コメント