計算機視覺面試考點(8)激活函數

計算機視覺工程師在面試過程中主要考察三個內容:圖像處理、機器學習、深度學習。然而,各類資料紛繁複雜,或是簡單的知識點羅列,或是有着詳細數學推導令人望而生畏的大部頭。爲了督促自己學習,也爲了方便後人,決心將常考必會的知識點以通俗易懂的方式設立專欄進行講解,努力做到長期更新。此專欄不求甚解,只追求應付一般面試。希望該專欄羽翼漸豐之日,可以爲大家免去尋找資料的勞累。每篇介紹一個知識點,沒有先後順序。想了解什麼知識點可以私信或者評論,如果重要而且恰巧我也能學會,會盡快更新。最後,每一個知識點我會參考很多資料。考慮到簡潔性,就不引用了。如有冒犯之處,聯繫我進行刪除或者補加引用。在此先提前致歉了!

爲什麼使用激活函數?
很多任務是非線性的
沒有激活函數的網絡只能實現y=kx+b
這是線性的,無法解決非線性問題
激活函數f()是非線性的
f(kx+b)實現了線性到非線性的轉變,提升了網絡的表達能力
下圖就是一個非線性二分類任務的例子
在這裏插入圖片描述
常用激活函數

Sigmoid

在這裏插入圖片描述
輸出是0到1
適用於二分類任務最後一層的輸出(輸出是0到1,可以認爲是概率)

導數最大是0.25
反向傳播造成梯度消失

輸出不是以0爲中心

冪運算複雜度高

基於以上三點,幾乎不使用Sigmoid

tanh

在這裏插入圖片描述
在這裏插入圖片描述
注意:一些面試題問你 tanh(x)=2*Sigmoid(x)-1 對不對?
錯的
tanh(x)=2*Sigmoid(2x)-1

Sigmoid的升級版
輸出以0爲中心
但是依然存在梯度消失、冪運算複雜度高的問題

ReLU

在這裏插入圖片描述
激活函數的第一選擇

計算複雜度低
x>0時不存在梯度消失

缺點是Dead ReLU(x<0時,等於0,沒有被激活)
輸出不是以0爲中心

Leaky ReLU(PReLU)

在這裏插入圖片描述
ReLU升級版
解決Dead ReLU
0.1可調

ELU

在這裏插入圖片描述
最小值逼近-a,具有飽和性
介於PReLU和ReLU之間

輸出更加接近以0爲中心,對噪聲具有魯棒性
(這兩點不懂,請大佬指教)

冪運算複雜度高

理論上,PReLU和ELU都比ReLU好
但是一般使用ReLU:

  • 不用設置a參數
  • PReLU和ELU提升不大
  • ReLU邏輯相對簡單,沒有ELU的冪運算
  • 如果沒有較大提升,使用ReLU的習慣性難以被撼動

Dead ReLU
如果x<0
反向傳播的時候ReLU激活函數的導數爲0
該神經元的參數就不更新了
與該神經元相連的前面的所有神經元也不更新了
導致一些神經元會失去意義

爲什麼希望輸出以0爲中心?
以0爲中心,輸出有正有負,反向傳播梯度有正有負
可以滿足有的參數增大,有的參數減小
如果輸出全大於0,梯度的正負全部相同
所有參數只可能一起增大或者一起縮小
以上“所有參數”指的是一個神經元對應的所有參數

爲什麼梯度正負取決於輸出(下圖的x是上一層的輸出)?
在這裏插入圖片描述
這是反向傳播的簡單推導
對於同一個神經元,最後一個公式的求導部分是常數
所以,梯度方向取決於x的正負


歡迎討論 歡迎吐槽

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章