Goalist Developers Blog

機械学習のモデルを理解しましょう!

歴史

機械学習がもう30年ほど存在してきたが、最近のプロセシング力に至って、使える場面が物凄く増えてきました。昔も、今も数学的なアルゴリズム(Naive Bayesなど)を使い予測などを行ってますが、最近の復活の原因はほとんど、「Deep Learning」というやり方のおかげです。これは最新のプロセシング技術に頼って、今までにない複雑なモデルの作成ができます。

Deep learningの力

さて、このモデルとは何?美人さん? f:id:c-pattamada:20181025143637j:plain

すみませんでした。もちろん、違いませんね。画像を使いたかっただけです、恨まないでください。


例えば、こういうデータがあります。

f:id:c-pattamada:20181025143712p:plain

なんか、高校の数学授業を思い出す。この赤い点のを通して線を書きましょう。例えば「y = 2x + 4」 。これが「モデル」と言います。

そして、このデータをよく描いているモデルだとも言えます。

f:id:c-pattamada:20181025143731p:plain

この場合は一般線形モデル、[y= 2x + 4」を使いました(辞書がそういうから。英語ではlinear modelです)。

一直線が十分なので、機械学習なんかより高校生にでも聞けば良いかと思います。

ではもうちょっと複雑な例を見ましょう。そして、似たようなモデルを使ってみましょう。

f:id:c-pattamada:20181025143746p:plain

こちらは明らかに使えません。 そこで、2乗や3乗などの y = 0.2x4-5x2+10x+5 (これも「モデル」と言います)みたいな数式でできるでしょう。(数式はちょっと適当に選びました)

f:id:c-pattamada:20181025143757p:plain

実際にはどうなる?

この場合はたった一つの変数、「x」、を使って、「y」を予測してます。つまり、もし家賃の値段が「y」と、それを計算する時に「家の広さ」という「x」のみを見ているようなものです。現実の世界には、家賃の値段が実際には - 駅からの近さ、(「z」) - 部屋の数 (「w」) - 何年前に構築された (「v」) 見たいな変数にも影響されているでしょう。 その場合、4つの変数でn乗まで計算しようとすると、結構複雑になります。y = 2(x2)zw3 - 3 (v/z) + ..... 見たいに、もう読めないぐらい。 このような複雑なモデルの作成にはdeep learningが非常に強いです。

そうですよ。モデルの心って、複雑ですよ。

(写真はこちらから) Free stock photos · Pexels