AI

モデルの評価と過学習|精度を正しく測る

AI

訓練データでの精度が高いモデルが、良いモデルとは限りません。そこだけを見ていると失敗します。

こんにちは、zawato(@zawato7)です!

本記事はディープラーニング入門ロードマップの第8回です。

この記事でわかること
  • データを訓練・検証・テストに分ける理由と分け方
  • 過学習が起きる仕組みと、正則化による抑え方
  • 評価指標の使い分けと、データリーケージの落とし穴

 

 

なぜデータを分けるのか

手元のデータを、すべて学習に使ってはいけません。目的は手元のデータを当てることではなく、まだ見ぬデータを当てることだからです。この対応力を汎化性能と言います。過去問の答えを丸暗記しても、本番の問題は解けないのと同じです。

そこでデータを分けます。訓練データで学習させ、検証データで調整具合を確認し、テストデータで最終性能を測ります。検証データの精度を追い続けるとそこに合わせ込むため、一度も触れないデータを残します。

分け方やり方と向いている場面
ホールドアウト法7割を訓練、3割を検証のように単純分割する。データ量が十分な場合に有効
k分割交差検証データをk個に分け、検証役を入れ替えながらk回学習する。データが少ない場合に有効

 

 

過学習と、それを抑える正則化

過学習(オーバーフィッティング)は、訓練データに合わせすぎて未知データの精度が落ちる状態です。現実のデータには誤差が混ざっており、そこまで再現すると本来の傾向から外れます。逆に単純すぎて傾向を捉えられない状態が未学習(アンダーフィッティング)です。

この関係がバイアスとバリアンスのトレードオフです。バイアスは単純すぎて生じる誤差、バリアンスは複雑すぎて生じる誤差で、過学習はバリアンスが大きい状態。同時には小さくできないため、ちょうどよい複雑さを探します。その調整役が正則化で、複雑さに罰則を与えて引き戻します。

手法罰則の内容と効果
L1正則化(ラッソ回帰)係数の絶対値の和に罰則。一部が0になり説明変数を減らせる
L2正則化(リッジ回帰)係数の二乗和に罰則。係数が極端に大きくならず滑らかになる

「ラ」ッソがL1、「リ」ッジが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値です。

 

 

コメント