輸出層的激活函數應該選擇何種損失函數做搭配影響着神經網絡的訓練速度,並間接影響在測試數據上的分類準確性。本文拋磚引玉,整理並分析幾種組合情況。
一、Sigmod與均方損失
這是一個糟糕的搭配。爲什麼那? 因爲一個小小的符號 ,它是sigmod的導數 ,sigmod圖像如下
在兩端尾部的導數接近於0,結合下式輸出層的學習誤差可知,當輸出層的學習率下降後,會間接的通過反向傳播影響其它各層的學習率。
二、Sigmod與交叉熵損失
這是sigmod的絕佳搭檔。先來看看交叉熵損失函數的定義。
當預測值和真實值一致時,損失爲0,當預測值和真實值不一致時,損失會無限大。
現在來看輸出層權重的導數(具體推導可查閱相關文檔),如下
很棒,現在 消除了,學習率下降的可能性大大降低。關於偏置的情形與此類似。
三、線性激活函數與均方損失
如果 ,即權重輸入等於激活輸出。那麼此時輸出層權重的導數爲
所以,如果輸出層對權重輸入不進行非線性變換, 也可能會消失。
四、softmax與log-likelihood cost(log-似然損失)
這個組合常用於多分類中,特別是對輸出概率分佈有強烈需求的應用。
先來看看 softmax 的定義,它其實對輸出層各個神經元的激活輸出進行了一個概率轉換
再來一窺 log-likelihood cost
其中, 表示輸出層的預測概率,因爲輸出層每個神經元都關聯一個概率值,最終取最大值作爲預測概率。可以看出,當預測概率對應的神經元編號等於標籤值 時,損失爲0,反之損失無限大。舉個例子,假如在進行識別範圍 0-9 的手寫體數字,輸出層有10個神經元,如果第2個神經元有最大的輸出概率,則預測概率的值是第2個神經元的輸出概率,那麼模型認爲該樣本的標籤會是2,如果確實是2,那麼損失會很小;反之,損失會很大。
關於權重和偏置的導數同上,不含 項,所以學習率下降的可能性不大。
五、總結
以上4種組合,只是衆多組合中的幾種而已,只要激活函數和損失函數不斷出現,組合也會不斷出現。它們共同的目的便是把學習率下降的可能性降到最低,使得什麼網絡模型得到最大限度的訓練。