機器學習系列(2)_從初等數學視角解讀邏輯迴歸

作者:龍心塵 && 寒小陽 
時間:2015年10月。 
出處:http://blog.csdn.net/longxinchen_ml/article/details/49284391, 
http://blog.csdn.net/han_xiaoyang/article/details/49332321。 

一、 引言

前一篇文章《機器學習系列(1)_邏輯迴歸初步》中主要介紹了邏輯迴歸的由來,作用和簡單的應用,這裏追加這篇《機器學習系列(2)用初等數學視角解讀邏輯迴歸》來看看從直觀的數學視角,可以怎麼去理解邏輯迴歸的思想思路。

爲了降低理解難度,本文試圖用最基礎的初等數學來解讀邏輯迴歸,少用公式,多用圖形來直觀解釋推導公式的現實意義,希望使讀者能夠對邏輯迴歸有更直觀的理解。

二、 邏輯迴歸問題的通俗幾何描述

邏輯迴歸處理的是分類問題。我們可以用通俗的幾何語言重新表述它: 
空間中有兩羣點,一羣是圓點“〇”,一羣是叉點“X”。我們希望從空間中選出一個分離邊界,將這兩羣點分開。

邏輯迴歸幾何

注:分離邊界的維數與空間的維數相關。如果是二維平面,分離邊界就是一條線(一維)。如果是三維空間,分離邊界就是一個空間中的面(二維)。如果是一維直線,分離邊界就是直線上的某一點。不同維數的空間的理解下文將有專門的論述。

爲了簡化處理和方便表述,我們做以下4個約定:

  1. 我們先考慮在二維平面下的情況。
  2. 而且,我們假設這兩類是線性可分的:即可以找到一條最佳的直線,將兩類點分開
  3. 用離散變量y表示點的類別,y只有兩個可能的取值。y=1表示是叉點“X”,y=0表示是是圓點“〇”。
  4. 點的橫縱座標用x(X1,X2)表示。

於是,現在的問題就變成了:怎麼依靠現有這些點的座標(X1,X2)和標籤(y),找出分界線的方程。

三、 如何用解析幾何的知識找到邏輯迴歸問題的分界線?

  1. 我們用逆推法的思路: 
    假設我們已經找到了這一條線,再尋找這條線的性質是什麼。根據這些性質,再來反推這條線的方程。
  2. 這條線有什麼性質呢? 
    首先,它能把兩類點分開來。——好吧,這是廢話。( ̄▽ ̄)” 
    然後,兩類點在這條線的法向量p上的投影的值的正負號不一樣,一類點的投影全是正數,另一類點的投影值全是負數! 
    • 首先,這個性質是非常好,可以用來區分點的不同的類別
    • 而且,我們對法向量進行規範:只考慮延長線通過原點的那個法向量p。這樣的話,只要求出法向量p,就可以唯一確認這條分界線,這個分類問題就解決了。 
      法向量投影 
      投影結果
  3. 還有什麼方法能將法向量p的性質處理地更好呢? 
    因爲計算各個點到法向量p投影,需要先知道p的起點的位置,而起點的位置確定起來很麻煩,我們就乾脆將法向量平移使其起點落在座標系的原點,成爲新向量p’。因此,所有點到p’的投影也就變化了一個常量。 
    原點法向量投影 
    原點法向量投影結果 
    假設這個常量爲θ0,p’向量的橫縱座標爲(θ1,θ2)。空間中任何一個點x (X1,X2)到p’的投影就是θ1X1+θ2X2,再加上前面的常量值就是:θ0+θ1X1+θ2X2 
    看到上面的式子有沒有感到很熟悉?這不就是邏輯迴歸函數hθ(x)=g(θ0+θ1X1+θ2X2)中括號裏面的部分嗎? 
    z=θ0+θ1X1+θ2X2 就可以根據z的正負號來判斷點x的類別了。

四、 從概率角度理解z的含義。

由以上步驟,我們由點x的座標得到了一個新的特徵z,那麼:

z的現實意義是什麼呢?

