体験!機械学習
まず、手始めにアマゾンで本を一冊買って体験してみました。
フリーソフトWekaを使用して、機械学習おおまかな流れを理解するというものです。
体験したのは、アンケートで好きなアイスを文章で入力してもらい、その種別をバー、カップ、バラ、その他といった風に分類するというものです。最初の200件については、答えを教えると、残りの2000件?はコンピュータが答えるというものです。人間なら残りの分類2000件なんてやってられるか!と言いますが、コンピュータなら一瞬で分類してしまいます。
ちょっと驚いたのは、WekaではなくMecabというソフト。日本語の文章は間をあけずに全部詰めてかかれるので、どれが名詞、助詞、動詞、、、といった分別をすることが必要となります。これをMecabというのでやってくれるのですが、これがすぐれもの。どうやって分けているのか、きれいに分けてくれます。アンケートのデータをこれに通して、品詞に分けてから処理をします。
Wekaというのは
こんな風に色々な処理のアイコンをつないで最終的なアウトプットを作成するというかんじです。このフローは教師つき学習では2つ、一つは機械に学習させる処理、もう一つは学習させた結果を使い実際のデータで判断をさせる処理となります。
これを応用すると教師なし学習ができ、勝手に勉強していくことに なりますが、これはもう少し先になりそうです。
現在、Microsoft Azureを使った企画学習にチャレンジしているのですが、やはり同じような画面で、色々な処理部品をフローにそってつないでいくというのが機械学習のシステムのようです。
例題に取り上げたアンケートがテキストなので、答えがバラエティに富んでいます。アイスの実、あいすの実、バニラ、がりがり君、グレープ、あまくないもの・・・とんでもない返事があります。これをMecabをとおしてみると、あいす の 実等に分割されるので、実が入っているとバラのアイスだと結論づけられます。グレープについては答えられません。この時使った統計理論は決定木(デシジョンツリー)というもので、学習時にアイスがあるかないか、もしあったら実があるか、あればバラのアイスだといったふうに答えます。これってみんなふつうに考えているプロセスですね。これをこんな複雑なツリーとしてコンピュータは覚えます。
これがデシジョンツリーと呼ばれるものです。
最終的な結果としては、CSVで出力され、Excelでみるとこうなります。
つまり、確率としてあらわされてきます。バラのアイスである確率、その他である確率はどのくらい。その中でもっとも高い確率のものを正解として選びます。
学習をした中でどのくらいの確率でその分類となっているかを示しています。
当然、教えた中にウソが入っているとダメ。教えてなければその他になってしまいます。たとえば、もなかについては教えていないので、その他になっていますが、学習時にモナカを最中として教えれば答えもそうなります。このあたりの調整が、いわゆるデータサイエンティストと呼ばれる人々の行う試行錯誤のことなのだろうなぁ、とおもいました。何度か試行錯誤するとかなり完璧なものができてくるかもしれません。
たとえば、上の例でチョコ、なのですが、当然その他が一番確率としては高いのですがそれ以外の分類でも0ではありません。これは現実に起きることで、チョコバーかもしれません。この辺で人間より正しいかも?と思わさせられます。
ただ、これではまだ教えたことを単に統計で分析して結果を出しているにすぎないですね。まあ、ここまでで機械も学習できるということはわかりましたが。