ハシカケ-実現したいことから学べるプログラミングサイトプログラミングを実現したいことから逆算して学べるサイトです。コピー2019.09.20機械学習とは何か?について以前解説しましたが、その機械学習にとってジレンマともいえるのが、『過学習』という問題です。「学習したデータは正確に予測できるけど、未知の知らないデータに対しては正解を出すことができない」現象です。この過学習の状態になると実際の運用には全く使えなくなるので注意しないといけません。ここでは、過学習の具体的な例とその過学習を解消するいくつかの方法について解説していきます。learning、略してML)とは何でしょうか?ざっくり言うと、「コンピューターを使って、人間の脳のような学習能力を再現しよう」という技術です。英語で「overfitting」(過剰適合)ともいいます。その名の通り、過学習=過剰に学習データに適合しすぎた状態と覚えておいてください。実際に過学習の例を紹介します。気温とアイスの売り上げの相関関係を回帰予測する機械学習モデルです。1下の図は学習データとテストデータも反映した一般的なモデルです。画像にある赤線が、AIが学習データから学んだ法則「モデル」になります。こちらは、学習データに依存しすぎず、ちゃんと予測ができています。2下の図は学習データだけを反映した『過学習』モデルです。モデルが学習データに寄りすぎて、未知のデータとは外れてしまっていますね。学習データだけには正確ですが、それ以外のデータでは役に立ちません。学習データについて学習しすぎた実際には役に立たない過学習モデルとなってしまっています。学習データを重視しすぎることで、どのような不具合が起こるのでしょうか。過学習の直接的な原因は「学習しなくていい特徴を学習してしまうこと」にあります。「動物の画像に対して、その種類を判別する」という機械学習をさせるとします。学習データでネコが鈴をつけていた場合、「鈴をつけている動物=ネコ」という間違ったパターンを学習をしてしまうことがあります。すると、鈴をつけている犬の画像が出てきても、ネコだと判断してしまうのです。このように間違ったモデルを学習してしまった状態が『過学習』です。『過学習』を防ぐ方法は、学ぶべきデータだけ学習させること機械学習の『過学習』を防ぐには、いくつかの方法があります。共通しているのが、学ばなくていいデータを学ばせずに、学ぶべきデータを学ばせることです。パターンを見つけるため『学習データを増やす』まず1番は『学習データの量を増やす』ことです。学習データの量が少ないと、AIがデータの傾向を学習できていないことがあります。1の画像は、4個のデータをまとめたグラフです。この4個のデータだけを見ると、右肩下がりのグラフだと学習できますね。2の画像は、1に8個のデータを加えた、12個のデータのグラフです。データを増やしたところ、実は右肩上がりのグラフだったことがわかりました。1の状態では、学ぶべきデータを学習できていなかったことになります。多くのデータを学ばせることで、学ぶべきデータを学習させようという方法です。極端なデータは無視させる『正則化』つづいては『正則化』という方法です。簡単にいうと、「学習しなくていいデータを無視すること」です。『過学習』の状態だと、例外のような極端なデータも学習して、モデルに反映してしまいます。すると、極端なデータに適合した結果、一般的なデータに対応できなくなってしまうのです。『正則化』では、学習しなくていい極端なデータを無視するように調整します。モデルの形が複雑になりすぎないように、ギプスみたいに矯正してあげるイメージです。1のグラフは、正則化が強すぎるケースです。極端なデータを無視することで、直線のようなモデルになりました。明確に右肩上がりとわかるモデルですが、わずかな例外も許さないので、汎用性が低いです。2のグラフは、正則化が弱すぎるケースです。極端なデータにも適合した結果、ぐにゃぐにゃで法則の分からないモデルになりました。絵に描いたような『過学習』のモデルになっていますね。3のグラフは、正則化が丁度よいケースです。極端すぎるデータだけを無視することで、ある程度の汎用性はもったモデルになりました。右肩上がりという法則は汲みつつ、多少の例外にも対応できる幅を持っていますね。偏ったデータをシャッフルする『交差検証』3つ目は『交差検証』です。これは偏った学習にならないように、「学習データをシャッフルする」ことです。機械学習では、学習データで学習して、テストデータで検証を行います。1回の学習では、学習するべきデータを学習できていないかもしれません。与えられたデータの中でも、簡単なデータと難しいデータがあったとします。機械学習では、これを学習データとテストデータに分けて、学習と検証を行います。難しいデータを学習しているので、AIは検証のテストデータも解くことができますね。簡単なデータしか学習していないので、AIは難しいテストデータを解くことはできません。そこでデータを何回もシャッフルして検証することで、偏った学習を防ぐことができます。さまざまなデータに触れる機会を作って、難しいデータを学習できるようにするのです。まとめここまでが過学習の解消法です。過学習という現象は機械学習をやっていると頻繁ではないですが、遭遇すると思います。データの扱い方を変えるだけで結果が大きく違ってくるので、気を付けていきたいところです。言うと、「コンピューターを使って、人間の脳のような学習能力を再現しよう」という技術です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ハシカケとは?Hashikakeハシカケは、改善したい、効率化したいなどの実現したいことからプログラミングを学ぶことができるサイトです。ハシカケ-実現したいことから学べるプログラミングサイト.ホーム検索トップサイドバーハシカケとは?Hashikakeハシカケは、改善したい、効率化したいなどの実現したいことからプログラミングを学ぶことができるサイトです。偏ったデータをシャッフルする『交差検証』まとめタイトルとURLをコピーしました。