最近 keras をつかって色々とやることにはまってます。 tensorflow や chainer と比較して keras だとネットワーク記述から fit までが完結に記述できてとても気に入っています。 そのときにドキュメントや実装を読んだりもしますが、ネットで自分がやりたいタスクで検索をかけて似たようなことをやっている人のコードを参考にしています。 その時、keras レイヤーの重みの初期化の引数に he_normal というのを指定しているのを見かけました。 ドキュメントを参照すればこの関数の定義式自体はわかりましたが、この関数が何をやってるのか、なぜこの関数にするとうれしいのか、平均0分散1のガウス分布ではだめなのか、ということがわからず困ってしまいました。 ニューラルネットワークにおける変数の初期化の方法について全く知らなかったので、ちょうどいい機会とおもい各種論文を読んでみた
![ニューラルネットにおける変数の初期化について - nykergoto’s blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/8e5ed8e2e75249fdcf9e660d22c149033f3ccbe4/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fd%2Fdette%2F20171015%2F20171015120816.png)