1. 程式人生 > >機器學習 --- 線性迴歸與邏輯迴歸

機器學習 --- 線性迴歸與邏輯迴歸

線性迴歸和邏輯迴歸在機器學習上是一種監督式學習。在預測類問題上,我們希望能通過一個對映關係 f ,當給定變數 X ,能得到一個較為滿意的預測結果 Y ,迴歸方法旨在找到能表示樣本空間分佈的對映關係。

 

一、線性迴歸的基本形式

假設一個描述的示例: x^{(i)}=(x_{1};x_{2};...;x_{n}),表示第 i 個樣本具備 n 個特徵。對於 m個樣本,每個樣本都有 n 個特徵,線性模型試圖建立預測函式:

f(x^{(i)}) = w_{1}x^{(i)}_{1}+w_{2}x^{(i)}_{2}+...+w_{d}x^{(i)}_{n}+b

寫成向量的形式:

f(x^{(i)}) = w^{T}x^{(i)}+b ,使得 f(x^{(i)}) \simeq y^{(i)}

 

二、線性迴歸的代價函式

為了能滿足 f(x^{(i)}) \simeq y^{(i)} ,問題轉變成如何確立引數 w 和 b ,這點需要從預測值 f(x) 與真實值 y 差距入手,因此需要引入代價函式來反映這種差距。這裡使用均方誤差函式:

J(w;b)=\frac{1}{m}\sum_{i=1}^{m}{(f(x^{(i)})-y_{i})^{2}}=\sum_{i=1}^{m}(w^{T}x^{(i)}+b-y^{(i)})^{2}

 

三、正規方程求解線性迴歸

上述方程是針對第 i 個樣本。對於 m 個樣本, 每個樣本n個特徵。同時為了統一格式,需要加入 w_{0}x^{(i)}_{0} 的情況,令 x^{(i)}_{0}=1,寫成矩陣形式:

X=\begin{bmatrix} 1 \quad x_{1}^{(1)}...x_{n}^{(1)} \\ 1 \quad x_{1}^{(2)} ... x_{n}^{(2)} \\ \vdots \\ 1 \quad x_{1}^{(m)} ... x_{n}^{(m)} \end{bmatrix} , y=\begin{bmatrix} y^{(1)} \\ y^{(2)} \\ \vdots \\y^{(m)} \end{bmatrix}

 

令 \hat{w}=(w;b) ,整個問題轉變成:

(\hat{w}^{*},\hat{b}^{*}) = min_{\hat{w}}(y-X\hat{w})^{T}(y-X\hat{w})

很自然的想到通過求導的方式來尋找最小值。對 \hat{w} 求導並令導數為零,則有:

\hat{w}^{*}=(X^{T}X)^{-1}X^{T}y

 

觀察上式的 (X^{T}X)^{-1} ,當 X^{T}X 不可逆時(說明 X 的某些特徵存在冗餘,即某些特徵線性相關),無法求得該關係式的逆。這時候需要引入正則化。同樣地,當矩陣 X 規模過於龐大,求解逆將會帶來巨大的時間開銷。這時會考慮使用梯度下降法來求解。

 

四、梯度下降法求解

梯度下降法的思想是:從某點開始,求出該點的梯度向量,給定學習率 \alpha 。沿著梯度向量的反方向,以步長 \alpha

 ,經過迭代,最終可能會收斂到函式最小值附近。

為了方便用圖形說明,設成本函式: J(\theta_{0},\theta_{1}) ,下圖是整個迭代的過程。

觀察上圖會發現,函式可能會陷入區域性最優解。但對於凸函式來說,則一定會收斂到全域性最優解。需要注意的是,當學習率取得過大,函式可能會難以收斂到最優解。反之,迭代收斂速度會變得緩慢。本例中所使用的均方誤差函式,直觀地說明影象就好比一個開口朝上地碗似的,因此必定會收斂到全域性最有點

