1. 程式人生 > >Softmax迴歸(Softmax Regression)

Softmax迴歸(Softmax Regression)

多分類問題

   在一個多分類問題中,因變數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迴歸分類器更為合適。這樣,對於每個新的音樂作品 ,我們的演算法可以分別判斷它是否屬於各個類別。