やったことないことやりたくなって機械学習を選んだんですが、迫り来る数式や見たことのない記号、しかもそれらが英語で解説されるというワンダーランドにいます。ど文系なりに「機械学習って何」を少しずつまとめられそうなのでちょっとメモがてら書いてみます。
書かないこと
理論と実践
まず、パターンありき
ツバメが低空飛行すると雨が降るというのは有名な観天望気ですが、要は機械学習ってこういうことだよね、というのが一つ目の理解です。
おわり
うそ
で、人間の目線でやるとデータの量とかも荒いし客観性もないから、もうちょとつきつめようよ、もっというと「こういう条件でこういう結果を予測できる」まで持ってこようよ、という話ですね。
次にデータ
で、データです。ツバメが高いところを飛んだって雨が降ることもあるし、低いところをどんだけど晴れることもあるでしょう。でも、ツバメが飛んだ高さと降水量のデータをたくさん集めるのです。で、プロットすると、なんだか相関がありそうに見えます。
「ツバメの飛行高度と降水量が反比例している」
ように見えるかもしれません。
つまり、降水量=何か係数*ツバメの飛行高度+何か基準値
みたいな式が期待できます。で、この何か係数、とか何か基準値を自動的に探しましょう、というのが機械学習です。
どうやって探す?
探し方は、「過去のデータをひたすら分析して、係数や基準値を変えていって、どうやらこれが一番データを表しているぞ!っていう値のセットが出るまで頑張る」
という感じですね。なんか泥臭そうですが、ここにいろんなアルゴリズムやベストプラクティスが絡んできますし、機械学習を学ぶ上での重要なポイントだと思っています。
式ができたら
例えば、「ツバメが高度80cmを飛んだ時の降水確率」が予想できます。だって、何か係数と何か基準値のそれっぽいのが出てくるから。
誤解していたこと
機械学習で過去の市場データを分析すると、明日のストップ高銘柄を予想できる!と思っていましたが、そんなんできたら、市場がクソゲーになるし、今では「こういう条件を式に当てはめたらどういう株価が予想できるか」ということだと理解しています。この辺に文系の真骨頂がありますね。
気をつける点
まず、学習用のデータの質が大事ですね。一見するとツバメの飛行高度と降水量に何か関係があるように見えるかもしれませんが、たまたまそう見えただけで実は無関係だったら予想した値もあてになりません。そんなことより季節とか気圧配置とか気温湿度とか、そういったものを集めた方がいいような気がします。でもツバメ・・・きになるなあ・・・
機械学習の弱点
これまでにないケースに弱い。AlphaGoでも人間がこれまでにない手を打ったら総崩れしたそうですし、確かに、これまでにないケースに対する予想はうまくできなそうです。多分、火の鳥未来編のマザーコンピュータも機械学習で動いているでしょうから、いつか人類は機械学習で発達したコンピュータに支配され、滅ぼされるんです。怖いですね。せめてマザーコンピュータに核兵器は搭載しないようにしておきたいところです。