マンモス武勇伝~暗黒魔界編~

マンモスほっちぃ☆さんの快進撃が今...始まる...!!

ニューラルネットワークで関数近似その2.

今回から私の夏のレポート課題編に入ります.

課題内容は, ニューラルネットワークを用いて方程式の解の公式の関数を近似することです.

 

そのお試し編として, 前回は正弦曲線を近似したのです.

 

今回も関数近似ですが, 近似する関数はまずは!1変数の時の解の公式.

 

つまり, 方程式 ax-b=0 の解の公式は x=b/a ですよね.

 

それを近似します.

 

話は2次3次と進めたいのですが, とりあえず1次!

 

ニューラルネットの入力は方程式の係数に当たる a と -b ですが, 今回は a で割っておいて, -b/a を入力としています.

 

入力も出力も1次元なので見やすくなりますねー.

 

これが近似したものです...( 赤: y=-x 青: 近似した関数)

 

 

f:id:chbakensousasi:20160804004927g:plain

 

 

前回とほぼ同じだから特に言うことはないかな, と思っていましたが(今回は活性化関数をハイパボリックタンジェントにしてます)

Sin[x]を近似する時よりもこちらの方が難しいです!!!

 

重みの初期値をランダムで生成していますが, 初期値によっては全く収束しない, もしくは入力のxの平均値, 今回はxは[-0.5,0.5]の範囲で生成しているので平均値0に収束してしまうという状況に陥ることがありました.

 

訓練データを多くすると平均値に収束することが非常に多くなりますね.

まあそれも最適解の一つですからしょうがないです.

 

で, 対処法としては, 遺伝的アルゴリズムのような手法を用いることです.

 

つまり, 初期値をランダムで発生させた組をある程度生成して, それらについて簡単に誤差逆伝播法を用いて関数近似をします.

センスのある初期値だったらそいつをサルベージしてそいつを初期値として, 

ニューラルネットワークの学習を進めていきました!

 

二次元の方程式が私を呼んでる...

 

 

期末テストは残すところあと1つです!

論理学なのでレポート優先でいきます笑

 

 

(最近英語やってねぇ)

ちなみに7日から語学留学スタートです.

1ヶ月間寮生活ですが, 寮にディープラーニングの天才がいてくれると嬉しいです...