教師あり学習

きっかけ

近年流行っているディープラーニングについて、自分に定着させるためのノート的にここに記す。
ここでは、実装のための記事というよりも、どちらかというと理論的なことの話をしてこうと思う。

教師あり学習

機械学習という大きな枠組みの中の教師あり学習教師なし学習強化学習という3つのアルゴリズムが現在主流であることはこれを読んでいる人ならわかっていると思う。
巷で言われているディープラーニングとは、普通、教師あり学習のことを指している事が多い。
今回はその教師あり学習について記述していこうと思う

教師あり学習がなにか、ということについてもネットにゴロゴロと情報が転がっているので、特に必要ないと思うが、より理論っぽく書くとこういうふうに言えると思う。

教師あり学習
入力 \boldsymbol{x}に対する正解値 \boldsymbol{y}を大量に与え、 \boldsymbol{y}=\boldsymbol{f}(\boldsymbol{x})となる関数 \boldsymbol{f}を予想するアルゴリズム

最初はこの定義に伴って、 y=\sin(x)のような、簡単な関数系をディープラーニングで予想するプログラムを作っていこう。
今では、いろいろなライブラリがあり、実装がかなり簡単にかけるようになっているが、この記事では、理論の勉強ということもあり、pythonのnumpyだけで作っていこうと思う。


1. ニューラルネットワークと順伝播
2. 損失(誤差)関数
3. 誤差逆伝播
4. 最適化