Softmax迴歸


我們知道Logistic迴歸只能進行二分類,因爲它的隨機變量的取值只能是0或者1,那麼如果我們面對多分類問題辦?比如要將一封新收到的郵件分爲垃圾郵件,個人郵件,還是工作郵件;根據病人的病情預測病人屬於哪種病;對於諸如MNIST手寫數字分類(MNIST是一個手寫數字識別庫,相見http://yann.lecun.com/exdb/mnist/)。諸如此類問題都涉及到多分類,那麼今天要講的softmax迴歸能解決這類問題。即,softmax迴歸稱爲Logistic迴歸的擴展。 

在Logistic迴歸中,樣本數據的值,而在softmax迴歸中,其中是類別種數,如在手寫識別中,表示要識別的10個數字。設那麼

 

          

 

而且有

 

          

 

爲了將多項式模型表述成指數分佈族,先引入,它是一個維的向量,那麼

 

   

 

應用於一般線性模型,必然是屬於個類中的一種。用表示爲真,同樣當爲假時,有

,那麼進一步得到概率密度函數爲[非聯合概率密度,y有k種情況]

 

      

 

對比一下,可以得到

 

         

 

由於

 

       

 

那麼最終得到

 

       

 

可以得到期望值爲

 

       

 

接下來得到對數似然函數函數爲

 

        

 

其中是一個的矩陣,代表這個類的所有訓練參數,每個類的參數是一個維的向量。所以在

softmax迴歸中將分類爲類別的概率爲

 

        

 

跟Logistic迴歸一樣,softmax也可以用梯度下降法或者牛頓迭代法求解,對對數似然函數求偏導數,得到

 

 

然後我們可以通過梯度上升法來更新參數

 

   

 

注意這裏是第個類的所有參數,它是一個向量。

 

在softmax迴歸中直接用上述對數似然函數是不能更新參數的,因爲它存在冗餘的參數,通常用牛頓方法中的Hessian矩陣也不可逆,是一個非凸函數,那麼可以通過添加一個權重衰減項來修改代價函數,使得代價函數是凸函數,並且得到的Hessian矩陣可逆。更多詳情參考如下鏈接。

 

鏈接:http://deeplearning.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92

 

這裏面也講述了K個二元分類器與softmax的區別,值得學習。

 

 

參考資料:

(1)http://www.cnblogs.com/tornadomeet/archive/2013/03/22/2975978.html

(2)http://www.cnblogs.com/tornadomeet/archive/2013/03/23/2977621.html

(3)http://demo.netfoucs.com/lingerlanlan/article/details/38410123

(4)http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/

(5)http://blog.csdn.net/celerychen2009/article/details/9014797

發佈了1 篇原創文章 · 獲贊 19 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章