論文原文:http://arxiv.org/abs/1502.01852
論文主要討論了以ReLU爲激活函數的網絡的缺陷並提出了改進的激活函數PReLU與新的Kaiming初始化方法
1. PReLU
-
前向傳播
- 通道獨立:f(yi)=max(0,yi)+aimin(0,yi)
- 通道共享:f(yi)=max(0,yi)+amin(0,yi)
區別在於通道共享的PReLU對於每個通道都使用相同的a,而通道獨立的PReLU對於每個通道i都使用不同的ai,這些參數都是與網絡同時訓練得到的
-
反向傳播
∂ai∂E=yi∑∂f(yi)∂E∂ai∂f(yi)
∂ai∂f(yi)={0,yi, if yi>0 if yi≤0
-
實驗結果
2. Kaiming初始化
-
使用ReLU的網絡相比使用sigmoid的網絡能更快的收斂,但不良的初始化會導致模型難以訓練。
-
傳統的網絡使用高斯分佈進行初始化,在訓練深層網絡時難以收斂(需要使用預訓練模型或輔助分類器),Xavier初始化基於激活函數是線性的這一假設,不適用於ReLU及其變體
-
kaiming初始化過程
-
對於前向傳播:yl=Wlxl+bl
- xl:k2c×1
- Wl:d×k2c
- bl:d×1
其中k爲輸入圖像大小,c爲通道數,d爲核個數
-
初始化wl與xl都是獨立同分布的,則有
Var[yl]=nlVar[wlxl]=nlVar[wl]E[xl2]
只有在xl是0均值的情況下才有E[xl2]=Var[xl],而ReLU激活後xl=max(0,yl−1)不滿足0均值,因此將與Xavier中的情況不符
-
如果wl−1是關於0的對稱分佈,bl−1=0,那麼**yl−1是在0附近的均值爲0的對稱分佈**,當激活函數爲ReLU時,有E[xl2]=21Var[yl−1],帶入上式得到
Var[yl]=21nlVar[wl]Var[yl−1]
-
若有多層網絡,則公式變爲
Var[yL]=Var[y1](l=2∏L21nlVar[wl])
-
要使輸入輸出的方差不變,就需要對於每一層都有
21nlVar[wl]=1,∀l
-
這就能得出對於每一層只要設置wl方差爲2/nl的高斯分佈即可
-
討論