02-13 Softmax迴歸

[TOC] 更新、更全的《機器學習》的更新網站,更有python、go、數據結構與算法、爬蟲、人工智能教學等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlhtml

Softmax迴歸

Softmax迴歸屬於多分類$c_1,c_2,\ldots,c_k$模型,它經過估計某個樣本屬於$k$個類別的各自的機率達到多分類的目的。它是邏輯迴歸的通常形式,即當$k=2$的時候退化爲邏輯迴歸。python

1、Softmax迴歸詳解

1.1 讓步比

因爲softmax迴歸更多的是邏輯迴歸的多分類形式,此處只給出softmax的定義及公式。 讓步比能夠理解成有利於某一特定事件的機率,能夠定義爲git

\[ {\frac{p}{1-p}} \]

在已知二分類問題的狀況下每一個分類的機率分別爲$\hat$和$1-\hat$,能夠定義logit函數,即讓步比的對數形式(log-odds)爲算法

\[ \begin{align} \log{it}(\hat{y_i}) & = \log{\frac{p(y=1|x,\omega)}{p(y=0|x,\omega)}} \\ & = \log{\frac{\hat{y_i}}{1-\hat{y_i}}} \\ & = \log{\frac{{\frac{1}{1+e^{-\omega^Tx}}}}{{\frac{-\omega^Tx}{1+e^{-\omega^Tx}}}}} \\ & = \omega^Tx \end{align} \]

其中$\log(p)$函數等於事件發生的機率除以不發生的機率取對數,即表示特徵值和對數機率之間的線性關係。數據結構

1.2 不一樣類之間的機率分佈

如今假設有一個$k$元分類模型,即樣本的輸出值爲$c_1,c_2,\ldots,c_k$,對於某一個實例預測爲$c_i$樣本的機率總和爲$1$,即機器學習

\[ \sum_{i=1}^k p(y=i|x,\omega) =1 \]

該$k$元分類模型依據讓步比的對數形式能夠獲得函數

\[ \begin{align} & \ln{\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} = {\omega_1^T}x \\ & \ln{\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} = {\omega_2^T}x \\ & \cdots \\ & \ln{\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} = {\omega_{k-1}^T}x \\ & \ln{\frac{p(y=k|x,\omega)}{p(y=k|x,\omega)}} = {\omega_{k}^T}x = 0 \\ \end{align} \]

經過對上述公式化簡可得學習

\[ \begin{align} & {\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_1^T}x} \\ & {\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_2^T}x} \\ & \cdots \\ & {\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_{k-1}^T}x} \\ \end{align} \]
\[ \begin{align} e^{{\omega_1^T}x}+e^{{\omega_1^T}x}+\cdots+e^{{\omega_{k-1}^T}x} & = \sum_{i=1}^{k-1} e^{{\omega_i^T}x} \\ & = {\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} + {\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} + \cdots + {\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} \\ & = {\frac{p(y=1|x,\omega)+p(y=2|x,\omega)+\cdots+p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} \\ & = {\frac{1-p(y=k|x,\omega)}{p(y=k|x,\omega)}} \\ \end{align} \]

既得$p(y=k|x,\omega)={\frac{1}{1+\sum_{i=1} e{{\omega_i^T}x}}}$網站

經過$p(y=k|x,\omega)$便可推出$p(y=j|x,\omega)={\frac{e^{{\omega_jT}x}}{1+\sum_{t=1} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k-1$,所以能夠獲得$k$元分類模型的$k$個類的機率分佈爲人工智能

\[ p(c=k|x,\omega)= \begin{cases} {\frac{e^{{\omega_j^T}x}}{1+\sum_{t=1}^{k-1} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k-1 \quad if類別爲1,2,\ldots,k-1 \\ {\frac{1}{1+\sum_{i=1}^{k-1} e^{{\omega_i^T}x}}} \quad if類別爲k \\ \end{cases} \]

1.3 目標函數

上一節基於${\omega_kT}x=0$計算出每一個分類的機率,然而現實中每每${\omega_kT}x\neq0$,可使用上一節的推導過程假設${\omega_k^T}x\neq0$則能夠推導出$k$元分類模型的$k$個類的機率分佈爲

\[ p(c=k|x,\omega)={\frac{e^{{\omega_j^T}x}}{\sum_{t=1}^{k} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k \]

經過上述$k$個類別的機率分佈可得似然函數

\[ \begin{align} L(\omega) & = \prod_{i=1}^m \prod_{k=1}^k p(c=k|x_i,\omega)^{{y_i}_k} \\ & = \prod_{i=1}^m \prod_{k=1}^k ({\frac{e^{({\omega_k^T}x_i)}}{\sum_{t=1}^k e^{{\omega_t^T}x_i}}})^{y_ik} \end{align} \]

經過似然函數便可得對數似然函數即目標函數(注:該目標函數與交叉熵損失函數的形式一致,二元邏輯迴歸能夠理解爲交叉熵損失函數兩個類變量的特殊形式,Softmax迴歸能夠理解成交叉熵損失函數的多個類變量的特殊形式,交叉熵爲

\[ \begin{align} J_m(\omega) & = \log{L(\omega)} \\ & = \sum_{i=1}^m\sum_{k=1}^k {y_i}_k ({\omega_k^T}x_i - \log\sum_{t=1}^k e^{({\omega_t^T}x_i)}) \end{align} \]

1.4 目標函數最大化

因爲Softmax迴歸和邏輯迴歸均可以使用梯度上升法使得目標函數最大化,而且方式同樣,所以此處只給出目標函數對參數的偏導。

\[ {\frac{\partial{J(\omega)}}{\partial\omega_k}}=\sum_{i=1}^m ({y_i}_k-p({y_i}_k|x_i,\omega_k))x_i \]

2、Softmax迴歸優缺點

2.1 優勢

  1. 基於模型自己能夠處理多分類問題

2.2 缺點

  1. 計算極其複雜

$2^2$

相關文章
相關標籤/搜索