首先,我們知道,z可正可負可爲零。而且,z的變化範圍可以一直到正負無窮大。 
z如果大於0,則點x屬於y=1的類別。而且z的值越大,說明它距離分界線的距離越大,更可能屬於y=1類。 
那可否把z理解成點x屬於y=1類的概率P(y=1|x) (下文簡寫成P)呢?顯然不夠理想,因爲概率的範圍是0到1的。 
但是我們可以將概率P稍稍改造一下:令Q=P/(1-P),期望用Q作爲z的現實意義。我們發現,當P的在區間[0,1]變化時,Q在[0,+∞)區間單調遞增。函數圖像如下(以下圖像可以直接在度娘中搜“x/(1-x)”,超快): 
發生比函數圖像 
但是Q的變化率在[0,+∞)還不夠,我們是希望能在(-∞,+∞)區間變化的。而且在P=1/2的時候剛好是0。這樣纔有足夠的解釋力。

注:因爲P=1/2說明該點屬於兩個類別的可能性相當,也就是說這個點恰好在分界面上,那它在法向量的投影自然就是0了。

而在P=1/2時,Q=1,距離Q=0還有一段距離。那怎麼通過一個函數變換然它等於0呢?有一個天然的函數log,剛好滿足這個要求。 
於是我們做變換R=log(Q)=log(P/(1-P)),期望用R作爲z的現實意義。畫出它的函數圖像如圖: 
logit函數 
這個函數在區間[0,1]中可正可負可爲零,單調地在(-∞,+∞)變化,而且1/2剛好就是唯一的0值!基本完美滿足我們的要求。 
回到我們本章最初的問題,

“我們由點x的座標得到了一個新的特徵z,那麼z的具體意義是什麼呢?”

由此,我們就可以將z理解成x屬於y=1類的概率P經過某種變換後對應的值。也就是說,z= log(P/(1-P))。反過來就是P=g(z)=1/(1+e-z)。圖像如下: 
sigmoid函數 
這兩個函數log(P/(1-P)) 、1/(1+e-z)看起來熟不熟悉?

這就是傳說中的logit函數和sigmoid函數!

小小補充一下:

  • 在概率理論中,Q=P/(1-P)的意義叫做賠率(odds)。世界盃賭過球的同學都懂哈。賠率也叫發生比,是事件發生和不發生的概率比。
  • 而z= log(P/(1-P))的意義就是對數賠率或者對數發生比(log-odds)。

於是,我們不光得到了z的現實意義,還得到了z映射到概率P的擬合方程:

P=hθ(x)=g(θ0+θ1X1+θ2X2)= g(z)=1/(1+e-z)

有了概率P,我們順便就可以拿擬合方程P=g(z)=1/(1+e-z)來判斷點x所屬的分類:

當P>=1/2的時候,就判斷點x屬於y=1的類別;當P<1/2,就判斷點x屬於y=0的類別。

logit變換

五、 構造代價函數求出參數的值

到目前爲止我們就有兩個判斷某點所屬分類的辦法,一個是判斷z是否大於0,一個是判斷g(z)是否大於1/2。 
然而這並沒有什麼X用,

以上的分析都是基於“假設我們已經找到了這條線”的前提得到的,但是最關鍵的(θ0,θ1,θ2)三個參數仍未找到有效的辦法求出來。

還有沒有其他的性質可供我們利用來求出參數(θ0,θ1,θ2)的值?

  • 我們漏了一個關鍵的性質:這些樣本點已經被標註了y=0或者y=1的類別!
  • 我們一方面可以基於z是否大於0或者g(z) 是否大於1/2來判斷一個點的類別,另一方又可以依據這些點已經被標註的類別與我們預測的類別的插值來評估我們預測的好壞。
  • 這種衡量我們在某組參數下預估的結果和實際結果差距的函數,就是傳說中的代價函數Cost Function。
  • 當代價函數最小的時候,相應的參數(θ0,θ1,θ2)就是我們希望的最優解。

