對線性迴歸,logistic迴歸和一般迴歸的認識

1 摘要

      本報告是在學習斯坦福大學機器學習課程前四節加上配套的講義後的總結與認識。前四節主要講述了迴歸問題,回歸屬於有監督學習中的一種方法。該方法的核心思想是從連續型統計數據中得到數學模型,然後將該數學模型用於預測或者分類。該方法處理的數據可以是多維的。

     講義最初介紹了一個基本問題,然後引出了線性迴歸的解決方法,然後針對誤差問題做了概率解釋。之後介紹了logistic迴歸。最後上升到理論層次,提出了一般迴歸。

2 問題引入

          假設有一個房屋銷售的數據如下:

面積(m^2)

銷售價錢(萬元)

123

250

150

320

87

160

102

220

     這個表類似於北京5環左右的房屋價錢,我們可以做出一個圖,x軸是房屋的面積。y軸是房屋的售價,如下:

     clip_image001

     如果來了一個新的面積,假設在銷售價錢的記錄中沒有的,我們怎麼辦呢?

     我們可以用一條曲線去儘量準的擬合這些數據,然後如果有新的輸入過來,我們可以在將曲線上這個點對應的值返回。如果用一條直線去擬合,可能是下面的樣子:

     clip_image002

     綠色的點就是我們想要預測的點。

     首先給出一些概念和常用的符號。

     房屋銷售記錄表:訓練集(training set)或者訓練數據(training data), 是我們流程中的輸入數據,一般稱爲x

     房屋銷售價錢:輸出數據,一般稱爲y

     擬合的函數(或者稱爲假設或者模型):一般寫做 y = h(x)

     訓練數據的條目數(#training set),:一條訓練數據是由一對輸入數據和輸出數據組成的輸入數據的維度n (特徵的個數,#features)

     這個例子的特徵是兩維的,結果是一維的。然而回歸方法能夠解決特徵多維,結果是一維多離散值或一維連續值的問題。

3 學習過程

     下面是一個典型的機器學習的過程,首先給出一個輸入數據,我們的算法會通過一系列的過程得到一個估計的函數,這個函數有能力對沒有見過的新數據給出一個新的估計,也被稱爲構建一個模型。就如同上面的線性迴歸函數。

     clip_image003

4 線性迴歸

     線性迴歸假設特徵和結果滿足線性關係。其實線性關係的表達能力非常強大,每個特徵對結果的影響強弱可以由前面的參數體現,而且每個特徵變量可以首先映射到一個函數,然後再參與線性計算。這樣就可以表達特徵與結果之間的非線性關係。

     我們用X1,X2..Xn 去描述feature裏面的分量,比如x1=房間的面積,x2=房間的朝向,等等,我們可以做出一個估計函數:

     clip_image004

     θ在這兒稱爲參數,在這的意思是調整feature中每個分量的影響力,就是到底是房屋的面積更重要還是房屋的地段更重要。爲了如果我們令X0 = 1,就可以用向量的方式來表示了:

     clip_image005

     我們程序也需要一個機制去評估我們θ是否比較好,所以說需要對我們做出的h函數進行評估,一般這個函數稱爲損失函數(loss function)或者錯誤函數(error function),描述h函數不好的程度,在下面,我們稱這個函數爲J函數

     在這兒我們可以認爲錯誤函數如下:

     clip_image006

     這個錯誤估計函數是去對x(i)的估計值與真實值y(i)差的平方和作爲錯誤估計函數,前面乘上的1/2是爲了在求導的時候,這個係數就不見了。

     至於爲何選擇平方和作爲錯誤估計函數,講義後面從概率分佈的角度講解了該公式的來源。

     如何調整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一種完全是數學描述的方法,和梯度下降法。

5 梯度下降法

     在選定線性迴歸模型後,只需要確定參數θ,就可以將模型用來預測。然而θ需要在J(θ)最小的情況下才能確定。因此問題歸結爲求極小值問題,使用梯度下降法。梯度下降法最大的問題是求得有可能是全局極小值,這與初始點的選取有關。

     梯度下降法是按下面的流程進行的:

     1)首先對θ賦值,這個值可以是隨機的,也可以讓θ是一個全零的向量。

     2)改變θ的值,使得J(θ)按梯度下降的方向進行減少。

     梯度方向由J(θ)對θ的偏導數確定,由於求的是極小值,因此梯度方向是偏導數的反方向。結果爲

     clip_image007     

     迭代更新的方式有兩種,一種是批梯度下降,也就是對全部的訓練數據求得誤差後再對θ進行更新,另外一種是增量梯度下降,每掃描一步都要對θ進行更新。前一種方法能夠不斷收斂,後一種方法結果可能不斷在收斂處徘徊。

     一般來說,梯度下降法收斂速度還是比較慢的。

     另一種直接計算結果的方法是最小二乘法。

