文章參考自https://mp.weixin.qq.com/s/pA9JW75p9J5e5KHe3ifcBQ
感謝,僅用于學習,侵刪
不同損失函數作者在mnist數據集上訓練的損失如下
sigmoid 函數
定義式
圖像
sigmoid函數是一個logistic函數(不管輸入是什么輸出總在0和1之間)。很多激活函數都是非線性或者線性和非線性函數的組合(很少)
存在問題:
若輸入值通常很大,則經過激活函數會遇到梯度消失的問題
如果所有權重都很大,即使乘上學習率,回傳的梯度也很大,爆炸性更新權值,會遇到梯度爆炸的問題
梯度爆炸解決方法:梯度裁剪/規范
選取一個梯度閾值,超過閾值進行裁剪或者通過梯度規范化將其縮放到閾值范圍內
整流線性單元Relu
表達式
圖像
死亡Relu問題:如果在計算梯度值時大多數值都小于0,會得到很多不會更新的權值和偏置
優點:由于稀疏性,空間和時間復雜度低,不涉及高成本的指數運算;避免梯度消失問題
缺點:引入死亡relu問題,大部分分量永遠不會更新;不能避免梯度爆炸問題
指數線性單元ELU
定義式:
α為可調參數,一般在0.1到0.3之間
圖像:(α=0.2)
其導數:
優點:避免死亡relu問題;能得到負值輸出,幫助網絡向正確的方向推動權值和偏置的變化
缺點:包含指數運算,時間長;無法避免梯度爆炸問題;神經網絡不學習超參數α的值
滲漏型整流線性單元激活函數(Leaky ReLU)
表達式:
圖像(α=0.2)
優點:避免死亡relu問題;不包含指數運算
缺點:無法避免梯度爆炸問題;神經網絡不學習α值;微分時兩部份都是線性的
擴展型指數線性單元激活函數SELU
表達式:
圖像
優點:內部歸一化的速度比外部歸一化快,這意味著網絡能更快收斂;不可能出現梯度消失或爆炸問題,見 SELU 論文附錄的定理 2 和 3。
缺點:這個激活函數相對較新——需要更多論文比較性地探索其在 CNN 和 RNN 等架構中應用。這里有一篇使用 SELU 的 CNN 論文:https://arxiv.org/pdf/1905.01338.pdf