いのいち勉強日記

Turingで自動運転の開発をしています。京大でPhDをとりました。Kaggle Grandmasterです。

機械学習は直感的!分析的ではない!

f:id:sys-bio:20181012163214p:plain

Keras生みの親のFrancois ColletさんがTwitterで「機械学習は直感的だ!」とつぶやかれていました。

これを見て「なるほどな!!!」って思ったのでちょっと備忘録的にブログに書いとこうと思います。
 
 
まずツイートの中身ですが、簡単に訳すと…

多くの人がどうやらこういう風に考えているようだ。機械学習のアルゴリズムは分析的だと。モデルを使ってデータについて熟考して論理的で偏見のない推論をするのだと。
機械学習はその逆で直感的だ。やってるのはパターン認識だ。機械学習はシステム1であり、システム2ではない。

こんな感じだと思います。
 
ここで出てくるシステム1、システム2というのは、2002年にノーベル賞を取ったダニエル・カーネマンが考えたものです。彼は人間の思考モードをシステム1とシステム2に分けました。
 

システム1
自動的に高速で働き、努力はまったく不要か、必要であってもわずかである。また、自分のほうからコントロールしている感覚は一切ない。(自動的、速い、連想的、感情的)


システム2
複雑な計算など頭を使わなければできない困難な知的活動にしかるべき注意を割り当てる。一連の段階を踏み順序立てて考えを練り上げる。(努力を要す、遅い、意識的、規則的、客観的)

引用:http://bgeducation.blog.fc2.com/blog-entry-40.html


ダニエル・カーネマンと言えば、この著書が今でも人気ですのでさらに気になる方はどうぞ。
 



 
話が少しそれましたが、Cholletさんのこのツイートはモヤっとしてた部分をクリアにしてくれたそんな感じがありました。
 
さらに、


 
簡単に訳すと、

機械学習のモデルは、インプットからラベルまでの最短経路をとるんだ。そしてその選択は過去出くわした状況に基づいている。そう、まさに人間の直感のようにね。インプットからアウトプットまでまっすぐにマッピングしている。

そして、もちろん機械学習はすごく偏っているという傾向があるんだ。

 
 
つまり、いちいち分析して進むんじゃなくて、過去の経験からすでに出来上がったパスウェイを一直線に進んでアウトプットとしているよ。ってことだと思います。確かに言われてみれば分析的とは違うなって思いますけど、これまではこんなにスパッとは理解できてなかったなと気づきました。
「データ分析」って言葉と「機械学習」はセットで語られることが多いので、その辺もこれらの違いをあいまいにしちゃってた要因かなと思ってます。
 
 
そして、Cholletさんはここで「偏っている」、「Bias」という表現を使っています。これに対していくつか意見が出たようですが、それについてこのように答えています。 
 


 

返事を見てると、みんな「bias」って言葉に惑わされてるとわかったよ。ここでいう「bias」とは、パターン認識するときに因果推論ではなく疑似相関に基づいているってことさ。機械学習のモデルは、学習から分かった相関を全部使っちゃって、その相関の多くがまがいものってことがよくあるんだよ。

 
この最後の説明もそういうことかーってなりました。疑似相関ってのは、因果関係は全然ないのに相関してるってことです。
 
「機械学習は、因果は見ないで膨大なデータからパターンを認識しているだけだから、たとえ全然関係なかったとしてもある二つのものが同じ動きをしてたら、そこが重要視されちゃったりする」ってことをバイアスって呼んでるんだなと。
 
 
言われてみれば、これらのことは当たり前かもしれませんが、このツイートを見て頭が整理された感じがしました。そして、また機械学習をちゃんと勉強しよー!って欲が出てきました。Cholletさんの出された本も積読されてたんで、ちょっとずつコード書きながら読んでいこうって気がわいてきました!パラパラ見たけどGANとかまであって面白そう…よし、頑張ります。