重みの初期化(Xavier / He と勾配の伝わり方)
同じ深いネットワークに信号を流すと、初期化方式しだいで各層の活性化の分布の幅が保たれるか、0 に潰れるか/飽和して張り付くかが決まります Var(W) ≈ 1/n_in。
重みの初期化方式を選ぶ(重み
W ~ N(0, σ²) のばらつき σ をどう決めるか)
10
64
ReLU
表示中の層
—
この層の活性化 標準偏差 σ
—
飽和/死んだ割合
—
逆伝播の勾配 相対スケール
—
各層を通過した後の活性化のヒストグラム(上=入力層 → 下=最終層)
層が深くなるほど活性化の標準偏差 σ はどうなるか(対数軸)
深いネットワークでは、入力ベクトルが層から層へと
重み
そこで Xavier(
z = Wx → a = f(z) と変換されていきます。各層の出力のばらつき(分散)は、おおよそ Var(出力) ≈ n_in · Var(W) · Var(入力) で決まります。重み
W を小さすぎる σ で初期化すると毎層で分散が縮み、深い層では活性化がすべて 0 に潰れます。逆に大きすぎる σ だと分散が爆発し、sigmoid なら端に張り付いて飽和します。どちらも信号も勾配も伝わりません。そこで Xavier(
Var(W)=1/n_in)や He(Var(W)=2/n_in、ReLU 向け)は、各層で分散がちょうど保たれるように σ を選びます。方式を切り替えて「1層ずつ伝播」を押し、各層の分布の幅がどう変わるか見比べましょう。
いま何が起きている?
ここがポイント
- 分散の保存が目標 ── 1 層通すごとに
Var(出力) ≈ n_in · Var(W) · Var(入力)。これを 1 に近づける σ が良い初期化。 - Xavier = 1/n_in、He = 2/n_in ── He は ReLU が負側を半分捨てて分散が半減する分を補うため係数が 2 倍。
- 小さすぎ→0 に潰れる/大きすぎ→飽和・爆発 ── どちらも層が深いほど顕著で、活性化も逆伝播の勾配も消える。
- 順伝播の分布の幅と逆伝播の勾配は連動 ── 分散が保たれていれば勾配も保たれ、深くても学習できる。