オルトプラスエンジニアの日常をお伝えします!

改めて「ITエンジニアのための機械学習理論入門」を改めて読む 〜第1章〜

みなさんこんにちは。オルトプラスラボに入ったばかりの橘です。
よろしくお願いします。

もう機械学習、すごいですね。
機械学習と言うか、ディープラーニングというか、人工知能というか。
すべてトレンドの域を通り越して、ベーシックになっています。


さて、機械学習の入門書にこのような名著があります。


ITエンジニアのための機械学習理論入門

ITエンジニアのための機械学習理論入門

現在、Googleでご活躍されている中井悦司さんが執筆された「ITエンジニアのための機械学習入門」という本です。この本は機械学習に必要な数学のセンテンスを解説しつつ散りばめつつ、あまり数学的な理解とかけ離れないようにソースコードが書かれているため、入門書としては最適な本だと思います。そんな本を不躾ながら更に噛み砕いてみようというのがこの連載です。この本を手元に、数学的な理解の支えをできたら幸いです。手元にない方はポチりましょう!

また、本の中のソースコードは数学的な理解を目的にアルゴリズムを1から実装していますが、面倒なので 楽したいなので 怠けたいので とても便利なライブラリである「numpy」や「scikit-learn」がありますので、そちらで簡単に実装してみようと思います。


今回は第1章です。第1章は正規分布についてお話したいと思います。

正規分布とは

正規分布とは、次のような数式です。


 N( x | \mu, \sigma^2 ) = \frac{1}{\sqrt(2 \pi \sigma^2 )} \mathrm{e}^{ - \frac{(x - \mu)^2}{2 \sigma^2}}

上の式を見てわかった方は、ブラウザタブをそっ閉じしてください。


正規分布がなんなのかと言われると、「データって結構、平均値に集まるよね〜」というようなものをちょっとだけ難しく書いている式です。ちょっとだけ難しく書いているのにも理由があって、正規分布はとても便利な式になっています。
という話は後に取っておいて、正規分布をグラフで表現するとよく見覚えのあるかと思われるグラフになります。



f:id:s_tachibana:20170707175833p:plain

このグラフは平均が0の正規分布です。ですので、ある確率的に起こる事象がこの正規分布に従うときというのは、「0の付近の値を取りやすいよ」という意味になります。また、分散という考え方があります。分散というのは「どれくらい平均より遠い値に散らばりやすいか」を表す値です。平均より遠くの値を多くとるようなデータの場合は分散の値が大きくなり、グラフがなだらかになります。


f:id:s_tachibana:20170707181254p:plain


逆にデータがある値に集中するときは先の尖ったグラフになります。

f:id:s_tachibana:20170707181400p:plain


ここで確率あるあるのサイコロの例に一度移ります。サイコロは、どの目も同じ確率で出るサイコロです。この時、「2〜5の値を取る確率は?」と言われると、

 \frac{1}{6} + \frac{1}{6} + \frac{1}{6} + \frac{1}{6} = \frac{2}{3}

であることはおそらくすぐにわかると思います。同じように正規分布も「足す」ことで、ある値からある値までを取る確率を求めることができます。具体的にはある値からある値まで面積を求めていきます。

f:id:s_tachibana:20170707184201p:plain


また、サイコロも「1〜6の値をとる確率は?」といわれると当然1になりますが、ここが正規分布の便利なところで、正規分布もすべての面積を求めると1になります。ここが正規分布が便利と言われる所以です。

f:id:s_tachibana:20170707185238p:plain


ちなみに、1章や2章などでデータに誤差を与えている部分に正規分布が使われていますが、これは次の図のように誤差を与えています。

f:id:s_tachibana:20170707190013p:plain

見づらいかもしれませんが、極端な誤差を与えることがないよう、極力平均0に近い範囲で誤差を出しているわけです。正規分布はこのような場面でも使われます。

まとめ

この連載は、少なくとも「ITエンジニアのための機械学習入門」が終わるところまでは続けます!(宣言)この記事はあくまでも「ITエンジニアのための機械学習入門」の補助になるといいなぁ、というつもりで書いていますので、本をざっと読み、対応する記事を読んだあとにもう一度本を読むことで理解が進むはずです!(希望)今からでも遅くはありません。一緒に機械学習を学びましょう!(切望)