#What
Chainerを利用して機械学習を学ぶにあたり、私自身が、気がついた点、リサーチした内容をまとめる記事になります。今回は、ニューラルネットワークの訓練について勉強します。
私の理解に基づいて記述しているため、間違っている場合があります。間違いは都度修正するつもりです、ご容赦ください。
#Content
##ニューラルネットワークの訓練
端的に言えばモデルの精度をあげること、ユーザーからしたら賢くすること
###目的関数
ニューラルネットワークも一段掘り下げれば、つまり目的関数を最適化することになる。下記、代表的な2種類の目的関数が紹介されている。
- **回帰問題でよく用いられる平均二乗誤差 (mean squared error)**
- **分類問題でよく用いられる交差エントロピー (cross entropy)**
平均二乗誤差はモデルのパラメータの最適解を求める時に、バチっと一つの解がもとまる手法であるのに対して、
確率的にこっちの方がありえるかなぁ〜を予測する方法が交差エントロピーという理解をしてます。
###目的関数の最適化
勾配降下法・・・名前の通り勾配からパラメータを更新していく方法
ミニバッチ学習法・・・データセットを複数の組みにしてそれぞれの目的関数を導出。そして、目的関数の平均値をとることでパラメータを更新していく方法(正直よくわからない)
###活性化関数
活性化関数の勾配の値が小さいと各層のパラメータも小さくなってしまう。これを勾配消失という。
活性化関数って何か制約があるのでしょうか?(発散しないとか、収束するとか・・・)
確率として出力するから1以下になるようにしないといけない???
そこでReLU関数が紹介されているけど、誰がどうやって見つけたんでしょうか・・・?
また詳細がわかったら更新します。
勾配消失の問題が解決されたことによってディープラーニングが可能になったのかな
#Comment
とりあえず、機械学習の概要は掴めてきました。
次は、具体的にプログラムを何か作ってみたいと思います。
というわけで、この本を購入しました。正直、知識が浅すぎて何買えばいいのかわからなかったのですが、目次を索引を見ると、
Chainerで学習したライブラリを使っているので実戦向き
Webアプリケーション作成について紹介があり、プログラムを一般公開するのに役立ちそう
だったので購入を決めました。
なので、この本勉強して
STEP.1 機械学習の実戦
STEP.2 Pyhtonをアプリ公開レベルまで使いこなす
を次の目標に頑張ります。