由此可見,設計一個好的代價函數,將是我們處理好分類問題的關鍵。而且不同的代價函數,可能會有不同的結果。因此更需要我們將代價函數設計得解釋性強,有現實針對性。 
爲了衡量“預估結果和實際結果的差距”,我們首先要確定“預估結果”“實際結果”是什麼。

  • “實際結果”好確定,就是y=0還是y=1。
  • “預估結果”有兩個備選方案,經過上面的分析,我們可以採用z或者g(z)。但是顯然g(z)更好,因爲g(z)的意義是概率P,剛好在[0,1]範圍之間,與實際結果{0,1}很相近,而z的意思是邏輯發生比,範圍是整個實數域(-∞,+∞),不太好與y={0,1}進行比較。

接下來是衡量兩個結果的“差距”。

  • 我們首先想到的是y-hθ(x)。 
    • 但這是當y=1的時候比較好。如果y=0,則y- hθ(x)= - hθ(x)是負數,不太好比較,則採用其絕對值hθ(x)即可。綜合表示如下: 
      cost1
    • 但這個函數有個問題:求導不太方便,進而用梯度下降法就不太方便。
    • 因爲梯度下降法超出的初等數學的範圍,這裏就暫且略去不解釋了。
  • 於是對上面的代價函數進行了簡單的處理,使之便於求導。結果如下: 
    cost

代價函數確定了,接下來的問題就是機械計算的工作了。常見的方法是用梯度下降法。於是,我們的平面線形可分的問題就可以說是解決了。

六、 從幾何變換的角度重新梳理我們剛纔的推理過程。

回顧我們的推理過程,我們其實是在不斷地將點x(X1,X2)進行幾何座標變換的過程。

  • 第一步是將分佈在整個二維平面的點x(X1,X2)通過線性投影映射到一維直線中,成爲點x(z)
  • 第二步是將分佈在整個一維直線的點x(z)通過sigmoid函數映射到一維線段[0,1]中成爲點x(g(z))。
  • 第三步是將所有這些點的座標通過代價函數統一計算成一個值,如果這是最小值,相應的參數就是我們所需要的理想值。 
    幾何變換

七、 對於簡單的非線性可分的問題。

  1. 由以上分析可知。比較關鍵的是第一步,我們之所以能夠這樣映射是因爲假設我們點集是線性可分的。但是如果分離邊界是一個圓呢?考慮以下情況。 
    非線性可分
  2. 我們仍用逆推法的思路: 
    • 通過觀察可知,分離邊界如果是一個圓比較合理。
    • 假設我們已經找到了這個圓,再尋找這個圓的性質是什麼。根據這些性質,再來反推這個圓的方程
  3. 我們可以依據這個性質: 
    • 圓內的點到圓心的距離小於半徑,圓外的點到圓心的距離大於半徑
    • 假設圓的半徑爲r,空間中任何一個點x (X1,X2)到原點的距離爲X12+X22
    • z= X12+X22-r2,就可以根據z的正負號來判斷點x的類別了
    • 然後令P=hθ(x)=g( X12+X22-r2)= g(z)=1/(1+e-z),就可以繼續依靠我們之前的邏輯迴歸的方法來處理和解釋問題了。
  4. 從幾何變換的角度重新梳理我們剛纔的推理過程。 
    • 第一步是將分佈在整個二維平面的點x(X1,X2)通過某種方式映射到一維直線中,成爲點x(z)
    • 第二步是將分佈在整個一維射線的點x(z)通過sigmoid函數映射到一維線段[0,1]中成爲點x(g(z))。
    • 第三步是將所有這些點的座標通過代價函數統一計算成一個值v,如果這是最小值,相應的參數就是我們所需要的理想值。 
      這裏寫圖片描述

八、 從特徵處理的角度重新梳理我們剛纔的分析過程

