https://www.bilibili.com/video/av9770302/?p=11
Relu
Leaky Relu
Parametric Relu就是把leaky部分的斜率學出來,而不是指定
還有一種變體是,Randomized Relu,就是說這個斜率是每次隨機的
Exponential Linear Unit (ELU)
Scaled ELU
Scaled就是都乘上一個lamda
並且這里給出了alpha和lamda的取值,
這個是推導出來的
這里如果我們假設所有輸入的a的分布為,mean=0, variance=1
所有參數w的分為也是,mean=0, variance=1/K (這個取值上面算出來的,為了保證z的variance為1)
就能得到z的分布也符合mean=0,variance=1
雖然這里對於a1...aK的分布沒有假設,但是我們可以假設z的分布式是符合高斯分布的,根據中心極限定理
現在的問題是對於z經過SELU得到a,如果還要保證mean=0,variance=1,求alpha,lamda參數,求出來的值就是上面給出的
看這個推導有兩個用處,
1. 知道使用Selu的前提假設,是有假設的,視頻里面demo,在不滿足假設的情況下,Selu沒效果的
假設就是輸入和參數的初始化必須要滿足前面的分布假設
這里參數的初始化可以用lecun_normal,雖然參數后面會不斷調整,但初始化還是很關鍵
2. 可以看出SELU讓輸出的分布滿足mean=0, variance=1,這就可以達到BathNormalization的效果
可以看到作者的比較,SELU NN比用BatchNorm的效果要好,loss更低,而且也更平滑
因為BatchNorm,每次是用batch的mean和var,所以用局部代表全局,會有波動,因為每個batch可能有較大的差異