■人工知能

人工知能の作り方【機械学習における過学習とは】

■人工知能

 こんにちは黒部です。
今回は機械学習をする際に起こる過学習という現象について説明します。記事のレベルは人工知能開発の初心者に合わせて簡単にしてあります。過学習は教師あり学習によく起こりますが、奥が深いのでエッセンスが伝わることを本記事の目的とします。

本記事の目標とレベル

目標 :過学習の概要を理解する
レベル:★★☆☆☆

人工知能の作り方【機械学習における過学習とは】

 まず、人工知能を作るときにデータをコンピュータに繰り返し学習させますが、この時に過学習が起こることがあります。

 過学習とは、データを学習させすぎてしまうことで、学習させたデータ以外には正しい答えをだせなくなる現象をいいます。

 例えば人間を検知する人工知能を作成しようとした場合に、眼鏡をかけていない人の画像ばかりを使って過剰に学習させすぎた結果、眼鏡っ子を人間だと判断できなくなるといったことになります。

 図で説明します。
過学習とはこのように人工知能のモデルが過剰に学習データに適合しすぎた状態です。オーバーフィッティングや過剰適合ともいわれます。学習データに人工知能のモデルがピッタリフィットしていて、学習させていない未知のデータとの乖離が大きくなる可能性があります。これでは分類や予測ができない精度の低い人工知能といえます。

 過学習のイメージ説明はこれだけですが、もう少し深堀して過学習を回避する方法を説明します。

過学習させない方法

過学習の原因は主にこの2つです。
①学習に用いるデータ量が少ない
②学習データの特徴が偏っている
これらを回避する具体的な方法を4つ紹介します。

過学習させない方法その1 学習データ件数を増やす

 過学習の原因①②が合わさると、偏ったデータばかりを学習してそれ以外のデータの学習量が足りないといったことになります。

 これに対し単純な対処方法ですが、学習データ件数をさらに増やすことです。学習データを増やすことでより正確にデータの傾向を掴めるようになっていくのです。

 しかし私の経験から、学習データとはなかなか増やすのは難しいです。その為、手元にあるデータを加工して学習データを増やすといった方法もあります。例えば画像データであれば明度や彩度を変えたりして少し傾向を変えたデータを増やすという方法が有効なこともあります。

過学習させない方法その2 正規化

 過学習の原因②の背景として、学習データのうち異常なデータの割合が高く、異常なデータをメインに人工知能モデルに反映してしまうことがあげられます。

 難しい説明は抜きにして、正則化は簡単に言うと学習しなくていいデータを無視することで過学習を防ぐ方法です。こちらは良く使われる過学習の回避手法です。

過学習させない方法その3 交差検証 読み飛ばしOK

 交差検証は手元の学習データを分割して複数のデータセットに分けます。その一部をまず解析して、残る部分でその解析のテストを行い、解析自身の妥当性の検証・確認に当てる手法です。

 正常に学習させていてる場合はデータセットAとBのどちらに対しても予測精度はそこそこですが、過学習の場合はデータセットAに対しては予測精度が高いのにBに対しては予測精度が悪くなります。こうして機械学習を行っていくことで過学習を回避します。

過学習させない方法その4 情報量基準(AIC/BIC) 読み飛ばしOK

 情報量基準とは統計モデルの良さを評価するための指標で、統計学の世界では非常に有名な指標です。こちらも簡単に解説します。
 機械学習を行う際に、どんどん学習していくと次第に学習データに対して人工知能の精度がフィットしていき、エラーが減ってきます。しかしこれは本当に良いことなのかと、図のようにぐねぐねと曲がって学習データにフィットしていおり、過学習なのではという疑問がでます。

 この疑問を解消するのが情報量基準であり、赤池情報量基準(AIC)とベイズ情報量基準(BIC)があります。この二つについては今回解説しませんが言葉だけでも覚えておくとよいでしょう。

 過学習は人工知能を作る際に初心者が良く陥る失敗です。これらの対処法があることを本記事で覚えておくだけでもまずは有益だと思います。

おわりに

 以上が人工知能の作り方【機械学習における過学習とは】の解説でした。実際に機械学習をする際にはこれを気を付けないと使い物にならない人工知能が出来上がることがありますので、よく覚えておくようにして下さい。