overfitting とは、(Deep Learning を適用する際に構築する)ニューラルネットワークの複雑さよりもサンプル数が少ないと、たまたまサンプルの中に存在した本質的でない特徴を判断基準に使うモデルが作られてしまうことです。
例えば、偶然にも「ランクが一番低い」と判断されたきゅうりの8割に「ちょうど頂点から3センチのところに棘がある」という特徴があった場合、その特徴をランクの低さと結びつけられるモデルが作られてしまい、人間であればトップランクと格付けするだろう質の高いきゅうりを、たまたま「頂点から3センチのところに棘がある」を理由に、低くランク付けしてしまうようなケースです。
人間であれば(もしくは人間が作ったアルゴリズムであれば)、太さが均一、まっすぐ、色が緑、ツヤが良いなどの「判断基準」を定めた上で、ランク付けをしますが、Deep Learning の場合、単にサンプルデータとその結果だけから判断基準のためのモデル(ニューラルネットワーク上の重み付けパラメータの集まり)を作り出すため、「ちょうど頂点から3センチのところに棘がある」ような人間だったら決して判断基準にしないような特徴を重視してしまうケースがあるのです。
データの量が十分に多ければ、その手の「本質的ではない」データは平均化されて消えてしまうのですが、データの量が(ネットワークの複雑さに対して)不十分だと、その手の「たまたまサンプルの中にあったデータ」に惑わされてしまい、それに合わせたパラメータをこしらえてしまうことがあり、それを Overfitting と呼ぶのです。
image by: Shutterstock
著者/中島聡(ブロガー/起業家/ソフトウェア・エンジニア)
マイクロソフト本社勤務後、ソフトウェアベンチャーUIEvolution Inc.を米国シアトルで起業。IT業界から日本の原発問題まで、感情論を排した冷静な筆致で綴られるメルマガは必読。