機械学習の弱点「過学習」

こんばんは。Chisatoです。
私自身、AIビジネスを始めて驚きの一つが「過学習」
実はAIにおいて超重要で、防がないといけないものなんです。
そもそもよくでてくる過学習とは何か?について、なるべく文系・非エンジニア目線で解説します。

過学習ってなに?

「過学習」を簡単にいうと、機械学習において、学習に使ったデータに対してはバッチリ正解できるけど、知らないデータに対しては全然当たらない。
つまり、学習データで学習しすぎて、汎用性がない状態に陥ることです。

学生の時に、過去問だけで学んで丸暗記した過去問がテストに出たら正解するけれど、実際に過去問以外の新しい応用がきかないテスト問題に出会った時は答えられない。社会適応力がないガリ勉君をイメージいただけると。

別の言い方では、オーバートレーニング・オーバーフィッティング・過剰適合等があります。

偏ったデータに対してモデルを合わせすぎる時に起こっていて、訓練データの量が少ないもしくは典型的でない、未知データに対してモデルが複雑すぎる場合が原因になります。

防ぐにはどうしたらいいの?

防ぐためのいくつかの技術があります。例をあげます。

正則化(Regularization)
複雑なものをなるべくシンプルにする技術ですね。
簡単にいうと、極端だと思われる意見は聞かないようにする感じです。非常識なことを言っている人がいるとして、全くその意見を反映しない・一部参考にする、というイメージです。

機械学習では重みを調整(チューニング)しているのですが、モデルを複雑にする重みにはその量に応じたペナルティを与えて、モデルが複雑にならないようにしています。

ドロップアウト
これは学習中に、意図的にランダムにニューロンを離脱(ドロップアウト)させることです。これにより、より汎用的な(学習データ以外でも通用しやすい)特徴を学習するようになります。
以下、黒魔術師とも言われています。


クロスバリデーション
データをいくつかに分けて、それぞれで学習した結果の総合評価をします。
例えば、用意したデータを例えば5個に分けて、1回目はそのうちの一つをテストデータ、それ以外を学習データとして、学習・評価します。
2回目は1回目と異なる別のデータをテストデータとして使い、3回目は1,2回目と異なるデータで評価をします。
そして、各回で測定した精度の平均を取ります。(以下参考イメージ


「AIは、ずっと学習させ続けるんだよね?」と多くのビジネスマンは思っていることが多いのですが、ずっと学習させすぎることはよくなく「過学習」は機械学習で精度を揺らがせる天敵になっています。

「過学習」が起きていないか?をAIビジネスでも常に見るのは非常に大事で、過去問だけでない応用テストが解けるAIを意識する人が増えれば幸いです。

では。

期待・サポートいただけると更に頑張っちゃいます!