學習目標:同一個網路、同一組超參數,換一個隨機種子就得到不同的解——那個散佈本身是可以量的,而且它決定你該報什麼統計量。另一件事是尺度:初始化的 gain 決定梯度消失還是爆炸,而那是 gain 的函數,不是深度的函數。
灰虛線=真值;細線=12 個 seed 各自訓練出來的網路(1→16→16→1 的 tanh,Adam)
縱軸 log:第一層/最後一個隱藏層的梯度範數比對深度;水平線=1(兩端一樣強)
觀察:把 gain 調小或調大,12 條線從彼此貼近變成散開,而右邊三個統計量(中位數、最小、最大)同時被拉寬——散佈是可以量的東西,不是玄學。下圖是另一件事(9 個 seed 的幾何中位數):gain 0.5 與 gain 1 那兩條從深度 2 到 32 大致持平(約 0.2–0.35,不管疊多深,兩端的梯度一樣強),而 gain 2 那條從 0.39 一路爬到 2.8。所以「梯度消失/爆炸」在這張圖上是 gain 的函數,不是深度的函數。打開「殘差(未縮放)」,那條線同樣往上跑(0.27 → 1.3)——殘差修好了梯度的路徑,卻讓前向的尺度失控,這就是它通常要配正規化的原因。