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