11
13

More than 5 years have passed since last update.

【機械学習】過学習の回避方法

Posted at

概要

機械学習を行う際に、問題となる過学習について、取り上げてみます。

機械学習とは

  • 人工知能のうちの一つで、機械に任意のデータ(画像データ、売上高、天気など)をINPUTして、分類、予測を学習します。その学習結果を使用する事で、テストデータをINPUTすると、分類結果、予測結果をOutputすることが出来ます。
  • この際、機械にプログラミングで分類、予測させるのではなく、機械が学習アルゴリズムを使用して、機械自らが分類、予測アルゴリズムを学習します。

過学習とは

  • 機械学習で学習させすぎた際に弊害が発生します。
  • 任意のデータをINPUTして学習させますが、学習させすぎるとその学習データに特化しすぎてしまい、幅を持たせたデータの分類結果、予測結果が間違ったものとなってしまいます。
  • 例えば、「犬」のテストデータを与えて、画像解析させたケースを考えて見ます。
    • このケースで、テストデータを学習させすぎると「犬」の細かい特徴まで捉えてしまいます。(過学習)
    • 結果、何かのテストデータをINPUTして判定させたときに、細かい特徴の差異を判断してしまい、正しい結果を出せなくなってしまいます。
  • よって、機械学習させるときに、過学習を防ぐ考慮が必要となります。

過学習の回避方法

回避方法① ホールドアウト法

  • 学習用データを7:3くらいの割合で訓練データと評価データに分けて学習させる事によって、精度をチェックする。

回避方法② K-分割交差検証

  • 学習用データをk個に分割して交互に訓練データ、評価データに分けて学習させる事によって、精度をチェックする。
  • 例えば、kを10とした場合
    • 1,2,...10とデータを分割。
    • 1を検証データ。1以外を訓練データとして学習
    • 2を検証データ。2以外を訓練データとして学習
    • ...
    • 10を検証データ。10以外を訓練データとして学習

回避方法③ 正則化

  • 学習用データの内、複雑なデータ、滑らかでないモデルに罰則を与えて、重みを下げる事です。言い換えると、学習用データの内、他と余りにもかけ離れたデータは無視、または重要度を下げて学習モデルを複雑にしない、滑らかにするという事です。
  • 機械学習においては、主にL1正則化、L2正則化が使用されているようです。

L1正則化(Lasso回帰)

  • 他と余りにもかけ離れたデータの重みを0にする事で、学習用データから削除するものです。

L2正則化(Ridge回帰)

  • 他と余りにもかけ離れたデータの大きさに応じて0に近づけて、学習結果を滑らかにするものです。
11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13