SoftMax多分類器原理及代碼理解


關於多分類

我們常見的邏輯回歸、SVM等常用於解決二分類問題,對於多分類問題,比如識別手寫數字,它就需要10個分類,同樣也可以用邏輯回歸或SVM,只是需要多個二分類來組成多分類,但這里討論另外一種方式來解決多分類——SoftMax。

SoftMax模型

Softmax回歸模型是logistic回歸模型在多分類問題上的推廣,當分類數為2的時候會退化為Logistic分類。.在多分類問題中,類標簽 y 可以取兩個以上的值。 Softmax回歸模型對於諸如MNIST手寫數字分類等問題是很有用的,該問題的目的是辨識10個不同的單個數字。Softmax回歸是有監督的。

在logistic回歸中,訓練集由 m 個已標記的樣本構成:

,,由於logistic回歸是針對二分類問題的,因此類標記 y^{(i)}\in \left\{ 0,1 \right\}

假設函數如下:

訓練模型參數 \theta ,使其能夠最小化代價函數:

對於給定的測試輸入 x ,用假設函數針對每一個類別 j 估算出概率值 p(y=j|x) ,即,估計 x 的每一種分類結果出現的概率。假設函數將要輸出 一個 k 維的向量來表示這 k 個估計的概率值。假設函數 h_{\theta}(x) 形式如下:



代價函數

上述公式是logistic回歸代價函數的推廣。logistic回歸代價函數可以改為:

 

Softmax代價函數與logistic 代價函數在形式上非常類似,只是在Softmax損失函數中對類標記的 k 個可能值進行了累加。注意在Softmax回歸中將 x 分類為類別 j 的概率為:

一般使用梯度下降優化算法來最小化代價函數,而其中會涉及到偏導數,即,則求偏導,得到代價函數對參數權重的梯度就可以優化了。


 

例子

從下圖看,神經網絡中包含了輸入層,然后通過兩個特征層處理,最后通過softmax分析器就能得到不同條件下的概率,這里需要分成三個類別,最終會得到y=0、y=1、y=2的概率值。

 

繼續看下面的圖,三個輸入通過softmax后得到一個數組[0.05 , 0.10 , 0.85],這就是soft的功能。

計算過程直接看下圖,其中即為,三個輸入的值分別為3、1、-3,的值為20、2.7、0.05,再分別除以累加和得到最終的概率值,0.88、0.12、0。

這里寫圖片描述

 可以看到它有多個值,所有值加起來剛好等於1,每個輸出都映射到了0到1區間,可以看成是概率問題。

為多個輸入,訓練其實就是為了逼近最佳的


 使用場景

在多分類場景中可以用softmax也可以用多個二分類器組合成多分類,比如多個邏輯分類器或SVM分類器等等。該使用softmax還是組合分類器,主要看分類的類別是否互斥,如果互斥則用softmax,如果不是互斥的則使用組合分類器。

 參考文獻:

https://www.cnblogs.com/hellcat/p/7220536.html?utm_source=itdadao&utm_medium=referral 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM