Keras生みの親のFrancois ColletさんがTwitterで「機械学習は直感的だ!」とつぶやかれていました。
Many people believe that machine learning algorithms are analytical -- that they ponder over the data available and do logical, unbiased reasoning using some internal model.
— François Chollet (@fchollet) 2018年10月11日
They're the opposite of that: they're intuitive. They do pattern recognition. They're System 1, not 2.
これを見て「なるほどな!!!」って思ったのでちょっと備忘録的にブログに書いとこうと思います。
まずツイートの中身ですが、簡単に訳すと…
多くの人がどうやらこういう風に考えているようだ。機械学習のアルゴリズムは分析的だと。モデルを使ってデータについて熟考して論理的で偏見のない推論をするのだと。
機械学習はその逆で直感的だ。やってるのはパターン認識だ。機械学習はシステム1であり、システム2ではない。
こんな感じだと思います。
ここで出てくるシステム1、システム2というのは、2002年にノーベル賞を取ったダニエル・カーネマンが考えたものです。彼は人間の思考モードをシステム1とシステム2に分けました。
システム1
自動的に高速で働き、努力はまったく不要か、必要であってもわずかである。また、自分のほうからコントロールしている感覚は一切ない。(自動的、速い、連想的、感情的)
システム2
複雑な計算など頭を使わなければできない困難な知的活動にしかるべき注意を割り当てる。一連の段階を踏み順序立てて考えを練り上げる。(努力を要す、遅い、意識的、規則的、客観的)
ダニエル・カーネマンと言えば、この著書が今でも人気ですのでさらに気になる方はどうぞ。
話が少しそれましたが、Cholletさんのこのツイートはモヤっとしてた部分をクリアにしてくれたそんな感じがありました。
さらに、
Machine learning models take the shortest path from input to label, based on previous situations they've encountered -- just like human intuition. Straight input-to-output mapping.
— François Chollet (@fchollet) 2018年10月11日
And of course, they tend to be highly biased.
簡単に訳すと、
機械学習のモデルは、インプットからラベルまでの最短経路をとるんだ。そしてその選択は過去出くわした状況に基づいている。そう、まさに人間の直感のようにね。インプットからアウトプットまでまっすぐにマッピングしている。
そして、もちろん機械学習はすごく偏っているという傾向があるんだ。
つまり、いちいち分析して進むんじゃなくて、過去の経験からすでに出来上がったパスウェイを一直線に進んでアウトプットとしているよ。ってことだと思います。確かに言われてみれば分析的とは違うなって思いますけど、これまではこんなにスパッとは理解できてなかったなと気づきました。
「データ分析」って言葉と「機械学習」はセットで語られることが多いので、その辺もこれらの違いをあいまいにしちゃってた要因かなと思ってます。
そして、Cholletさんはここで「偏っている」、「Bias」という表現を使っています。これに対していくつか意見が出たようですが、それについてこのように答えています。
Replies indicate that people are very confused about what "bias" means. It means doing pattern recognition based on spurious correlations, as opposed to causal reasoning. A ML model will use all correlations found in the training data, and typically many of them will be spurious.
— François Chollet (@fchollet) 2018年10月11日
返事を見てると、みんな「bias」って言葉に惑わされてるとわかったよ。ここでいう「bias」とは、パターン認識するときに因果推論ではなく疑似相関に基づいているってことさ。機械学習のモデルは、学習から分かった相関を全部使っちゃって、その相関の多くがまがいものってことがよくあるんだよ。
この最後の説明もそういうことかーってなりました。疑似相関ってのは、因果関係は全然ないのに相関してるってことです。
「機械学習は、因果は見ないで膨大なデータからパターンを認識しているだけだから、たとえ全然関係なかったとしてもある二つのものが同じ動きをしてたら、そこが重要視されちゃったりする」ってことをバイアスって呼んでるんだなと。
言われてみれば、これらのことは当たり前かもしれませんが、このツイートを見て頭が整理された感じがしました。そして、また機械学習をちゃんと勉強しよー!って欲が出てきました。Cholletさんの出された本も積読されてたんで、ちょっとずつコード書きながら読んでいこうって気がわいてきました!パラパラ見たけどGANとかまであって面白そう…よし、頑張ります。