上一節中,發現設定合適的權重初始值,對激活值的分佈有影響,能影響到學習能否順利進行,那麼,為了使各層有適當的廣度,強制性的調整激活值的分佈呢?

<aside> 💡 強制性讓活化層/激活值的分布常態化

</aside>

6.3.1 Batch Normalization 演算法

Batch Normalization簡稱 Batch Norm層

如前所述,Batch Norm的思路是調整各層的激活值分佈使其擁有適當的廣度,為此,要在神經網絡中,以小批次為單位、依照各小批次來正規化。

正規化處理:

將小批次的輸入資料,轉換為平均為0、標準差為1的資料

$$ 均值: \mu \gets \frac{1}{m}\sum^m_{i-1}x_i $$

$$ 標準差: \sigma^2_B \gets \frac{1}{m}\sum^m_{i-1} (x_i-\mu_B)^2 $$

$$ 正規化後的x :\ \hat{x} \gets \frac{x_i \ - \ \mu_B }{\sqrt{\sigma^2_B \ + \ \varepsilon} } $$