chainerでsin関数の非線形回帰

名前の通りです。chainerを使って、ニューラルネットワークによるy=sin(x)の非線形回帰を行います。

 

作成したプログラムは全てgithubに上げてあります。

github.com

 

qiita.com

 

こちらのリンクを参考にしました。というより、ほぼそのままとなっています。備忘録的に自分のブログにまとめさせていただきました。自分が必要な部分だけやったので、こちらのリンクより内容は軽くなっています。

 

説明はコメントアウトでします。 

Mychain.pyでパラメーターと伝播の仕方をクラスとして用意します。

practice.pyで学習データの用意と、学習を行います。

 

誤差関数の更新の様子は以下のようになりました。

 

f:id:wada0421514:20171208103652p:plain

 

以上です。

 

qiita.com

 

上のリンクを参考にしました。再度、貼っておきます。

 

chainerでsin関数の非線形回帰をしました。

chainerはTensorflowと比較して、使いやすかったですし、かかった時間も短く感じました。理由として、tensorflowはセッションなどの概念が複雑であるので、まず慣れるの時間がかかったこと、エラーが起こりやすく、かつ、検出しにくかったことが挙げられると思います。pythonで初めてニューラルネットワークを利用する場合は、個人的にchainerをお勧めします。

 

アドバイス、改善点がある場合はお願いします。