名前の通りです。chainerを使って、ニューラルネットワークによるy=sin(x)の非線形回帰を行います。
作成したプログラムは全てgithubに上げてあります。
こちらのリンクを参考にしました。というより、ほぼそのままとなっています。備忘録的に自分のブログにまとめさせていただきました。自分が必要な部分だけやったので、こちらのリンクより内容は軽くなっています。
説明はコメントアウトでします。
Mychain.pyでパラメーターと伝播の仕方をクラスとして用意します。
practice.pyで学習データの用意と、学習を行います。
誤差関数の更新の様子は以下のようになりました。
以上です。
上のリンクを参考にしました。再度、貼っておきます。
chainerでsin関数の非線形回帰をしました。
chainerはTensorflowと比較して、使いやすかったですし、かかった時間も短く感じました。理由として、tensorflowはセッションなどの概念が複雑であるので、まず慣れるの時間がかかったこと、エラーが起こりやすく、かつ、検出しにくかったことが挙げられると思います。pythonで初めてニューラルネットワークを利用する場合は、個人的にchainerをお勧めします。
アドバイス、改善点がある場合はお願いします。