1. 程式人生 > >我的人工智慧之旅——邏輯迴歸

我的人工智慧之旅——邏輯迴歸

本文,將涉及以下知識點,

(1)決策邊界,decision boundary

(2)凸函式,convex function

(3)非凸函式,non convex function

此前所討論的問題,都為線性迴歸問題。本文將介紹邏輯迴歸演算法,該演算法為分類問題提出解決方案。正文如下


邏輯迴歸

邏輯迴歸,logistic regression,由於歷史問題,演算法名稱中包含“迴歸”字樣,但其解決的是分類問題。分類問題可以簡單地描述為是非問題(即結論為是否,結論y\in \begin{Bmatrix} 0,1 \end{Bmatrix}),或列舉問題(即結論為已知種類中的某一型別,結論y\in \begin{Bmatrix} 0,1,2,3,...,n \end{Bmatrix})。先以簡單的是非問題為例進行講解,之後再引入列舉問題。

解決分類問題,需要引用概率理論。其核心思想是,當達到或高於某一概率p時,認為其為某種型別,否則不是該型別。概率p即為閥值,用於區分型別。通常將閥值定為0.5。

在詳細講述邏輯迴歸演算法前,先來看一個問題。為什麼不能用線性迴歸來解決分類問題?

線性迴歸vs分類問題

線性迴歸不能解決所有的分類問題。因為分類問題所對應的數學關係是離散的,結論y在一個有限的範圍內。例如,是非類問題的結論y僅能為1或0,而線性迴歸所對應的數學關係是連續的。結論y不限於0到1間,可以小於0,或者大於1。

那麼,如果縮小取值範圍,僅將樣本集合所對應的預估值限制於【0,1】區間呢?

在該前提下,還需要界定一個閥值(介於0與1之間),當假設函式預估值大於等於該閥值時,表示結論y為1。假設函式預估值小於該閥值時,表示結論y為0。而閥值可以看作是概率,概率高時,結論y為1(或0)。概率低時,結論y為0(或1)。

如下例。

樣本(x,y)集合為{(0.2,0),(0.3,0),(0.4,0),(0.8,0),(0.9,0),(1,0),(1.25,1),(1.3,1),(2.1,1),(3.4,1)}。

通過線性迴歸演算法學習,可以劃定藍色的假設函式。當x>=1.25時,預估值大於等於0.5,即結論y為1。所有樣本都符合。

但當新增樣本點(4.9,1)時,通過線性迴歸演算法學習後,假設函式將變為棕色線條。

當x>=1.75時,預估值大於等於0.5。此時,原有樣本(1.25,1),(1.3,1)不符合條件。

所以,不能將線性迴歸演算法應用於分類問題,至少不能應用於所有分類問題。因此,對於邏輯迴歸,需要全新的假設函式。

假設函式

邏輯迴歸的假設函式必須滿足一個條件,函式預估值必須對映到【0,1】區間內。因此,我們引入sigmoid函式(或logistic函式)

f(z)=\frac{1}{1+e^{-z}}

相應影象為

其特點為:

(1)f(z)是連續的

(2)當z\rightarrow +\infty時,f(z)\rightarrow 1

(3)當z\rightarrow -\infty時,f(z)\rightarrow 0;

f(z)可以看作,(((樣本z)的預估結論y)的值為1)的概率。

z=A^TX,這樣,樣本X範圍可以擴充套件至(-\infty ,+\infty )

同時,我們也得到了邏輯迴歸演算法的假設函式

f(X)=\frac{1}{1+e^{-{(A^TX)}}}

決策邊界

判斷結論總需要一個臨界,此前我們引入的概率p便是決定因素。但除此之外,還需要引入另一概念,決策邊界。

當假設函式f(X)\geqslant 0.5,則認定y=1的概率較高;否則,認定y=0的概率較高。

那麼,使得y=1獲得高概率的條件即為,A^TX\geqslant 0

即臨界條件為A^TX= 0

假設A^TX= a_0+a_1x_1+a_2x_2

a_0+a_1x_1+a_2x_2=0

假設最終確認a_0=-3a_1=1a_2=2,那麼如圖,

直線及直線斜上方的區域,為y=1的區域。而直線斜下方的區域為y=0的區域。

直線x_1+2x_2=3被稱為決策邊界。

需要指出的是,決策邊界不一定為直線。決策邊界的形狀取決於A^TX的定義。

A^TX=a_0+a_1x_1^2+a_2x_2^2,對於同樣取值的a_0a_1a_2,決策邊界圖形為

其中,橢圓內部為y=0的區域,橢圓線及橢圓外部為y=1的區域。

可見,特徵值的擬合是會對決策邊界產生影響的。

平方誤差vs邏輯迴歸