其實,做數據挖掘的過程,也可以理解成做特徵處理的過程。我們典型的數據挖掘算法,也就是將一些成熟的特徵處理過程給固定化的結果。 
對於邏輯迴歸所處理的分類問題,我們已有的特徵是這些點的座標(X1,X2),我們的目標就是判斷這些點所屬的分類y=0還是y=1。那麼最理想的想法就是希望對座標(X1,X2)進行某種函數運算,得到一個(或者一些)新的特徵z,基於這個特徵z是否大於0來判斷該樣本所屬的分類。 
對我們上一節非線性可分問題的推理過程進行進一步抽象,我們的思路其實是:

  • 第一步,將點x(X1,X2的座標通過某種函數運算,得到一個新的類似邏輯發生比的特徵z=f(X1,X2)= X12+X22-r2
  • 第二步是將特徵z通過sigmoid函數得到新的特徵q=g(z)= 1/(1+e-z)= 1/(1+e-f(X1,X2))
  • 第三步是將所有這些點的特徵q通過代價函數統一計算成一個值v=J(q1,q2,…),如果這是最小值,相應的參數(r)就是我們所需要的理想值。 
    特徵處理

九、 對於複雜的非線性可分的問題

由以上分析可知。比較關鍵的是第一步,如何設計轉換函數z=f(X1,X2)。我們現在開始考慮分離邊界是一個極端不規則的曲線的情況。 
複雜非線性可分 
我們仍用逆推法的思路:

  • 通過觀察等先驗的知識(或者完全不觀察亂猜),我們可以假設分離邊界是某種6次曲線(這個曲線方程可以提前假設得非常複雜,對應着各種不同的情況)。
  • 第一步:將點x(X1,X2)的座標通過某種函數運算,得到一個新的特徵z=f(X1,X2)=θ0+θ1X1+θ2X2+θ3X12+θ4X1X2+θ5X22+…+θ26X1X25+θ27X26。並假設z是某種程度的邏輯發生比,通過其是否大於0來判斷樣本所屬分類。
  • 第二步:將特徵z通過sigmoid函數映射到新的特徵q=g(z)= 1/(1+e-z)
  • 第三步:將所有這些樣本的特徵q通過邏輯迴歸的代價函數統一計算成一個值v=J(q1,q2,…),如果這是最小值,相應的參數(θ0,θ1,θ2,…, θ27)就是我們所需要的理想值。

十、 多維邏輯迴歸的問題

以上考慮的問題都是基於在二維平面內進行分類的情況。其實,對於高維度情況的分類也類似。 
高維空間的樣本,其區別也只是特徵座標更多,比如四維空間的點x的座標爲(X1,X2,X3,X4)。但直接運用上文特徵處理的視角來分析,不過是對座標x(X1,X2,X3,X4)進行參數更多的函數運算得到新的特徵z=f(X1,X2,X3,X4)並假設z是某種程度的邏輯發生比,通過其是否大於0來判斷樣本所屬分類。 
而且,如果是高維線性可分的情況,則可以有更近直觀的理解。

  • 如果是三維空間,分離邊界就是一個空間中的一個二維平面。兩類點在這個二維平面的法向量p上的投影的值的正負號不一樣,一類點的投影全是正數,另一類點的投影值全是負數。 
    三維邏輯迴歸
  • 如果是高維空間,分離邊界就是這個空間中的一個超平面。兩類點在這個超平面的法向量p上的投影的值的正負號不一樣,一類點的投影全是正數,另一類點的投影值全是負數。
  • 特殊的,如果是一維直線空間,分離邊界就是直線上的某一點p。一類點在點p的正方向上,另一類點在點p的負方向上。這些點在直線上的座標可以天然理解成類似邏輯發生比的情況。可見一維直線空間的分類問題是其他所有高維空間投影到法向量後的結果,是所有邏輯迴歸問題的基礎。 
    一維邏輯迴歸

十一、 多分類邏輯迴歸的問題

以上考慮的問題都是二分類的問題,基本就是做判斷題。但是對於多分類的問題,也就是做選擇題,怎麼用邏輯迴歸處理呢? 
多分類 
其基本思路也是二分類,做判斷題。 
比如你要做一個三選一的問題,有ABC三個選項。首先找到A與BUC(”U”是並集符號)的分離邊界。然後再找B與AUC的分離邊界,C與AUB的分離邊界。 
多分類-二分類 
這樣就能分別得到屬於A、B、C三類的概率,綜合比較,就能得出概率最大的那一類了。 
最大化

十二、 總結列表

爲了把本文的關係梳理清楚,我們畫了以下這張圖表。 
邏輯迴歸

發佈了43 篇原創文章 · 獲贊 36 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章