深度學習最終目的表現為解決分類或回歸問題。在現實應用中,輸出層我們大多采用softmax或sigmoid函數來輸出分類概率值,其中二元分類可以應用sigmoid函數。
而在多元分類的問題中,我們默認采用softmax函數,具體表現為將多個神經元的輸出,映射到0 ~ 1的區間中,按概率高低進行分類,各概率之和為1。
某分類的概率數學表達式為:yi = ei / ∑j=1ej
具體來說,假設有四個輸出單元,分別為:
- y1 = ex1 / (ex1 + ex2 + ex3 + ex4 ),假設其概率為0.4
- y2 = ex2/ (ex1 + ex2 + ex3 + ex4 ),假設其概率為0.15
- y3 = ex3/ (ex1 + ex2 + ex3 + ex4 ),假設其概率為0.15
- y4= ex4/ (ex1 + ex2 + ex3 + ex4 ), 假設其概率為0.3
可以看出 y1 + y2 + y3 + y4 = 1。並且其中某神經元的輸出若增加,則其他神經元的輸出則減少,反之也成立。
最后再看看softmax函數如何求導,令y = exi / ∑exk ,分兩種情況:
1. i為softmax值,我們對exi 求導,
與此相關的基礎求導公式:(u/v)' = (u' v - uv') / v2 和 (ex)' = ex ,並應用鏈式法則可得求導過程:
dy/dexi = ( exi / ∑exk)'
= (exi * ∑exk - exi * exi ) / (∑exk)2
= exi / ∑exk - (exi / ∑exk ) * (exi / ∑exk )
= yxi - yxi2
2. i不為softmax值,我們依然對exi 求導,其過程為:
dy/dexi = ( exj / ∑exk)' 注:i ≠ j
= (0 * ∑exk - exj * exi) / (∑exk)2
= -1 * (exi / ∑exk ) * (exj / ∑exk)
= - yxi * yxj