少し前、NHKで「人間って何だ?」というAI(人工知能)関連の番組をやっていました。その中で出てきた「過学習」の概念が面白かったんですよ。
AIに学習させるときにはディープラーニングという方法が用いられます。これは、AIに大量のデータを読み込ませ、分析させることで、学習をさせる方法。複雑な状況から結論を引き出すのが得意で、ものによっては人間以上の能力を発揮することもあります。
例えばAIに「イヌとは何か」を認識させるためには、たくさんの犬の写真を読み込ませ、判断させます。それに対して正解・間違いのフィードバック(結果を見ての修正)を何百万回も繰り返すうち、AIは自分で必要な条件を覚え、犬の画像を見分けられるようになります。
・過学習…丸覚えは使えない
AIに学習させる上で問題になるのが「過学習」です。わかりやすく言うと、データを丸暗記しすぎて、応用力がなくなること。
例えば、データの中に黒い柴犬の画像があったとします。AIはその画像を分析し、「毛が生えている」とか「牙がある」といった犬の判断に重要な特徴を読み込みます。しかし同時に「色が黒い」とか「耳が立っている」というような、重要でない特徴をも読み込むでしょう。
もしAIが、重要でない情報まですべて使って判断したら、ゴールデンレトリバーは、黒くない、耳が立っていない、という理由で「犬ではない」と判断されてしまいます。
ディープラーニングを成功させるには、どの情報が重要で、どの情報が重要でないか、AIがわかるようにプログラムすることが必要。研究者は、その対策に頭を絞るのだそうです。
・正解率を高める試行錯誤
では、どうやって重要性を認識させるか。代表的な方法の一つが「ドロップアウト」です。大まかに言うと、判断に使っている特徴のうち、いくつかをわざと使わなくすること。
たとえばA、B、C、Dという4つの特徴を判定に使っているとします。Aを使うのをやめて、B、C、Dだけで判断を行い、それでも正解率が高ければ、Aは重要ではないとわかります。逆にAを使わずに判断を行って正解率が下がれば、Aが重要だとわかりますね。
こうして使う情報、使わない情報をランダムに入れ替えながら試行錯誤することで、より正確な判断ができるようになってくるというわけです。
・上達のための試行錯誤とフィードバック
ディープラーニングは人間の学習をもとにしたものですから、こうした原則は人間でも同じです。丸覚えルーチンワークでは、何年繰り返しても上達しませんし、試行錯誤していても、結果が出るまでの間隔が長ければ、学びは遅くなります。
これは技術側の問題でもあって、技術を要素分解しやすい技術ほど、またフィードバックが早い技術ほど、学びやすいことを示しています。
ちなみに、TAM関節リリースは、要素の分解が明確で、結果がすぐ出る技術です。…と最後に我田引水(笑)