文系出身のプログラマですが、機械学習が流行っているので、
最初のステップとして大学ぶりに微分積分をちょっと勉強してみました。
機械学習とは??
ロボットやコンピュータなどの機会が、経験(学習)から行動するためのパラメータを自動的に獲得する方法
データの中で見えているものから、見えていないものを予測する方法
とあるように、たくさんのデータを機械に学習させることで、
- 今後の予測を立てる
- 似たような問題を与えた時に、機会が自動で答えを出してくれる。
ようにすることです。
んーーーいまいち分からない。。。。。
ざっくり言うと、
機械にたくさんのことを経験させることで、機械にまるで人間のように判断力を獲得することのようです。
ディープラーニング
「ディープラーニング」とは「深層学習」とも呼ばれる機械学習法の1つで、
入力されたデータからクラス分類や、回帰を行う手法です。
またディープラーニングは人の脳における知識獲得に近い仕組みを実現できることがわかっています。
この人に近いハイレベルな学習機能と、パソコン本来の強みである、計算力を生かして、人間でも発見したり、予測できなかったことをしてくれるのがディープラーニングのようです。
今回は機械学習やディープラーニングを学ぶ際に知っておくべき、基本的な仕組みである、
ニューラルネットワークについて学ぶため、その元となるパーセプトロン、そして多層パーセプトロンについて
学んでいこうと思います。
パーセプトロンとは
- 視覚や脳神経細胞の機能をモデル化したもの
上図のように複数の入力から1つの出力を行い、これを繰り返すことでモデルを学習することのようです!
多層パーセプトロン
パーセプトロンを階層的に構成したものです。
こんな感じらしいです笑
上図のように入力層に与えた値を伝播させていきます。
誤差逆伝播法とは?
得られた出力結果から、教師データとの誤差を算出して、パラメータとしての重みを調整し、調整された値を元にまた後ろのノードへと更新を伝えていきます。
更新量Δwは、以下の式で求められます。
△w = −η\frac{δE}{δw}
誤差が大きければ更新量を大きく、誤差が小さければ更新量を小さくするようにするために、
上の傾きを求めます。
途中までですが、今日はここまでで