スクリーンショット_2018-01-26_22.30.29

機械学習から考える人間学習 アンサンブル学習編

たくさんの台数のパソコンがあった時に、比較的簡単に将棋プログラムを強くする方法に「合議」という手法がある。合議というのは、複数のPCでそれぞれ独立に探索をさせて、その結果を多数決を取ったりなどする手法だ。これだけで一台のPCに対して、合議側が勝率6割〜7割に到達したりする。

一般に機械学習をしたものをさらに性能をあげる手法としては、アンサンブル学習というのがあります。今話した合議もアンサンブル学習の一種と言えそうです。ポイントは複数の機械学習の出力を"混ぜる"のですね。多数決で混ぜるのが一般的ですが、色々な手法があります。前に話したXGBoostもそれ自体、アンサンブル学習がベースになっています。

さて、このアンサンブル学習なぜうまくいくのでしょうか?といっても賢明な読者のみなさんはなんとなくわかると思います。現代社会において、投票行動がうまくいくと仮定していることと一緒です。みんなそれぞれ考えて行動を選択すれば、間違える確率が少なくなるというわけです。

でもアンサンブル学習も完全では無いわけです。それにはいくつか理由があるのですが、今日はそれをちょっと検証していきたいと思います。

①個々の結果が正しくない

まあ、それはそうですよねという感じですね。一個一個の挙動が正しくなければ、全体を統一してもあまり精度が高くならないですよね。一個一個が強い方が正答率も上がりやすいですしね。

②間違え方が独立でない

これは少し難しい概念です。最初の将棋の話に戻して言えば、同じプログラムを合議させれるよりも別々のプログラムで合議させて方が良いです。なんでかというと、別々のプログラムの方が"違う"間違え方をするからです。別の言い方をすると投票行動には多様性が大事ということです。良い判断を下せる集団があっても、同じように間違える集団というのはアンサンブルには向いてません。データサイエンスの分野ではDeep LearningとXGboostのアンサンブルがよく使われます。これはそれぞれ別の間違えた方をするプログラムだからですね。

③投票に失敗した側がやる気なくす

これは完全に人間の場合だけの問題なのですが、自分たちの意見が採用されないと人間やる気無くしますよね。これ結構大問題です。どうすればいいでしょうか・・

アンサンブル学習は機械学習のなかでも強烈な概念です。現代では様々なレベルでアンサンブル学習やそれに類することが行われています。個々の機械学習の結果を調停するための機械学習みたいなことも行われており、現代の機械学習の複雑さを表していますね。

この記事が気に入ったらサポートをしてみませんか?