轉載請注明出處:http://www.cnblogs.com/BYRans/
多分類問題
在一個多分類問題中,因變量y有k個取值,即。例如在郵件分類問題中,我們要把郵件分為垃圾郵件、個人郵件、工作郵件3類,目標值y是一個有3個取值的離散值。這是一個多分類問題,二分類模型在這里不太適用。
多分類問題符合多項分布。有許多算法可用於解決多分類問題,像決策樹、朴素貝葉斯等。這篇文章主要講解多分類算法中的Softmax回歸(Softmax Regression)
推導思路為:首先證明多項分布屬於指數分布族,這樣就可以使用廣義線性模型來擬合這個多項分布,由廣義線性模型推導出的目標函數即為Softmax回歸的分類模型。
證明多項分布屬於指數分布族
多分類模型的輸出結果為該樣本屬於k個類別的概率,從這k個概率中我們選擇最優的概率對應的類別(通常選概率最大的類別),作為該樣本的預測類別。這k個概率用k個變量,
…,
表示。這個k變量和為1,即滿足:
可以用前k-1個變量來表示,即:
使用廣義線性模型擬合這個多分類問題,首先要驗證這個多項分布是否符合一個指數分布族。定義T(y)為:
在這里,統計分量T(y)並沒有像之前那樣定義為T(y)=y,因為T(y)不是一個數值,而是一個k-1維的向量。使用符號表示向量T(y)的第i個元素。
在這里引入一個新符號:,如果括號內為true則這個符號取1,反之取0,即
,
。所以,T(y)與y的關系就可以表示為
與
關系為:
即:
多項分布表達式轉化為指數分布族表達式過程如下:
其中:
變換過程:
第一步:取值為
,
…,
中的一個,取決於y的取值。當y=i時,這一步可以理解為
第二步:消去
第三步:根據
第四、五步:轉換為廣義線性模型的表達格式。
多項分布表達式可以表示為指數分布族表達式的格式,所以它屬於指數分布族,那么就可以用廣義線性模型來擬合這個多項式分布模型。
Softmax函數(Softmax Function)
在使用廣義線性模型擬合這個多項式分布模型之前,需要先推導一個函數,這個函數在廣義線性模型的目標函數中會用到。這個函數稱為Softmax函數(Softmax Function)。
由η表達式可得:
這是關於
的表達式,把它轉化為
關於
的表達式過程為:
為了方便,令,那么
因為:
所以:
這個關於
的的函數稱為Softmax函數(Softmax Function)。
使用廣義線性構建模型
根據廣義線性模型的假設3:
θ是模型中的參數,為了符號上的方便我們定義,所以
所以模型在給定x的條件下y的分布為:
上面的表達式求解的是在y=i時的概率。在Softmax回歸這個廣義線性模型中,目標函數是:
Softmax回歸目標函數的輸出是k個概率,即
其中i=1,2,…,k(雖然輸出的是k-1個值,但是第k個值
可以由
求出),求解了這個目標函數,我們就構造出了分類模型。
目標函數推導過程如下:
現在求解目標函數還差最后一步:參數擬合的問題。跟我們之前的參數擬合方法類似,我們有m個訓練樣本,θ的似然函數為:
最大化似然函數來求解最優的參數θ,可以使用梯度上升或者牛頓方法。
求解了最優的參數θ后,就可以使用目標函數進行分類。使用函數
進行多分類的方式就叫Softmax回歸(Softmax Regression)
Softmax回歸 VS k個二元分類器
如果你在開發一個音樂分類的應用,需要對k種類型的音樂進行識別,那么是選擇使用softmax分類器呢,還是使用logistic回歸算法建立 k個獨立的二元分類器呢?
這一選擇取決於你的類別之間是否互斥,例如,如果你有四個類別的音樂,分別為:古典音樂、鄉村音樂、搖滾樂和爵士樂,那么你可以假設每個訓練樣本只會被打上一個標簽(即:一首歌只能屬於這四種音樂類型的其中一種),此時你應該使用類別數 k = 4 的softmax回歸。(如果在你的數據集中,有的歌曲不屬於以上四類的其中任何一類,那么你可以添加一個“其他類”,並將類別數 k 設為5。)
如果你的四個類別如下:人聲音樂、舞曲、影視原聲、流行歌曲,那么這些類別之間並不是互斥的。例如:一首歌曲可以來源於影視原聲,同時也包含人聲 。這種情況下,使用4個二分類的logistic回歸分類器更為合適。這樣,對於每個新的音樂作品 ,我們的算法可以分別判斷它是否屬於各個類別。