AI Technology Community
アンダーフィットとオーバーフィットとは?
私たちは機械学習によって得られるモデルの汎化能力が比較的強いことを望んでいます。言い換えると、学習されたモデルが訓練サンプルでのみ良好に動作するだけでなく、新しいサンプルでも良好に動作することを期待しています。
通常、分類誤りのサンプル数が総サンプル数に占める割合を誤り率(error rate)と呼び、正確度(accuracy) = 1 - 誤り率となります。例えば、m個のサンプルのうちa個のサンプルが分類誤りであった場合、誤り率はa/mで、正確度は1 - a/mとなります。
一般的に、モデルの訓練データセット上での誤差を訓練誤差(train error)と呼び、テストデータセット上での誤差をテスト誤差(test error)と呼びます。テストデータが真のデータと独立同分布であると仮定すると、テスト誤差は汎化誤差(generalization error)の近似として用いることができます。もちろん、汎化誤差の小さいモデルを得ることが望ましいですが、事前にテストデータセットの様子がわからないため、機械学習アルゴリズムを使用する際には、あらかじめパラメータを固定せず、訓練誤差を低減するようにパラメータを調整します。この過程全体で、汎化誤差の期待値は訓練誤差の期待値以上となります。
モデルの性能を良好に保つ、つまり汎化誤差を比較的小さくするには、以下の2つの要素によって実現することができます:
1、訓練誤差を低減する。
2、訓練誤差と汎化誤差の差を縮小する。
これらの2つの要素は、それぞれ機械学習の2つの主要な課題:適合不足(underfitting)と過学習(overfitting)に対応しています。適合不足とは、モデルが訓練データセット上で十分に低い誤差を達成できないことを指し、過学習とは、訓練誤差と汎化誤差の差が大きすぎることを指します。
適合不足は比較的理解しやすいですが、過学習は理解しにくいかもしれません。ここでは形象的な例えを挙げます。学校で試験を受けるとき、ある人は問題を何問も解く戦術を取り、すべての問題を暗記します。しかし、問題が少し変わると、彼は解けなくなります。彼は非常に複雑に各問題の解法を覚えているが、普遍的な規則を抽象化していないからです。直感的に理解すると、このような状況は過学習に該当します。
次に、画像を通じて適合不足と過学習の違いを直感的に理解してみましょう。特徴量XとラベルYを含むデータセットがあります。簡単のために、特徴量を1つだけ考えることにします。ここで、3つの仮説関数を用いて同じデータをフィッティングし、以下の結果が得られます:
画像の内容を説明します:(左)線形関数を用いてデータをフィッティングしたモデルは適合不足を引き起こします —— データの曲率情報を捉えることができません。(中央)二次関数を用いてデータをフィッティングしたモデルは、未観測の点でも良好に汎化します。これは明らかな適合不足や過学習を引き起こしません。(右)高次の多項式を用いてデータをフィッティングしたモデルは過学習を引き起こします。
適合不足に比べて、過学習は実際の作業ではより一般的です。過学習が発生する原因は、以下のようなものがあります:
1、訓練データセットとテストデータセットの分布が一致していない。
2、訓練データセットのサイズとモデルの複雑さがマッチしていない。訓練データセットのサイズがモデルの複雑さより小さい。
3、サンプル内のノイズデータの干渉が大きすぎて、モデルがノイズの特徴を過度に記憶し、真の入出力間の関係を無視してしまう。
リンク:https://www.jianshu.com/p/7f4920d4d7b5
171
item of content
- 575hits
- 0replay
-
1like
- collect
- send report