学習曲線とは
機械学習における学習曲線とは、trainデータ、validationデータそれぞれにおける学習時のパフォーマンスをプロットしたグラフのことである。
一般的な学習曲線のグラフでは横軸がepoch数、縦軸がlossまたはaccuracyとなっている。
この学習曲線を観察することで学習がうまくいっているか否か、またうまくいかない場合には何が原因かを大まかに把握することができる。
ここでは、よくある学習曲線の形状と、そこから推測されることを説明する。
Example 1: Underfitting
特徴
- train lossが平坦な線を示す。
- もしくは、train lossが収束せず減少し続ける。
主な原因とその対策
-
複雑な問題に対して単純なモデルを使用している。(画像分類にロジスティック回帰を用いるなど)
→ アンサンブル学習を採用したり、ニューラルネットワークなどのより複雑なデータを扱うことのできるモデルに変更する -
そもそも、学習データに共通するパターンが存在しない。
→ データセットの定義方法を変える
Example 2: Overfitting
特徴
- train lossが減少し続ける。
- valid lossが途中から上昇し始める。
主な原因とその対策
-
単純な問題に対して複雑なモデルを使用し、データからノイズを拾ってしまっている。
→ データセットに合わせた適切なモデルを選択する。
→ DLを使用している場合はDropout層を追加したり、weight decayを設定する。 -
データセットの数が不十分で、モデルがパターンを認識できていない。
→ データ数を増やす。 -
データの量に偏りがある。
→ UndersmplingやOversamplingなどを用いて、データを均一にする
Example3: Unrepresentative Train Datasets
特徴
train loss, valid loss どちらもスコアが小さくなっているにもかかわらず、両者の間に大きなギャップがある。
主な原因とその対策
- validationデータに対してtrainデータの数が少ない。
→ train dataの割合を増やす。
→ そもそものデータが少ない場合には、データの水増しを行う。
Example4: Unrepresentative Validation Datasets
特徴
train loss は収束しているように見えるが、valid loss は train loss の値の周辺でノイジーな動きをしている。
主な原因とその対策
- trainデータに対してvalidationデータの数が少ない。(Example3の逆)
→ validationデータの割合を増やす。
→ そもそものデータが少ない場合には、データの水増しを行う。
Example5: Good Fitting
特徴
- train loss, valid loss ともに低い値で収束している。
- 回数を重ねるにつれて両者のギャップが小さくなっている。
【参考】
How to use Learning Curves to Diagnose Machine Learning Model
Learning Curve to identify Overfitting and Underfitting in Machine Learning