參數初始化
- 是否可以將全部參數初始化為0
- 同一層的任意神經元都是同構的
- 它們的輸入輸出都相同,因此前向反向傳播的取值完全相同
- 訓練一直是對稱的,同一層參數都是相同的
- 隨機初始化參數
- 初始化參數為取值范圍\((-\dfrac{1}{\sqrt{d}}, \dfrac{1}{\sqrt{d}})\)的均勻分布,或者是高斯分布
- \(d\)是一個神經元接受的輸入維度
- 偏置可以設為啟發式常數,並不會導致參數對稱問題
Dropout原理與實現
- 以一定概率隨機地“臨時丟棄”一部分神經元
- 相當於每次迭代都在訓練不同結構的神經網絡,類似於Bagging方法
- 輕量級的Bagging集成近似,能夠實現指數級數量神經網絡的訓練與評測
- 具體實現:
- 包含\(N\)個神經元的網絡,在Dropout作用下可看作為\(2^N\)個模型的集成
- 這些模型可看作原網絡的子網絡,共享部分權值,具有相同網絡層數,整體參數數目不變
- 減弱全體神經元之間的聯合適應性,較少過擬合的風險
- 前向傳播:
- 以概率\(p\)隨機生成取值為0或1的向量,代表每個神經元是否被丟棄
\[r_j^{(l)} \sim Bernoulli(p) \]
- 更新神經元輸出
\[\tilde{y}^{(l)}=r^{(l)} * y^{(l)} \]
- 以概率\(p\)隨機生成取值為0或1的向量,代表每個神經元是否被丟棄
- 測試階段
- 每個神經元參數乘以概率系數\(p\)
- 恢復在訓練中該神經元只有\(p\)的概率被用於整個網絡的前向傳播計算
Normalization
Internal Covariate Shift
統計機器學習中的一個經典假設是“源空間(source domain)和目標空間(target domain)的數據分布(distribution)是一致的”。如果不一致,那么就出現了新的機器學習問題,如 transfer learning / domain adaptation 等。而 covariate shift 就是分布不一致假設之下的一個分支問題,它是指源空間和目標空間的條件概率是一致的,但是其邊緣概率不同,即對所有的\(x \in \mathcal{X}\),
但是,
簡而言之,每個神經元的輸入數據不再是“獨立同分布”
- 上層參數需要不斷適應新的輸入數據分布,降低學習速度
- 下層輸入的變化可能趨向於變大或者變小,導致上層落入飽和區,使得學習過早停止
- 每層的更新都會影響到其它層,因此每層的參數更新策略需要盡可能的謹慎
通用框架與基本思想
以一個神經元為例,接收一組輸入向量
通過某種運算后,輸出一個標量值:
以BN為代表的方法進行了簡化的白化操作,通用框架如下所示:
其中,\(\mu\)和\(\delta\)是平移參數和縮放參數,\(g\)和\(b\)是再縮放參數和再平移參數。之所以引入再縮放和再平移,是為了模型的表達能力不會因為規范化下降。這兩個參數都是可學習的,保證每個Normalization層學到的是真正有用的分布。
Batch Normalization:縱向規范化
結合上述通用公式,BN中均值和方差由以下公式計算
BN獨立地規范化每一個輸入維度\(x_i\),但規范化的參數是一個 mini-batch的一階統計量和二階統計量。這就要求每一個 mini-batch的統計量是整體統計量的近似估計,或者說每一個 mini-batch彼此之間,以及和整體數據,都應該是近似同分布的。分布差距較小的mini-batch可以看做是為規范化操作和模型訓練引入了噪聲,可以增加模型的魯棒性;但如果每個mini-batch的原始分布差別很大,那么不同 mini-batch的數據將會進行不一樣的數據變換,這就增加了模型訓練的難度。
訓練時,BN層利用隱藏層輸出結果的均值與方差來標准化每一層特征的分布,並且維護所有mini-batch數據的均值與方差,最后利用樣本的均值與方差的無偏估計量在測試時使用
Layer Normalization:橫向規范化
與 BN不同,LN是一種橫向的規范化,它綜合考慮一層所有維度的輸入,計算該層的平均輸入值和輸入方差,然后用同一個規范化操作來轉換各個維度的輸入:
LN針對單個訓練樣本進行,不依賴於其他數據,因此可以避免BN 中受mini-batch 數據分布影響的問題,可以用於小mini-batch場景、動態網絡場景和RNN,特別是自然語言處理領域。此外,LN不需要保存mini-batch 的均值和方差,節省了額外的存儲空間
但是,BN的轉換是針對單個神經元可訓練的——不同神經元的輸入經過再平移和再縮放后分布在不同的區間,而 LN對於一整層的神經元訓練得到同一個轉換——所有的輸入都在同一個區間范圍內。如果不同輸入特征不屬於相似的類別(比如顏色和大小),那么LN的處理可能會降低模型的表達能力