Logistic Regression分類器


1. 兩類Logistic回歸

Logistic回歸是一種非常高效的分類器。它不僅可以預測樣本的類別,還可以計算出分類的概率信息。

不妨設有$n$個訓練樣本$\{x_1, ..., x_n\}$,$x_i$是$d$維向量,其類別標簽是$\{y_1, ..., y_n\}$。對於一個$c$類問題,$y_i \in \{1, 2, ..., c\}$。Logistic回歸學習這樣一個函數

\begin{equation}
f(x) = g(\theta^T x) = \frac{1}{1+e^{-\theta^T x}}
\end{equation}
其中,
\begin{equation}
g(z) = \frac{1}{1+e^{-z}}
\end{equation}
被稱為Logistic函數或者Sigmoid函數。


設$x=[x^{(1)}, ..., x^{(d)}]^T$。實際上,$\theta^T x$這兒應該寫成$\theta_0 + \theta^T x$($\theta$是$d$維向量),要有個常數項。但是為了方便,我們設$x^{(0)}=1$,所以$\theta_0 + \theta^T x$可以直接寫作$\theta^T x$,而此處的$\theta$是$d+1$維向量,即$\theta^T x = \sum_{j=0}^d \theta_j x^{(j)}$。

可以看出來,當$z$無窮大時,$g(z)$趨於1;當$z$無窮小時,$g(z)$趨於0;當$z=0$時,$g(z)=0.5$。 $g(z)$的值域是$[0, 1]$,所以$f(x)$的值域也是$[0, 1]$。

首先我們考慮$2$類問題,設
\begin{equation}
P(y=1|x,\theta) = f(x)
\end{equation}
即對於給定的樣本$x$,其屬於類別$1$的概率是$f(x)$。則屬於類別$0$的概率是
\begin{equation}
P(y=0 | x,\theta) = 1-f(x)
\end{equation}

上述概率也可以寫作
\begin{equation}
P(y | x,\theta) = f(x)^y (1-f(x))^{1-y}
\end{equation}


Logistic回歸具有如下的特點。一個事件發生的機率(odds)定義為事件發生的概率與不發生的概率的比值。設$p=P(y=1|x,\theta)$,那么事件的機率是$\frac{p}{1-p}$。其對數函數是
\begin{equation}
log \frac{p}{1-p} = log \frac{P(y=1|x,\theta)}{1-P(y=1|x,\theta)} = \theta x
\end{equation}
可以看出,輸出類別$1$的對數機率是輸入$x$的線性函數。

此外,后驗概率也可以寫作如下形式:
\begin{equation}
\begin{aligned}
& P(y=1 | x,\theta) = \frac{e^{\theta^T x}}{1+e^{\theta^T x}} \\
& P(y=0 | x,\theta) = \frac{1}{1+e^{\theta^T x}}
\end{aligned}
\end{equation}
(這與下文將到的多類形式一致)

學習or訓練的過程就是通過訓練數據,來求解出最優的參數$\theta$。而預測的方法是計算后驗概率$P(y | x,\theta)$,如果大於$0.5$,則預測為類別$1$;否則為類別$0$。

以下使用極大似然估計方法來求解參數。參數$\theta$的似然函數是:
\begin{equation}
\begin{aligned}
L(\theta) & = \prod_{i=1}^{n} P(y_i | x_i, \theta) \\
& = \prod_{i=1}^{n} f(x_i)^{y_i} (1-f(x_i))^{1-y_i}
\end{aligned}
\end{equation}

最大化似然函數往往比較困難,可以通過最大化對數似然函數來求解。$\theta$的對數似然函數是:
\begin{equation}
\begin{aligned}
\ell(\theta) & = \log L(\theta) \\
& = \log \prod_{i=1}^{n} f(x_i)^{y_i} (1-f(x_i))^{1-y_i} \\
& = \sum_{i=1}^{n} \log f(x_i)^{y_i} (1-f(x_i))^{1-y_i} \\
& = \sum_{i=1}^{n} y_i \log f(x_i) + (1-y_i) \log (1-f(x_i))
\end{aligned}
\end{equation}

實際上,代價函數的形式是:
\begin{equation}
J(\theta) = -\frac{1}{n} \sum_{i=1}^{n} y_i \log f(x_i) + (1-y_i) \log (1-f(x_i))
\end{equation}
所以最小化代價函數就等價於最大化似然估計。


可以通過梯度下降法來求解$l(\theta)$的極大值。即
\begin{equation}
\theta := \theta + \alpha \nabla_{\theta} \ell(\theta)
\end{equation}