一般情況下,每次迭代過程中有:

\theta_{j}=\theta_{j}-\alpha\frac{\partial J(\theta_{0},\theta_{1},...\theta_{j})}{\partial\theta_{j}}

迭代過程中,成本函式的值會逐漸減小,反應在該模型中就是 f(X) \simeq y ,即預測值相對於真實值的差距會逐步縮小。最終可以在 m 個樣本的集合中,擬合出較為合適的近似函式。

 

五、邏輯迴歸基本形式

上述過程可以得到連續區間的值,對於分類問題來說。需要將結果對映到一個離散的空間中,自然地想到,通過給定閾值可以很好地將結果歸類。邏輯迴歸比較常用於這種問題。以二分類問題為例,其 y\epsilon(0,1) ,通過sigmoid函式可以將輸出結果是連續值對映到 概率值(0,1) 上。

當z的值很大時,y的值趨近於1。當z值很小時,y值趨近於0

將之前的線性迴歸函式與sigmoid函式聯立中:

y=\frac {1}{1+e^{-(w^{T}x+b)}}

如果使用均方誤差代價函式,會出現,當sigmoid函式逐步趨近於0/1時,函式的梯度變得平緩,因此所求導數值會非常小,所以每次梯度下降的步長會很小,導致整個收斂過程變得非常緩慢。下面進行一個簡單的推導來說明這種現象:

為了簡單起見,以單個樣本為例,考慮輸入的特徵屬性僅為1,則有:

z=wx , a=sigmoid(z) , L=(a-y)^{2}

推導:

\frac{\partial L}{\partial z}=\frac{\partial L}{\partial a}* \frac{\partial a}{\partial z}=2(a-y)*\frac{e^{-z}}{(1+e^{-z})^{2}}

\quad \quad= \frac{e^{-z}(\frac{2}{1+e^{-z}}-2y)}{(1+e^{-z})^{2}}

觀察上述式子,當 z 很大或者很小時, \frac{\partial L}{\partial z} 值也會保持一個很小的值,因此會導致收斂速度緩慢。

 

六、邏輯迴歸中的交叉熵函式

對於二分類問題,交叉熵函式(此處的log以e為底)可以很好的避免上述的問題

J(w,b)=-\sum_{i=1}^{n}{y^{(i)}log\tilde{y}^{(i)}+(1-y^{(i)})log(1-\tilde{y}^{(i)})}

 

接著開始推導交叉熵函式。由於整個樣本的分佈滿足引數為 \theta 的伯努利分佈,在樣本空間 x上:

P(y=1|x;\theta)=\tilde{y}

P(y=0|x;\theta)=1-\tilde{y}

因此樣本 x 的分佈律是:

P(y|x;\theta)=\tilde{y}^{y}\cdot(1-\tilde{y})^{1-y}

由似然函式:

L(\theta)=p(\tilde{y}|X;\theta)=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^{m}\tilde{y}^{y}\cdot(1-\tilde{y})^{1-y}

為了構建近似樣本真實的概率分佈,需要取似然函式的最大值,因此對似然函式兩邊取對數並乘以-1,即最小化下面的式子:

J(w,b)=-\sum_{i=1}^{m}{y^{(i)}log\tilde{y}^{(i)}+(1-y^{(i)})log(1-\tilde{y}^{(i)})}

通過最小化代價函式,可以得到一個近似於訓練樣本的概率分佈。

 

七、多分類問題

對於多分類問題,可以訓練多個二分類模型來。最簡單的例子就是對A,B,C三種類別進行分類。分別訓練用於分別A、B和C的模型,B、A和C的模型,C、A和B的模型。

 

 

參考文獻:

1.周志華. 機器學習[M]. 清華大學出版社, 2016.

2.Ian Goodfellow,Yoshua Bengio,Aaron Courville.深度學習[M].人民郵電出版社,2017

3.Andrew Ng 機器學習系列課程