有了假設函式後,接下來需要解決代價函式的問題。我們很容易會聯想到線性迴歸到代價函式,畢竟平方誤差是最常用的誤差量化方法。先說明一下,線性迴歸為何使用平方誤差。這裡要引用凸函式(convex function)的知識(可參照微積分基礎)。

需要特別強調一點,國內對於凹凸性定義和國外的定義是相反的。Convex Function在國內的某些數學書中指凹函式。在此,我們統一一下定義。本文中所涉及的凸函式,引用國外定義,即其影象是下凹的

因此,若一個函式為凸函式,那麼該函式一定存在最小值。相反,若該函式為非凸函式,則該函式存在多個區域性最小值。若區域性最小值的數量較多,那麼求出全域性最小值就更加麻煩了。

如何去定一個函式是否是凸函式呢?若f(x)連續,連續,{f(x)}''存在且{f(x)}''> 0,那麼該函式為凸函式。

依據此判斷條件,可以得出線性迴歸代價函式J(A^T)=\frac{1}{2m}\sum _{j=1}^{m}{(A^TX_j-Y_j)^2}為凸函式的結論。

其中,線性迴歸假設函式為f(X)=A^TX。我們使用邏輯迴歸的假設函式f(X)=\frac{1}{1+e^{-{(A^TX)}}}進行替換,可以得到

J(A^T)=\frac{1}{2m}\sum _{j=1}^{m}{(\frac{1}{1+e^{-{(A^TX_j)}}}-Y_j)^2}

我們對該函式進行二次求導,最終結果無法確認是否大於0,因此使用平方誤差來作為邏輯迴歸的代價函式,並非最佳選擇。

代價函式

代價函式存在的意義在於,它可以使得,當預估值與實際值的偏差較大時,相應假設函式所付出的代價也越大。因此,我們可以通過求取代價函式最小值的方式,確定假設函式的設定引數最佳取值。

常用的代價函式有4類,包括絕對值,平方誤差,對數和交叉熵。我們為邏輯迴歸選擇對數代價函式。之所以這樣選擇,也是為了運算方便,因為代價函式中存在指數。

對數代價函式的公式為,

J(A^T)=-\frac{1}{m}\sum _{j=1}^{m}{\left [ Y_jlog(f(X_j))+(1-Y_j)log(1-f(X_j)) \right ]}

由於Y的取值為0或1,那麼,

當Y=1時,J(A^T)=-\frac{1}{m}\sum _{j=1}^{m}log(f(X_j))

當Y=0時,J(A^T)=-\frac{1}{m}\sum _{j=1}^{m}log(1-f(X_j))

我們來看兩種情況下,對應的對數影象。

當Y=1時,影象如下,


已知邏輯迴歸假設函式f(X)=\frac{1}{1+e^{-A^TX}},使得0< f(X)< 1,進而使得+\infty> -log(f(X))> 0

因此,當f(X)\rightarrow 1-log(f(X))\rightarrow 0。而當f(X)\rightarrow 0-log(f(X))\rightarrow +\infty

可以理解為,當預估值越接近實際值1時,代價越小,趨近於0。而預估值越接近0時,即越偏離實際值1時,代價越大,趨近於無窮大。

再來看一下Y=0時的情況,對應的對數影象如下,

同理,0< f(X)< 1,進而使得+\infty> -log(1-f(X))> 0

因此,當f(X)\rightarrow 0-log(1-f(X))\rightarrow 0。而當f(X)\rightarrow 1-log(1-f(X))\rightarrow +\infty

可以理解為,當預估值越接近實際值0時,代價越小,趨近於0。而預估值越接近1時,即越偏離實際值0時,代價越大,趨近於無窮大。

由此可見,選擇對數代價函式,能夠很好的量化偏差。

接下來的工作,就是運用梯度下降(或更高階的方法),推算出A^T了。推算步驟與線性迴歸相同,不再重複描述。

列舉問題

此前針對的問題都為是非問題,那麼如何解決列舉問題呢。例如Y的取值為0,1,2,3。

那麼,針對該例,我們需要提供4個分類器,即4個假設函式f_1(X)f_2(X)f_3(X)f_4(X)

對於假設函式f_1(X)來說,當預估值接近0,則其偏差最小。即視0為“是”,其它值為“非”。其它假設函式同理。

將預分類的資料X分別帶入4個假設函式,則將得到預估值Y_1Y_2Y_3Y_4

由於邏輯迴歸假設函式的寓意為概率,所以預估值高者所對應的列舉值,即為對應的最終分類。

小結

通過對比可見,線性迴歸與邏輯迴歸的區別,在於假設函式和代價函式的選取。因此,解題的關鍵在於,如何選擇合適的假設函式,且如何使得代價函式為凸函式。