重みの初期化(Xavier / He と勾配の伝わり方)

同じ深いネットワークに信号を流すと、初期化方式しだいで各層の活性化の分布の幅が保たれるか、0 に潰れるか/飽和して張り付くかが決まります Var(W) ≈ 1/n_in

重みの初期化方式を選ぶ(重み W ~ N(0, σ²) のばらつき σ をどう決めるか)
10
64
ReLU
表示中の層
この層の活性化 標準偏差 σ
飽和/死んだ割合
逆伝播の勾配 相対スケール
各層を通過した後の活性化のヒストグラム(上=入力層 → 下=最終層)
層が深くなるほど活性化の標準偏差 σ はどうなるか(対数軸)
深いネットワークでは、入力ベクトルが層から層へと z = Wxa = f(z) と変換されていきます。各層の出力のばらつき(分散)は、おおよそ Var(出力) ≈ n_in · Var(W) · Var(入力) で決まります。
重み W小さすぎる σ で初期化すると毎層で分散が縮み、深い層では活性化がすべて 0 に潰れます。逆に大きすぎる σ だと分散が爆発し、sigmoid なら端に張り付いて飽和します。どちらも信号も勾配も伝わりません。
そこで XavierVar(W)=1/n_in)や HeVar(W)=2/n_in、ReLU 向け)は、各層で分散がちょうど保たれるように σ を選びます。方式を切り替えて「1層ずつ伝播」を押し、各層の分布の幅がどう変わるか見比べましょう。

いま何が起きている?

ここがポイント