Softmax回歸


1. softmax回歸模型

  softmax回歸模型是logistic回歸模型在多分類問題上的擴展(logistic回歸解決的是二分類問題)。

  對於訓練集\{ (x^{(1)}, y^{(1)}), \ldots, (x^{(m)}, y^{(m)}) \},有\{ (x^{(1)}, y^{(1)}), \ldots, (x^{(m)}, y^{(m)}) \}

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


\begin{align}
h_\theta(x^{(i)}) =
\begin{bmatrix}
p(y^{(i)} = 1 | x^{(i)}; \theta) \\
p(y^{(i)} = 2 | x^{(i)}; \theta) \\
\vdots \\
p(y^{(i)} = k | x^{(i)}; \theta)
\end{bmatrix}
=
\frac{1}{ \sum_{j=1}^{k}{e^{ \theta_j^T x^{(i)} }} }
\begin{bmatrix}
e^{ \theta_1^T x^{(i)} } \\
e^{ \theta_2^T x^{(i)} } \\
\vdots \\
e^{ \theta_k^T x^{(i)} } \\
\end{bmatrix}
\end{align}

  其中\theta_1, \theta_2, \ldots, \theta_k \in \Re^{n+1}是模型的參數。\frac{1}{ \sum_{j=1}^{k}{e^{ \theta_j^T x^{(i)} }} } 這一項對概率分布進行歸一化,舍得所有概率之和為1.

  softmax回歸的代價函數:


\begin{align}
J(\theta) = - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k}  1\left\{y^{(i)} = j\right\} \log \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)} }}\right]
\end{align}

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


\begin{align}
J(\theta) &= -\frac{1}{m} \left[ \sum_{i=1}^m   (1-y^{(i)}) \log (1-h_\theta(x^{(i)})) + y^{(i)} \log h_\theta(x^{(i)}) \right] \\
&= - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=0}^{1} 1\left\{y^{(i)} = j\right\} \log p(y^{(i)} = j | x^{(i)} ; \theta) \right]
\end{align}

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


p(y^{(i)} = j | x^{(i)} ; \theta) = \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)}} }


\begin{align}
\nabla_{\theta_j} J(\theta) = - \frac{1}{m} \sum_{i=1}^{m}{ \left[ x^{(i)} \left( 1\{ y^{(i)} = j\}  - p(y^{(i)} = j | x^{(i)}; \theta) \right) \right]  }
\end{align}
有了上面的偏導數公式以后,我們就可以將它代入到梯度下降法等算法中,來最小化 \textstyle J(\theta)。 例如,在梯度下降法的標准實現中,每一次迭代需要進行如下更新: \textstyle \theta_j := \theta_j - \alpha \nabla_{\theta_j} J(\theta)

 

2. 權重衰減

      在實際應用中,為了使算法實現更簡單清楚,往往保留所有參數 \textstyle (\theta_1, \theta_2,\ldots, \theta_n),而不任意地將某一參數設置為 0。但此時我們需要對代價函數做一個改動:加入權重衰減。權重衰減可以解決 softmax 回歸的參數冗余所帶來的數值問題。


\begin{align}
J(\theta) = - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k} 1\left\{y^{(i)} = j\right\} \log \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)} }}  \right]
              + \frac{\lambda}{2} \sum_{i=1}^k \sum_{j=0}^n \theta_{ij}^2
\end{align}

      我們通過添加一個權重衰減項 \textstyle \frac{\lambda}{2} \sum_{i=1}^k \sum_{j=0}^{n} \theta_{ij}^2 來修改代價函數,這個衰減項會懲罰過大的參數值,現在我們的代價函數變為:

      有了這個權重衰減項以后 (\textstyle \lambda > 0),代價函數就變成了嚴格的凸函數,這樣就可以保證得到唯一的解了。 此時的 Hessian矩陣變為可逆矩陣,並且因為\textstyle J(\theta)是凸函數,梯度 下降法和 L-BFGS 等算法可以保證收斂到全局最優解。

      為了使用優化算法,我們需要求得這個新函數 \textstyle J(\theta) 的導數,如下:


\begin{align}
\nabla_{\theta_j} J(\theta) = - \frac{1}{m} \sum_{i=1}^{m}{ \left[ x^{(i)} ( 1\{ y^{(i)} = j\}  - p(y^{(i)} = j | x^{(i)}; \theta) ) \right]  } + \lambda \theta_j
\end{align}

      通過最小化 \textstyle J(\theta),我們就能實現一個可用的 softmax 回歸模型。

 

3. 模型選擇

      如果你在開發一個音樂分類的應用,需要對k種類型的音樂進行識別,那么是選擇使用 softmax 分類器呢,還是使用 logistic 回歸算法建立 k 個獨立的二元分類器呢?

      這一選擇取決於你的類別之間是否互斥,例如,如果你有四個類別的音樂,分別為:古典音樂、鄉村音樂、搖滾樂和爵士樂,那么你可以假設每個訓練樣本只會被打上一個標簽(即:一首歌只能屬於這四種音樂類型的其中一種),此時你應該使用類別數 k = 4 的softmax回歸。

      如果你的四個類別如下:人聲音樂、舞曲、影視原聲、流行歌曲,那么這些類別之間並不是互斥的。例如:一首歌曲可以來源於影視原聲,同時也包含人聲 。這種情況下,使用4個二分類的 logistic 回歸分類器更為合適。這樣,對於每個新的音樂作品 ,我們的算法可以分別判斷它是否屬於各個類別。

      現在我們來看一個計算視覺領域的例子,你的任務是將圖像分到三個不同類別中。(i) 假設這三個類別分別是:室內場景、戶外城區場景、戶外荒野場景。你會使用sofmax回歸還是 3個logistic 回歸分類器呢? (ii) 現在假設這三個類別分別是室內場景、黑白圖片、包含人物的圖片,你又會選擇 softmax 回歸還是多個 logistic 回歸分類器呢?

      在第一個例子中,三個類別是互斥的,因此更適於選擇softmax回歸分類器 。而在第二個例子中,建立三個獨立的 logistic回歸分類器更加合適。

 

 

整理自學習資料:Softmax回歸


免責聲明!

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



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