2018年03月08日

機械学習を理解するための数学のきほん

本日は立石 賢吾 氏の
機械学習を理解するための数学のきほん
です。
やさしく学ぶ 機械学習を理解するための数学のきほん ~アヤノ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで~

本書は機械学習を勉強するときに、
必要となる数学の知識を解説したものです。

会話形式で読みやすく書かれていることと、
回帰や分類など機械学習に必要な項目に絞られており
効率よく、機械学習の数学を学ぶことができます。


また、本書では機械学習を実装するときの
pythonのサンプルコードが紹介されています。

とても基礎的なものではありますが、
このサンプルプログラムを動かすと
数学に対する理解も大きく深まるでしょう。


個人的には
過学習についての記述がわかりやすく
とても参考になったと感じました。


プログラムは得意だけど、数学の理論は苦手
というエンジニアにお勧めの一冊です。
とっつきにくい数学の理論を
体で覚えることができるでしょう。



機械学習が得意とするのは、こういうタスクだよ。
・回帰(Regression)
・分類(Classification)
・クラスタリング(Clustering)


クラスタリングは分類と似ているんだけど
ちょっと違うのよね。
(中略)
分類と違うのは、データにラベルが付いてるか
どうかってこと。


ラベルがついいるデータを使って
学習することを教師あり学習、
逆にラベルがついていないデータを使って
学習することを教師なし学習っていうの。
回帰と分類は教師あり学習、
クラスタリングは教師なし学習、って
分けられるからそっちで覚えててもいいかもね。


毎回そんな風にn個のxを書いていくのは大変じゃない?
だからパラメータθと変数xをベクトルとみなすの。


重みベクトルを学習によって見つけると、
そのベクトルに対して垂直な直線がわかって、
その直線によってデータが分類できる


内積は、ベクトル同士がどれだけ似ているか
っていう指標なんだよ。
符号が正だと似ていて、0で直角、
負になると似ていないってことになる。


パーセプトロンのデメリットってなに?
最も大きな問題は線形分離可能な問題しか
解けないってこと。


これまで説明してきたパーセプトロンは、
単純パーセプトロンや単層パーセプトロン
と呼ばれることもあってね。
それ単体だとほんとに貧弱なモデルなんだけど、
単層って言われるくらいだから
多層パーセプトロンって呼ばれるものがあって、
実はそれがニューラルネットワークなの。


よくこんな式を思いつくよね……。
場合分けするより1つの式にまとまっている方が
表記が簡単だからね。


学習用データだけ見ると、
1次関数より2次関数の方が
フィットしているように見えるけど、
テスト用データも含めて考えると
2次関数の方は全然ダメそうね。


学習用データにしかフィットしないような状態を
過学習(Overfitting)っていうの。


過学習については、いくつか対応があるの。
・学習データの数を増やす
・モデルを簡単なものに変更する
・正則化


これが正則化の効果よ。
つまりパラメータが大きくなりすぎるのを防いで、
小さい値に近づけてくれるの。
今はθ1についてだけ考えたけど、
各θjでこういう動きをするんだよ。


モデルが簡単すぎる場合は
データ量が増えるにつれて誤差も少しずつ
大きくなっていくってことなの。


モデルの精度が悪いのはわかっているけど、
過学習なのか未学習なのかわからない時は、
学習曲線を描いてみたらいいんだね。


その前に、もう1つやっておいた方が
いいことがあるのよね。
学習データの平均を0、分散を1に変換するの。
(中略)
絶対やらないといけない前処理じゃないんだけど、
それをやっておくとパラメータの収束が早くなるの。






engineer_takafumi at 22:16│Comments(0) ★理系本の書評 |  ⇒ 数学

コメントする

名前
 
  絵文字