\begin{equation}
\begin{aligned}
\frac{\partial}{\partial \theta_j} \ell(\theta) & = \frac{\partial}{\partial \theta_j} \sum_{i=1}^{n} y_i \log g(\theta^Tx_i) + (1-y_i) \log (1-g(\theta^Tx_i)) \\
& = \sum_{i=1}^n (y_i \frac{1}{g(\theta^T x_i)} - (1-y_i) \frac{1}{1-g(\theta^T x_i)}) \frac{\partial}{\partial \theta_j} g(\theta^T x_i) \\
& = \sum_{i=1}^n (y_i \frac{1}{g(\theta^T x_i)} - (1-y_i) \frac{1}{1-g(\theta^T x_i)}) g(\theta^T x_i) (1- g(\theta^T x_i))\frac{\partial}{\partial \theta_j} \theta^Tx_i \\
& = \sum_{i=1}^n (y_i (1- g(\theta^T x_i)) - (1-y_i)g(\theta^T x_i)) x_i^{(j)} \\
& = \sum_{i=1}^n (y_i - f(x_i)) x_i^{(j)}
\end{aligned}
\end{equation}
$x_i^{(j)}$是第$i$個樣本的第$j$個特征。

所以,對於參數$\theta$向量中的任一元素$\theta_j$,迭代方式如下:
\begin{equation}
\theta_j := \theta_j + \alpha \sum_{i=1}^n (y_i - f(x_i)) x_i^{(j)}
\end{equation}
如此,便可將全部參數求解出來。

此外,Logistic回歸的求解也可以采用Newton迭代法等。


2. 正則化
在機器學習中,正則化是非常常用的方法。它用來約束模型的參數,使得求解出來的參數不會太大(模型不能過於復雜),以防止過擬合。

Logistic回歸經常加入$\ell_1$正則或者$\ell_2$正則。參數求解的問題轉變為:
\begin{equation}
\underset{\theta}{\arg \max} \;\; \ell(\theta) - \alpha \|\theta\|^2
\end{equation}


3. 多類情況

%可以換一種角度來理解Logistic回歸。一個事件發生與不發生的比值被稱為機率(odds)。假設發生的概率是$p$,那么發生的幾率是$p/(1-p)$。幾率越大,發生的可能性越大。


面向多類分類問題的Logistic回歸,也叫softmax regression。假設是一個$c$類問題,則類別標簽$y_i \in \{1, ..., c\}$。 使用one-vs-all策略可以將兩類分類器擴展為多類分類器,即將選取任意一類,再將其它所有類看成是一類,構建一個兩類分類器,這樣一共需要$c$個分類器。

定義
\begin{equation}
\begin{aligned}
P(y=1 | x) &= \frac{e^{\theta_1^T x}}{\sum_{k=1}^{c}e^{\theta_k^T x}} \\
P(y=2 | x) &= \frac{e^{\theta_2^T x}}{\sum_{k=1}^{c}e^{\theta_k^T x}} \\
&... \\
P(y=c | x) &= \frac{e^{\theta_c^T x}}{\sum_{k=1}^{c}e^{\theta_k^T x}}
\end{aligned}
\end{equation}

該模型有這樣一個性質,對於所有參數$\theta_i$,加上一個向量$v$,后驗概率的值不變。即
\begin{equation}
\begin{aligned}
\frac{e^{(\theta_1+v)^T x}}{\sum_{k=1}^{c}e^{(\theta_k+v)^T x}} & = \frac{e^{\theta_1^T x + v^T x}}{\sum_{k=1}^{c}e^{\theta_k^T x + v^T x}} \\
& = \frac{e^{\theta_1^T x} e^{v^T x}}{\sum_{k=1}^{c} e^{\theta_k^T x} e^{v^T x}} \\
& = \frac{e^{\theta_1^T x}}{\sum_{k=1}^{c} e^{\theta_k^T x}}
\end{aligned}
\end{equation}

我們設$v=\theta_c$, 則新的參數為
\begin{equation}
\begin{aligned}
& \theta_1 = \theta_1 - \theta_c \\
& ... \\
& \theta_{c-1} = \theta_{c-1} - \theta_c \\
& \theta_c = 0
\end{aligned}
\end{equation}

則多類Logistic回歸模型可寫作
\begin{equation}
\begin{aligned}
P(y=1 | x) &= \frac{e^{\theta_1^T x}}{1 + \sum_{k=1}^{c-1}e^{\theta_k^T x}} \\
&... \\
P(y=c-1 | x) &= \frac{e^{\theta_{c-1}^T x}}{1 + \sum_{k=1}^{c-1}e^{\theta_k^T x}} \\
P(y=c | x) &= \frac{1}{1 + \sum_{k=1}^{c-1}e^{\theta_k^T x}}
\end{aligned}
\end{equation}


加入正則項后的代價函數可以表述為
\begin{equation}
J(\theta) = -\frac{1}{m} \left(\sum_{i=1}^n \sum_{k=1}^c 1\{y_i=k\} log\frac{\theta_k x_i}{\sum_{l=1}^c \theta_l^T x_i} \right)
\end{equation}
其中,$1\{y_i=k\}$是指示函數,若$y_i=k$為真,則等於$1$,否則等於$0$。

對於參數的求解,與兩類問題的求解方法一樣。

 


免責聲明!

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



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