6 最小二乘法

     將訓練特徵表示爲X矩陣,結果表示成y向量,仍然是線性迴歸模型,誤差函數不變。那麼θ可以直接由下面公式得出

clip_image008

     但此方法要求X是列滿秩的,而且求矩陣的逆比較慢。

7 選用誤差函數爲平方和的概率解釋

     假設根據特徵的預測結果與實際結果有誤差clip_image010,那麼預測結果clip_image012和真實結果clip_image014滿足下式:

clip_image015

     一般來講,誤差滿足平均值爲0的高斯分佈,也就是正態分佈。那麼x和y的條件概率也就是

clip_image016

     這樣就估計了一條樣本的結果概率,然而我們期待的是模型能夠在全部樣本上預測最準,也就是概率積最大。注意這裏的概率積是概率密度函數積,連續函數的概率密度函數與離散值的概率函數不同。這個概率積成爲最大似然估計。我們希望在最大似然估計得到最大值時確定θ。那麼需要對最大似然估計公式求導,求導結果既是

     clip_image017     

     這就解釋了爲何誤差函數要使用平方和。

     當然推導過程中也做了一些假定,但這個假定符合客觀規律。

8 帶權重的線性迴歸

     上面提到的線性迴歸的誤差函數裏系統都是1,沒有權重。帶權重的線性迴歸加入了權重信息。

     基本假設是

     clip_image018     

     其中假設clip_image020符合公式

     clip_image021          

     其中x是要預測的特徵,這樣假設的道理是離x越近的樣本權重越大,越遠的影響越小。這個公式與高斯分佈類似,但不一樣,因爲clip_image023不是隨機變量。

     此方法成爲非參數學習算法,因爲誤差函數隨着預測值的不同而不同,這樣θ無法事先確定,預測一次需要臨時計算,感覺類似KNN。

9 分類和logistic迴歸

     一般來說,迴歸不用在分類問題上,因爲迴歸是連續型模型,而且受噪聲影響比較大。如果非要應用進入,可以使用logistic迴歸。

     logistic迴歸本質上是線性迴歸,只是在特徵到結果的映射中加入了一層函數映射,即先把特徵線性求和,然後使用函數g(z)將最爲假設函數來預測。g(z)可以將連續值映射到0和1上。

     logistic迴歸的假設函數如下,線性迴歸假設函數只是clip_image025

clip_image026

     logistic迴歸用來分類0/1問題,也就是預測結果屬於0或者1的二值分類問題。這裏假設了二值滿足伯努利分佈,也就是

clip_image027

     當然假設它滿足泊松分佈、指數分佈等等也可以,只是比較複雜,後面會提到線性迴歸的一般形式。

     與第7節一樣,仍然求的是最大似然估計,然後求導,得到迭代公式結果爲

     clip_image028

     可以看到與線性迴歸類似,只是clip_image012[1]換成了clip_image030,而clip_image030[1]實際上就是clip_image012[2]經過g(z)映射過來的。

