Sigmoid函数与Softmax函数的区别与联系
目錄
緣起邏輯回歸
Sigmoid
Softmax
緣起邏輯回歸
邏輯回歸模型是用于二類分類的機器學習模型(不要說邏輯回歸可以做多類分類啊喂,那是二類分類器的組合策略問題,而與邏輯回歸分類器本身的構造沒有半毛錢關系啊)。
我們知道,在邏輯回歸中,用于預測樣本類別的假設函數(shù)為
(小夕要講大事,忽略偏置項參數(shù)和向量轉(zhuǎn)置這種細節(jié)啦),其中sigmoid函數(shù)的圖像看起來是這樣的:
因此,我們將的樣本預測為正類別(記為類別1),將的樣本預測為負類別(記為類別0)。因此對于sigmoid(z)函數(shù)來說,z=0的點就是用來分類的臨界點。所以在邏輯回歸中,的點就是分類的臨界點。
可是你有想過為什么嗎?(是的,這并不是拍腦袋決定的)
如果覺得小夕的這種問法很奇怪,那小夕換一種問法,你知道是代表什么意思嗎?它難道僅僅代表了“特征向量與模型參數(shù)做內(nèi)積”這么膚淺的含義嗎?
聽小夕慢慢講,手指慢慢劃,跟上思路哦。
首先,模型參數(shù)是個向量,維數(shù)與樣本的維數(shù)一致(忽略偏置項這種細節(jié)問題啦),為了好看,下文用w來代替。
我們來好好看看這個所謂的模型參數(shù)w。這個w在本質(zhì)上是,記為。誒?怎么能這樣呢?如何理解被拆出來的這兩個w呢?
其實只要把這個向量看作是對類別1的直接描述,將向量看作是對類別0的直接描述,新世界的大門就打開了。還記得前面小夕講的,在邏輯回歸模型中,本質(zhì)上用來預測類別的臨界點就是,也就是,這代表什么意思呢?
我們知道,對于向量a和向量b,假設它們的長度都為1,那么當向量a與向量b夾角最小時,它們的內(nèi)積,也就是會最大。當然了,推廣到更一般的說法,不限制a與b的長度,則當a與b夾角最小時,我們稱a與b的余弦相似度最大
而兩向量的夾角越小意味著什么呢?意味著這兩個向量越相似呀,意味著越親密呀。所以就意味著類別1與特征向量x的親密度減去類別0與x的親密度。因此當邏輯回歸的假設函數(shù)時,也就是時,就代表著特征向量x,也就是樣本,與類別1更親密,因此類別預測為1。同樣的道理,當x與類別0更親密時,類別預測為0。
繼續(xù),我們將上述神奇的邏輯放到邏輯回歸模型的假設函數(shù)的展開式中,將替換為我們上面的得:
等等,有沒有驚恐的發(fā)現(xiàn)什么?還記得小夕在上一篇文章《邏輯回歸》中得到的這個結論嗎?:
天吶,邏輯回歸的假設函數(shù)竟然與P(Y=1|X)一模一樣!都是!!這個sigmoid函數(shù)到底是什么?一切真的都是因為巧合嗎?不行,小夕非要一探究竟!來,手術刀拿來,解剖!
Sigmoid
為了美觀,我們直接用w1代替,用w0代替:
如果我們令分子分母同除以。。。得:
!!!有沒有被震驚到!
小夕在前面講了,w1與x的內(nèi)積代表著w1與x的親密度,這個不就代表著“類別1與x的親密度占x與所有類別親密度之和的比例”嗎?
既然是比例,那肯定是0到1之間的數(shù)呀~而這個比例又可以解讀為什么呢?不就是類別1在x心中的分量嗎?當類別1在x心中的分量超過類別0在x心中的分量時,我們的邏輯回歸模型當然要把類別1嫁給x呀~也就是將類別1作為預測的類別!
同時,這個分量越大,我們將類別1嫁給x后,會讓x滿意的概率就越大!所以這個比例又是類別1的后驗概率P(y=1|x)呀!看,一切都不是巧合吧。Sigmoid函數(shù)的意義,竟然如此深邃。
等等,雖然sigmoid(w1·x)代表"類別1與x的親密度占x與所有類別親密度之和的比例",但是顯然這里只有兩個類別,即1和0,也就是說Sigmoid是一個只能用于二類分類的函數(shù)。
那么如果我們要分類的類別超過2,我們能不能同樣用一個函數(shù)來表示出“某類別與x的親密度占x與所有類別親密度之和的比例”呢?
?
Softmax
這一次,我們倒著來!假如我們的分類任務有k個類別,與前面用w1、w0來表示類別1、類別2一樣,我們用w1、w2、w3...wk來表示各個類別。
根據(jù)前面的經(jīng)驗,這個“類別j與特征向量x的親密度”貌似可以表示為,那么我們效仿一下sigmoid,類別j與x的親密度占x與所有類別親密度之和的比例即:
將分母用整理一下,發(fā)現(xiàn)了沒有!這就是深度學習中廣泛應用的大名鼎鼎的Softmax函數(shù):
哎,原來看似深不可測的Softmax函數(shù),只是Sigmoid的一種推廣形式,其深邃意義與Sigmoid并無二致。哎,失望,Softmax也就這樣啦╮(╯▽╰)╭怪小夕咯?
總結
以上是生活随笔為你收集整理的Sigmoid函数与Softmax函数的区别与联系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyTorch数据Pipeline标准化
- 下一篇: 全栈深度学习第7期: 研究方向这么多,哪