【机器学习基础】Softmax与Sigmoid你还不知道存在这些联系?
1. Sigmoid函數
函數也叫函數,將輸入值壓縮到區間之中,其函數表達式為:
函數圖像如圖所示:
其求導之后的表達式為:
其梯度的導數圖像如:
對于函數,其優點為:
函數的輸出在之間,我們通常把它拿來作為一個二分類的方案。其輸出范圍有限,可以用作輸出層,優化穩定。
函數是一個連續函數,方便后續求導。
其缺點為:
從函數的導函數可以得到,其值范圍為(0, 0.25),存在梯度消失的問題。
函數不是一個零均值的函數,導致后一層的神經元將得到上一層非均值的信號作為輸入,從而會對梯度產生影響。
函數是一個指數函數的激活函數,我們把每次基本運算當作一次(Floating Point Operations Per Second),則函數包括求負號,指數運算,加法與除法等4的運算量,預算量較大。而如,為。
對于非互斥的多標簽分類任務,且我們需要輸出多個類別。如一張圖我們需要輸出是否是男人,是否戴了眼鏡,我們可以采用Sigmoid函數來輸出最后的結果。 如最后的輸出為[0.01, 0.02, 0.41, 0.62, 0.3, 0.18, 0.5, 0.42, 0.06, 0.81],我們通過設置一個概率閾值,比如,如果概率值大于,則判定類別符合,那么該輸入樣本則會被判定為類別、類別、類別、類別及類別,即一個樣本具有多個標簽。
2. Softmax函數
函數又稱歸一化指數函數,函數表達式為:
其中,。。如網絡輸出為,則經過層之后,輸出為。
對于,往往我們會在面試的時候,需要手寫函數,這里給出一個參考版本。
import?numpy?as?np def?softmax(f):#?為了防止數值溢出,我們將數值進行下處理# f:?輸入值f?-=?np.max(f)?#?f?becomes?[-666,?-333,?0]return?np.exp(f)?/?np.sum(np.exp(f))??針對函數的反向傳播,這里給出手撕反傳的推導過程,主要是分兩種情況:
(1)當 時
(2)當 時
綜上所述:
因此,不失一般性,擴展成矩陣形式則為:
當Y的shape為 時)。后面在下一題中,我們會將與 進行結合,再來推導前向與反向。
因此,當我們的任務是一個互斥的多類別分類任務(如imagenet分類),網絡只能輸出一個正確答案,我們可以用函數處理各個原始的輸出值。從公式中,我們可以看到函數的分母是綜合到了所有類別的信息。通常我們也會把函數的輸出,這主要是由于函數先拉大了輸入向量元素之間的差異(通過指數函數),然后才歸一化為一個概率分布,在應用到分類問題時,它使得各個類別的概率差異比較顯著,最大值產生的概率更接近,這樣輸出分布的形式更接近真實分布,從而當作網絡的置信度。
對于函數而言,我們可以從不同的角度來理解它:
是一個暴力的找最大值的過程,最后的輸出是以一個形式,將最大值的位置設置為,其余為。這樣的話,則在網絡訓練中,是不可導的,我們采用看作是的平滑近似,從而可以使得網絡可導。
將輸入向量歸一化映射到一個類別概率分布,即個類別上的概率分布,因此我們常將放到 的最后一層。
從概率圖角度,可以理解為一個概率無向圖上的聯合概率。
3. 聯系
對于二分類任務而言,二者都可以達到目標,在理論上,沒有什么區別。
舉個栗子,如現在是二分類(), 經過函數之后:
對于函數,則為:
對于,我們可以使用一個來進行替換,則替換成了:
該表達式與相同,理論上是相同的。
4. 區別
在我們進行二分類任務時,當我們使用函數,最后一層全連接層的神經元個數是,神經網絡的輸出經過它的轉換,可以將數值壓縮到之間,得到的結果可以理解成分類成目標類別的概率,而不分類到該類別的概率是,這也是典型的兩點分布的形式。
而使用函數則需要是兩個神經元,一個是表示前景類的分類概率,另一個是背景類。此時,函數也就退化成了二項分布。
更簡單一點理解,函數是對兩個類別進行建模,其兩個類別的概率之和是。而 函數是對于一個類別的建模,另一個類別可以通過1來相減得到。
得到的結果是“分到正確類別的概率和未分到正確類別的概率”,得到的是“分到正確類別的概率和分到錯誤類別的概率”。
5. 引用
https://blog.csdn.net/uncle_ll/article/details/82778750
https://zhuanlan.zhihu.com/p/356976844
https://zhuanlan.zhihu.com/p/37740860
https://blog.csdn.net/wujunlei1595848/article/details/90741963
https://blog.csdn.net/wujunlei1595848/article/details/90741963
總結
以上是生活随笔為你收集整理的【机器学习基础】Softmax与Sigmoid你还不知道存在这些联系?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Outlook2016未读邮件怎么设置字
- 下一篇: 避免入坑:如何知道一个导师的人品?