質問: tf.Variable(tf.random_normal([output_dim])) ``` が出てきて、Wが重みでbがバイアスだそうです。 重みづけに使っているメソッド ``` random_uniform ``` は一様分布により乱数を出力するメソッドで バイアスづけに使っているメソッドの ``` random_normal ``` は正規分布により乱数を出力するメソッドでありますが、なぜ 重みづけを一様分布で行い、バイアスづけを正規分布で行うのでしょうか? 一様分布は 最大値、最小値の間で、すべての値が同じ確率で起こることが特徴 で 正規分布は 均値以上と以下の値をとる確率は同じで、平均値に近いほど確率が高いことが特徴 であります。 https://sites.google.com/site/techdmba/distribution しかし、 重みとは、それぞれの入力が出力に及ぼす影響の大きさを表す実数で パーセプトロンが出力する傾向の高さを表す量 であるという説明から https://nnadl-ja.github.io/nnadl_site_ja/chap1.html 重みづけには正規分布で バイアスづけには三角分布を使うべきのような気がするのです。(その物事が起こる事象の高さを表現している関数という点から) どうして、重みづけを一様分布で行い、バイアスづけを正規分布で行うのでしょうか?
回答: 以下をお読み下さい。学習を効率的に進めるためには、初期値(の分布)も重要であることが理解できるかと思います。 具体的には、重みの初期値に正規分布を使うべきではない理由(正規分布で初期化すると学習が進まない)と、どのような分布を与えるべきかが記されています。 重みの初期化 で、一様分布を積極的に使う理由は分かりませんが、少なくとも正規分布よりは直感的には偏差は大きくならないと私は理解してます。 一方バイアスは、上記の説明のとおりどんな値で初期化しても学習の進み具合には影響ないようです。 ##### 補足 上記に挙げた日本語のサイトでは分布の図がありませんが、元サイトは分布の図が載っています。 図を見たほうが理解しやすいかと思います。 Improving the way neural networks learn