logistic回歸是用來解決二類分類問題的,如果要解決的問題是多分類問題呢?那就要用到softmax回歸了,它是logistic回歸在多分類問題上的推廣。此處神經網路模型開始亂入,softmax回歸一般用於神經網路的輸出層,此時輸出層叫做softmax層。
首先介紹一下softmax函式,這個函式可以將乙個向量(x1,x2,...,xk)對映為乙個概率分布(z1,z2,...,zk),它將資料的範圍對映到(0,1)區間:
那麼在多分類問題中,假設類別標籤y∈有c個取值,那麼給定乙個樣本x,softmax回歸**x屬於類別c的後驗概率為:
其中wc是第c類的權重向量。
那麼樣本x屬於c個類別中每乙個類別的概率用向量形式就可以寫為:
其中w=[w1,w2,...,wc]是由c個類的權重向量組成的矩陣,1表示元素全為1的向量,得到
是由所有類別的後驗概率組成的向量,第c個元素就是**為第c類的概率,比如[0.05, 0.01, 0.9, 0.02, 0.02],**為第3類。
one-hot向量:[0,0,0,1,0,...,0,0]這個向量就表示第四個類別標籤,1所在的位置就是那個位置的類標籤,其它全設定為0。
假設訓練資料集為,即有m個樣本,softmax回歸使用交叉熵損失函式來學習最優的引數矩陣w,對樣本進行分類。
由於涉及到多分類,所以損失函式的表示方法稍微複雜一些。我們用c維的one-hot向量y來表示類別標籤。對於類別c,其向量表示為:
其中表示指示函式。
則softmax回歸的交叉熵損失函式為:
其中表示樣本
**為每個類別的後驗概率組成的向量。
上面這個式子不太好理解,我們單獨拿出乙個樣本來觀察。假設類別有三類,**乙個樣本x屬於第2類的交叉熵損失為
,其中,如果**正確,如
,則交叉熵損失為
,而如果**錯誤,如
,則交叉熵損失為
,可見**錯誤時損失非常大。
同樣的,用梯度下降法對損失函式進行優化求解,首先得到損失
對引數向量w的梯度:
初始化w0=0,然後對所有引數wc進行迭代更新,直至收斂。
機器學習之Softmax回歸模型
softmax在機器學習中有非常廣泛的應用,但是剛剛接觸機器學習的人可能對softmax的特點以及好處並不理解,其實你了解了以後就會發現,softmax計算簡單,效果顯著,非常好用。我們先來直 一下,softmax究竟是什麼意思 我們知道max,假如說我有兩個數,a和b,並且a b,如果取max,那...
機器學習之softmax回歸筆記
logistic回歸是用來解決二類分類問題的,如果要解決的問題是多分類問題呢?那就要用到softmax回歸了,它是logistic回歸在多分類問題上的推廣。此處神經網路模型開始亂入,softmax回歸一般用於神經網路的輸出層,此時輸出層叫做softmax層。首先介紹一下softmax函式,這個函式可...
機器學習 softmax回歸 python實現
恢復內容開始 softmax regression 可以看做是 lr 演算法在多分類上的推廣,即類標籤 y 的取值大於或者等於 2。假設資料樣本集為 left y right left x y right left x y right left x y right right 對於 sr 演算法,其...