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