目次
過学習とは
機械学習における過学習とは、訓練誤差は小さいにもかかわらず、汎化誤差(未知のデータを判定したときの誤差)が小さくならない状態をいいます。「オーバーフィッティング」や「過剰適合」とも呼びます。モデルが教師データセットにおけるパターンだけでなく、教師データそのものを学習しすぎてしまった状態です。過学習は、未知のデータを判定できない原因を作ってしまいます。
過学習の原因と回避法
AI(機械学習)を実装しようとする際に、過学習は誰もが直面する問題ですが、なぜ起きるのでしょうか。また、過学習を回避するためには、そのような分析手法があるのでしょうか。
過学習の原因はいくつか挙げられます。
1つ目は、重みの値が大きすぎることです。機械学習では、重みを小さい値に保つので、この場合は、汎化誤差を下げるために正則化(誤差パラメータのノルムによる正則化項を付け加えること)を使い、過学習を回避します。
正則化には、一部のパラメータの値を0にすることで、特徴選択を行う「L1正則化」と、パラメータの大きさに応じて0に近づけることで、汎化された滑らかなモデルを構築することができる「L2正則化」があります。L1やL2は、ノルム(移動距離)の種類のことをいいます。詳しくは、こちらの記事もご参照ください。
教師データの量が不十分でも過学習は起きます。画像を扱っている場合、データ拡張で比較的簡単にデータの不足を補うこともできます。大規模な機械学習プロジェクトの教師データでお困りの方は、当社の教師データ作成/アノテーションサービスについてお気軽にお問い合わせください。
他には、正則化(データの大きさを適切にスケーリングすること)やドロップアウト(ディープニューラルネットワークにおける、重みの更新の際に一定の割合でランダムに枝を無効化する手法)が過学習の回避法として挙げられます。サポートベクターマシン(SVM)の場合、特徴量の次元数が多いなら、カーネル法を使用することによって回避することも可能です。