10 牛頓法來解最大似然估計

     第7和第9節使用的解最大似然估計的方法都是求導迭代的方法,這裏介紹了牛頓下降法,使結果能夠快速的收斂。

     當要求解clip_image032時,如果f可導,那麼可以通過迭代公式

clip_image033

     來迭代求解最小值。

     當應用於求解最大似然估計的最大值時,變成求解最大似然估計概率導數clip_image035的問題。

     那麼迭代公式寫作

     clip_image036

     當θ是向量時,牛頓法可以使用下面式子表示

     clip_image037 

     其中clip_image038是n×n的Hessian矩陣。

     牛頓法收斂速度雖然很快,但求Hessian矩陣的逆的時候比較耗費時間。

     當初始點X0靠近極小值X時,牛頓法的收斂速度是最快的。但是當X0遠離極小值時,牛頓法可能不收斂,甚至連下降都保證不了。原因是迭代點Xk+1不一定是目標函數f在牛頓方向上的極小點。

11 一般線性模型

     之所以在logistic迴歸時使用

     clip_image039

     的公式是由一套理論作支持的。

     這個理論便是一般線性模型。

     首先,如果一個概率分佈可以表示成

     clip_image040

     時,那麼這個概率分佈可以稱作是指數分佈。

     伯努利分佈,高斯分佈,泊松分佈,貝塔分佈,狄特里特分佈都屬於指數分佈。

     在logistic迴歸時採用的是伯努利分佈,伯努利分佈的概率可以表示成

     clip_image041

     其中

     clip_image042

     得到

     clip_image044

     這就解釋了logistic迴歸時爲了要用這個函數。

     一般線性模型的要點是

     1) clip_image046 滿足一個以clip_image048爲參數的指數分佈,那麼可以求得clip_image048[1]的表達式。

     2) 給定x,我們的目標是要確定clip_image050,大多數情況下clip_image052,那麼我們實際上要確定的是clip_image054,而clip_image056。(在logistic迴歸中期望值是clip_image058,因此h是clip_image058[1];在線性迴歸中期望值是clip_image060,而高斯分佈中clip_image062,因此線性迴歸中h=clip_image064)。

     3) clip_image066

12 Softmax迴歸

     最後舉了一個利用一般線性模型的例子。

     假設預測值y有k種可能,即y∈{1,2,…,k}

     比如k=3時,可以看作是要將一封未知郵件分爲垃圾郵件、個人郵件還是工作郵件這三類。

     定義

     clip_image067

     那麼

     clip_image068

     這樣

     clip_image069

     即式子左邊可以有其他的概率表示,因此可以當作是k-1維的問題。

     爲了表示多項式分佈表述成指數分佈,我們引入T(y),它是一組k-1維的向量,這裏的T(y)不是y,T(y)i表示T(y)的第i個分量。

     clip_image071

     應用於一般線性模型,結果y必然是k中的一種。1{y=k}表示當y=k的時候,1{y=k}=1。那麼p(y)可以表示爲

     clip_image072

     其實很好理解,就是當y是一個值m(m從1到k)的時候,p(y)=clip_image074,然後形式化了一下。

     那麼

     clip_image075

     最後求得

     clip_image076

     而y=i時

     clip_image077

     求得期望值

clip_image078

     那麼就建立了假設函數,最後就獲得了最大似然估計

clip_image079

     對該公式可以使用梯度下降或者牛頓法迭代求解。

     解決了多值模型建立與預測問題。

 

 

學習總結

     該講義組織結構清晰,思路獨特,講原因,也講推導。可貴的是講出了問題的基本解決思路和擴展思路,更重要的是講出了爲什麼要使用相關方法以及問題根源。在看似具體的解題思路中能引出更爲抽象的一般解題思路,理論化水平很高。

     該方法可以用在對數據多維分析和多值預測上,更適用於數據背後蘊含某種概率模型的情景

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