2023.06.05

過学習とは

過学習とは学習データに過剰に適合し未知のデータに対する汎化性能が低下する現象のことです。過学習が発生してしまうと、学習済みのモデルが正確に予測をできなくなるため、機械学習において重要な問題となります。

過学習が発生するのは、モデルがサンプルデータのトレーニングが過剰になっている場合や十分な学習をしていない場合が一般的です。過学習を防ぐためには、モデルをシンプルにしたり、学習を増やしたり、正則化をおこなったりするなどさまざまな方法があります。

過学習とは

過学習とは、機械学習において学習用のデータセットに対してモデルが複雑すぎて過剰に適合し、訓練データには高い精度でフィッh2hても未知のデータに対しては精度が低くなる現象のことです。

過学習が発生する原因としては次のようなものが挙げられます。

  1. 学習データ数が少なすぎる
  2. モデルが複雑すぎる
  3. 学習アルゴリズムのパラメータが適切でない

例えば、モデルが学習データに完全にフィットするように複雑化された場合、過学習が発生しやすくなります。また、学習アルゴリズムのパラメータを設定する際に、過学習を引き起こす可能性のある過剰な学習をおこなってしまうこともあります。

過学習を放置して起こること

過学習が発生していることに気が付かないと、予測モデルを最新の情報にアップデートすることができません。そのため、精度が低いモデルばかりを増やすことになり、悪循環となるため注意が必要です。モデルを作ったあとはそのまま放置せずに、検証したうえで問題点があればその都度改善するといったサイクルを作ることで悪循環にはまりにくくなります。

データの種類

検証用データや学習用データ、ラストデータといった3種類のデータをわけておくことで、過学習を防止することが可能です。それぞれのデータには役割があり、前もって準備をすることで予測モデルを作ることができます。

検証用データ モデルを改善するためのデータ
学習用データ 予測モデルを作るためのデータ
ラストデータ 最終的な確認をおこなうデータ

学習用データと検証用データをなんども活用しながらモデルの精度を上げていきます。予測モデルが出来上がった時点で最終的にラストデータを使って確認をして実際の現場で使うのが一般的です。

過学習を防止する方法

過学習を防止するためには、モデルにおける学習できるパラメータの数を少なくすることが一般的ですが、ほかにもさまざまな方法が挙げられます。機械学習を活用するうえで、過学習であるかどうかを把握し、原因の解明や適切な対策などが常に求められます。

ホールドアウト法

ホールドアウト法は、評価を検証用と学習用のデータに分けることによって別々にモデルを評価する方法です。すべてのデータを分けたあと、学習用のデータで予測モデルを作ります。検証用のデータを入力したものと予測モデルを比較することで予測精度をすることが可能です。

簡単に実装できる以外に、コンピューターに負担がかからないことも特徴です。そのため、データ数が多い場合はスペックが十分でない場合に向いています。しかし、検証データと訓練データの分割が1通りだけであるためデータの傾向が偏ってしまう点に注意が必要です。

交差検証法

交差検証法は学習用データと検証用データを分割する手法の1つですが、分割方法が異なる点が特徴です。元のデータをランダムにデータセットに分割します。検証用データと学習データにわけてモデルの構築をおこないます。この手順を、すべてのデータセットが検証用データになるまで繰り返します。テストデータ間に重複がないため、ホールドアウト法と比較してより信頼性が高いデータを得られることが一般的です。しかし、膨大なデータ量に対処する場合は時間がかかるため注意が必要です。

交差検証法はホールドアウト法と比べてコンピュータに負担がかかります。そのため、データ数が多すぎる場合は計算に時間がかかりすぎる場合があるため、ホールドアウト法を活用した方がよいケースもあります。

モデルの簡素化

シンプルなアルゴリズムを使用することで、必要最低限のパラメーターでモデルを構築することが可能です。十分なデータがあればシンプルなアルゴリズムでも正確な予測が可能です。このほかにもモデルのトレーニングにおいて、データセットをトレーニング、検証、テストの3つに分割することで過学習を回避しモデルの正確性を高めることができます。

正則化

正則化とは、複雑なモデルをシンプルなものに変えるための数学的手法です。モデル内のパラメーターの値が大きくなりすぎることを防ぎ、パラメーターの影響を抑えます。モデルが学習するパターンを絞り込んで、未知のデータに対する予測精度を高めることが可能です。

十分な学習量を確保

学習データ数を増やすことで、より汎用的なモデルを学習するおとが可能です。過学習が起こると、AIが学習したデータに対しては高い予測精度を示すことができますが、それ以外のデータに対しては予測が困難になります。十分なデータを使用しない場合、AIの予測能力は制限され、正確なデータ分析を実現できないため適切な量のデータを集め、AIに学習させることが重要です。

交差検証

機械学習で過学習を回避するために、データを検証用と学習用に分割することが重要です。学習用データは、未知のデータに相当するので、訓練に使われていないデータを使ってモデルを評価することができます。交差検証という手法では、データを複数のグループに分け、2つのグループを学習用に使い、残りを検証用に使います。

これを複数回繰り返すことで、モデルの汎化性能を評価します。また、学習中にモデルの性能が向上しなくなった場合、学習を中断することで、過学習を回避できます。過学習を回避することで、未知のデータに対する予測精度を高めることができます。

アンサンブル方式

アンサンブル学習とは、いくつかの分類子を組み合わせ、予測結果を集計して最終的な予測をおこなう方法です。バギング(Bootstrap Aggregating、複数のモデルを並列に組み合わせる方法)とブースティング(boosting、予測データ分析のエラーを減らす方法)という2つのアンサンブル方法がよく使われます。バギングでは、トレーニング・セット内のランダムなデータサンプルが置換によって選択されます。

そのため、同じデータが複数回選ばれることもあります。選ばれたデータサンプルから複数のモデルを構築し、それらを個別にトレーニングして予測をおこないます。そして、それらの予測の平均値または多数決で最終的な予測を算出します。バギングは、ノイジーなデータセットで使用され、バリアンス(Variance、モデルの能力が足りないことにより発生する誤差)を小さくするために役立ちます。

まとめ

過学習とは、学習時に使ったデータに過剰に適合することにより汎化性能がなくなってしまう現象です。過学習が進むことによって、未知のデータ分析を正しくできなくなる場合があります。機械学習において過学習が起きる原因として、学習データが足りない場合やデータが偏っている場合などが挙げられます。

過学習が進むと記録していないデータに対して参考にならなくなってしまいます。過学習を防ぐためには、モデルが過学習になっていることを把握することがまず求められます。過学習になっている要因を明確にして、それぞれに必要な対策をすることが必要です。

一覧に戻る

関連コラム