我的人工智慧之旅——邏輯迴歸
本文,將涉及以下知識點,
(1)決策邊界,decision boundary
(2)凸函式,convex function
(3)非凸函式,non convex function
此前所討論的問題,都為線性迴歸問題。本文將介紹邏輯迴歸演算法,該演算法為分類問題提出解決方案。正文如下
邏輯迴歸
邏輯迴歸,logistic regression,由於歷史問題,演算法名稱中包含“迴歸”字樣,但其解決的是分類問題。分類問題可以簡單地描述為是非問題(即結論為是否,結論),或列舉問題(即結論為已知種類中的某一型別,結論)。先以簡單的是非問題為例進行講解,之後再引入列舉問題。
解決分類問題,需要引用概率理論。其核心思想是,當達到或高於某一概率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函式)
相應影象為
其特點為:
(1)是連續的
(2)當時,;
(3)當時,;
可以看作,(((樣本z)的預估結論y)的值為1)的概率。
令,這樣,樣本X範圍可以擴充套件至。
同時,我們也得到了邏輯迴歸演算法的假設函式
決策邊界
判斷結論總需要一個臨界,此前我們引入的概率p便是決定因素。但除此之外,還需要引入另一概念,決策邊界。
當假設函式,則認定y=1的概率較高;否則,認定y=0的概率較高。
那麼,使得y=1獲得高概率的條件即為,。
即臨界條件為
假設
即
假設最終確認,,,那麼如圖,
直線及直線斜上方的區域,為y=1的區域。而直線斜下方的區域為y=0的區域。
直線被稱為決策邊界。
需要指出的是,決策邊界不一定為直線。決策邊界的形狀取決於的定義。
若,對於同樣取值的,,,決策邊界圖形為
其中,橢圓內部為y=0的區域,橢圓線及橢圓外部為y=1的區域。
可見,特徵值的擬合是會對決策邊界產生影響的。
平方誤差vs邏輯迴歸
有了假設函式後,接下來需要解決代價函式的問題。我們很容易會聯想到線性迴歸到代價函式,畢竟平方誤差是最常用的誤差量化方法。先說明一下,線性迴歸為何使用平方誤差。這裡要引用凸函式(convex function)的知識(可參照微積分基礎)。
需要特別強調一點,國內對於凹凸性定義和國外的定義是相反的。Convex Function在國內的某些數學書中指凹函式。在此,我們統一一下定義。本文中所涉及的凸函式,引用國外定義,即其影象是下凹的
因此,若一個函式為凸函式,那麼該函式一定存在最小值。相反,若該函式為非凸函式,則該函式存在多個區域性最小值。若區域性最小值的數量較多,那麼求出全域性最小值就更加麻煩了。
如何去定一個函式是否是凸函式呢?若連續,存在且,那麼該函式為凸函式。
依據此判斷條件,可以得出線性迴歸代價函式為凸函式的結論。
其中,線性迴歸假設函式為。我們使用邏輯迴歸的假設函式進行替換,可以得到
我們對該函式進行二次求導,最終結果無法確認是否大於0,因此使用平方誤差來作為邏輯迴歸的代價函式,並非最佳選擇。
代價函式
代價函式存在的意義在於,它可以使得,當預估值與實際值的偏差較大時,相應假設函式所付出的代價也越大。因此,我們可以通過求取代價函式最小值的方式,確定假設函式的設定引數最佳取值。
常用的代價函式有4類,包括絕對值,平方誤差,對數和交叉熵。我們為邏輯迴歸選擇對數代價函式。之所以這樣選擇,也是為了運算方便,因為代價函式中存在指數。
對數代價函式的公式為,
由於Y的取值為0或1,那麼,
當Y=1時,
當Y=0時,
我們來看兩種情況下,對應的對數影象。
當Y=1時,影象如下,
已知邏輯迴歸假設函式,使得,進而使得。
因此,當,。而當,。
可以理解為,當預估值越接近實際值1時,代價越小,趨近於0。而預估值越接近0時,即越偏離實際值1時,代價越大,趨近於無窮大。
再來看一下Y=0時的情況,對應的對數影象如下,
同理,,進而使得。
因此,當,。而當,。
可以理解為,當預估值越接近實際值0時,代價越小,趨近於0。而預估值越接近1時,即越偏離實際值0時,代價越大,趨近於無窮大。
由此可見,選擇對數代價函式,能夠很好的量化偏差。
接下來的工作,就是運用梯度下降(或更高階的方法),推算出了。推算步驟與線性迴歸相同,不再重複描述。
列舉問題
此前針對的問題都為是非問題,那麼如何解決列舉問題呢。例如Y的取值為0,1,2,3。
那麼,針對該例,我們需要提供4個分類器,即4個假設函式,,和。
對於假設函式來說,當預估值接近0,則其偏差最小。即視0為“是”,其它值為“非”。其它假設函式同理。
將預分類的資料X分別帶入4個假設函式,則將得到預估值,,和。
由於邏輯迴歸假設函式的寓意為概率,所以預估值高者所對應的列舉值,即為對應的最終分類。
小結
通過對比可見,線性迴歸與邏輯迴歸的區別,在於假設函式和代價函式的選取。因此,解題的關鍵在於,如何選擇合適的假設函式,且如何使得代價函式為凸函式。