天天看點

【機器學習】 激活函數和代價函數

【激活函數】

如果沒有激活函數,那麼神經網絡模型就是一個線性模型;即便有再多的隐藏層,整個網絡也隻能等價于一個單層的神經網絡。有了激活函數以後,神經網絡就能模組化非線性模型,能廣泛處理複雜的問題。

  • 階躍函數:最早采用的激活函數是階躍函數,但其光滑性不好,是以實際中用光滑性較好的函數替代。
    【機器學習】 激活函數和代價函數
  • Sigmoid函數:Sigmoid函數具有可微性和單調性,輸出值的範圍是(0,1),在實體意義上最接近生物神經元。但Sigmoid函數也有缺點,例如:飽和性。根據sigmoid函數的定義不難看出,當x趨向于兩側時,sigmoid函數的導數逐漸趨向于0,在參數更新中,需要代價函數關于參數的偏導數資訊,這些偏導數中都會含有一個因子——激活函數的導數,如果取sigmoid函數為激活函數,一旦輸入值落入飽和區域,那麼sigmoid函數的導數值就會很小,甚至接近于0,進而使得代價函數關于參數的偏導數很小,參數就無法更新,還有導緻向下一層傳遞的梯度非常小,這種現象稱為梯度消失,會使得整個網絡的參數難以得到有效的訓練。
    【機器學習】 激活函數和代價函數
  • 雙曲正切函數(Tanh函數):也具有可微性和單調性,輸出值的範圍是(-1,1),輸出均值是0。這就使得在某些計算中收斂速度比sigmoid函數快,減少疊代次數,不過雙曲正切函數同sigmoid函數一樣,也具有飽和性,會造成梯度消失。
    【機器學習】 激活函數和代價函數
  • ReLU函數:ReLU函數是線性整流單元的簡稱,它是針對激活函數飽和性的缺點而提出的。在正半軸上,ReLU函數不存在飽和問題,是以ReLU函數能保持梯度不衰減,緩解梯度消失問題。然而在小于0的區域同樣會導緻對應權重無法更新,稱這種現象為“神經元壞死”,由于神經元壞死會影響神經網絡的收斂性,是以提出了各種ReLU函數的變體。
    【機器學習】 激活函數和代價函數

【代價函數】

  • 均方誤差函數:形式簡單、通俗易懂,就是真實值和預測值的平方差之和,但容易出現飽和現象,容易陷于局部極值,改進的方法是采用交叉熵作為代價函數。
    【機器學習】 激活函數和代價函數
  • 交叉熵損失函數:多用于分類問題,交叉熵刻畫的是實際輸出(機率)與期望輸出(機率)的距離,也就是交叉熵的值越小,兩個機率分布就越接近。采用交叉熵作為代價函數後,如果誤差越大,則修正項就越大,參數更新就越快,訓練速度也越快。
    【機器學習】 激活函數和代價函數
    假設機率分布p為期望輸出(标簽),機率分布q為實際輸出,H(p,q)為交叉熵。
    【機器學習】 激活函數和代價函數

參考資料:

1.https://blog.csdn.net/lilong117194/article/details/81542667

2.機器學習與人工智能-浙江大學-中國大學mooc

繼續閱讀