ナンクル力学系

学んだ事を書き連ねていこう。

悲しいバグ

leave a comment »

ニューラルネットワークのアクティベーション(sigmoid関数やtanh関数など)は、ニューロンの出力からその微分値を計算出きるので、バックプロパゲーションをするプログラムではその関係式を使う。例えば、

u = \tanh (x)

du/dx = d \tanh (x) / dx = 1 - (\tanh x)^2 = 1-u^2

という関係。

自分で計算する時にはニューロンの出力はu、内部値はxと置くんだけど、ボスは逆。今書いてるプログラムはボスに合わせて書いているので、自分の記法では無い。そのせいでプログラムにバグが混入してた。微分値計算の関数に、xではなく慣れてる方のuを入れてしまっていた。気をつけてるつもりだったのに!

気づけてよかったけど何か悲しいし悔しい。

Advertisements

Written by tkf

October 31, 2008 at 3:08 am

Posted in 研究日誌, programming

Tagged with ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: