线性回归和logistic回归
轉自:http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html
紅字處是個人的理解1 摘要
????? 本報告是在學習斯坦福大學機器學習課程前四節加上配套的講義后的總結與認識。前四節主要講述了回歸問題,回歸屬于有監督學習中的一種方法。該方法的核心思想是從連續型統計數據中得到數學模型,然后將該數學模型用于預測或者分類。該方法處理的數據可以是多維的。
???? 講義最初介紹了一個基本問題,然后引出了線性回歸的解決方法,然后針對誤差問題做了概率解釋。之后介紹了logistic回歸。最后上升到理論層次,提出了一般回歸。
2 問題引入
???? 這個例子來自http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html
???? 假設有一個房屋銷售的數據如下:
| 面積(m^2) | 銷售價錢(萬元) |
| 123 | 250 |
| 150 | 320 |
| 87 | 160 |
| 102 | 220 |
| … | … |
???? 這個表類似于北京5環左右的房屋價錢,我們可以做出一個圖,x軸是房屋的面積。y軸是房屋的售價,如下:
?????
???? 如果來了一個新的面積,假設在銷售價錢的記錄中沒有的,我們怎么辦呢?
???? 我們可以用一條曲線去盡量準的擬合這些數據,然后如果有新的輸入過來,我們可以在將曲線上這個點對應的值返回。如果用一條直線去擬合,可能是下面的樣子:
?????
???? 綠色的點就是我們想要預測的點。
???? 首先給出一些概念和常用的符號。
?????房屋銷售記錄表:訓練集(training set)或者訓練數據(training data), 是我們流程中的輸入數據,一般稱為x
?????房屋銷售價錢:輸出數據,一般稱為y
?????擬合的函數(或者稱為假設或者模型):一般寫做 y = h(x)
?????訓練數據的條目數(#training set),:一條訓練數據是由一對輸入數據和輸出數據組成的輸入數據的維度n (特征的個數,#features)
???? 這個例子的特征是兩維的,結果是一維的。然而回歸方法能夠解決特征多維,結果是一維多離散值或一維連續值的問題。
3 學習過程
???? 下面是一個典型的機器學習的過程,首先給出一個輸入數據,我們的算法會通過一系列的過程得到一個估計的函數,這個函數有能力對沒有見過的新數據給出一個新的估計,也被稱為構建一個模型。就如同上面的線性回歸函數。
?????
4 線性回歸
???? 線性回歸假設特征和結果滿足線性關系。其實線性關系的表達能力非常強大,每個特征對結果的影響強弱可以由前面的參數體現,而且每個特征變量可以首先映射到一個函數,然后再參與線性計算。這樣就可以表達特征與結果之間的非線性關系。
???? 我們用X1,X2..Xn 去描述feature里面的分量,比如x1=房間的面積,x2=房間的朝向,等等,我們可以做出一個估計函數:
?????
???? θ在這兒稱為參數,在這的意思是調整feature中每個分量的影響力,就是到底是房屋的面積更重要還是房屋的地段更重要。為了如果我們令X0 = 1,就可以用向量的方式來表示了:
?????
???? 我們程序也需要一個機制去評估我們θ是否比較好,所以說需要對我們做出的h函數進行評估,一般這個函數稱為損失函數(loss function)或者錯誤函數(error function),描述h函數不好的程度,在下面,我們稱這個函數為J函數
???? 在這兒我們可以認為錯誤函數如下:
?????
???? 這個錯誤估計函數是去對x(i)的估計值與真實值y(i)差的平方和作為錯誤估計函數,前面乘上的1/2是為了在求導的時候,這個系數就不見了。
???? 至于為何選擇平方和作為錯誤估計函數,講義后面從概率分布的角度講解了該公式的來源。
???? 如何調整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一種完全是數學描述的方法,和梯度下降法。
5 梯度下降法
???? 在選定線性回歸模型后,只需要確定參數θ,就可以將模型用來預測。然而θ需要在J(θ)最小的情況下才能確定。因此問題歸結為求極小值問題,使用梯度下降法。梯度下降法最大的問題是求得有可能是全局極小值,這與初始點的選取有關。
???? 梯度下降法是按下面的流程進行的:
???? 1)首先對θ賦值,這個值可以是隨機的,也可以讓θ是一個全零的向量。
???? 2)改變θ的值,使得J(θ)按梯度下降的方向進行減少。
???? 梯度方向由J(θ)對θ的偏導數確定,
由于求的是極小值,因此梯度方向是偏導數的反方向。結果為
??????????
???? 迭代更新的方式有兩種,一種是批梯度下降,也就是對全部的訓練數據求得誤差后再對θ進行更新,另外一種是增量梯度下降,每掃描一步都要對θ進行更新。前一種方法能夠不斷收斂,后一種方法結果可能不斷在收斂處徘徊。
???? 一般來說,梯度下降法收斂速度還是比較慢的。
???? 另一種直接計算結果的方法是最小二乘法。
6 最小二乘法
???? 將訓練特征表示為X矩陣,結果表示成y向量,仍然是線性回歸模型,誤差函數不變。那么θ可以直接由下面公式得出
令J(θ) = 0得
???? 但此方法要求X是列滿秩的,而且求矩陣的逆比較慢。
7 選用誤差函數為平方和的概率解釋
???? 假設根據特征的預測結果與實際結果有誤差,那么預測結果和真實結果滿足下式:
???? 一般來講,誤差滿足平均值為0的高斯分布,也就是正態分布。那么x和y的條件概率也就是
???? 這樣就估計了一條樣本的結果概率,然而我們期待的是模型能夠在全部樣本上預測最準,也就是概率積最大。注意這里的概率積是概率密度函數積,連續函數的概率密度函數與離散值的概率函數不同。這個概率積成為最大似然估計。我們希望在最大似然估計得到最大值時確定θ。那么需要對最大似然估計公式求導,求導結果既是
??????????
???? 這就解釋了為何誤差函數要使用平方和。
???? 當然推導過程中也做了一些假定,但這個假定符合客觀規律。
8 帶權重的線性回歸
???? 上面提到的線性回歸的誤差函數里系統都是1,沒有權重。帶權重的線性回歸加入了權重信息。
???? 基本假設是
??????????
???? 其中假設符合公式
???????????????
???? 其中x是要預測的特征,這樣假設的道理是離x越近的樣本權重越大,越遠的影響越小。這個公式與高斯分布類似,但不一樣,因為不是隨機變量。
???? 此方法成為非參數學習算法,因為誤差函數隨著預測值的不同而不同,這樣θ無法事先確定,預測一次需要臨時計算,感覺類似KNN。
9 分類和logistic回歸
???? 一般來說,回歸不用在分類問題上,因為回歸是連續型模型,而且受噪聲影響比較大。如果非要應用進入,可以使用logistic回歸。
???? logistic回歸本質上是線性回歸,只是在特征到結果的映射中加入了一層函數映射,即先把特征線性求和,然后使用函數g(z)將最為假設函數來預測。g(z)可以將連續值映射到0和1上。
???? logistic回歸的假設函數如下,線性回歸假設函數只是。
???? logistic回歸用來分類0/1問題,也就是預測結果屬于0或者1的二值分類問題。這里假設了二值滿足伯努利分布,也就是
???? 當然假設它滿足泊松分布、指數分布等等也可以,只是比較復雜,后面會提到線性回歸的一般形式。
???? 與第7節一樣,仍然求的是最大似然估計,然后求導,得到迭代公式結果為
?????
logistic在梯度下降的時候卻取梯度的正方向,這是因為logistic求的是最大值,而上面的線性回歸求的是Loss的最小值,所以去梯度的負方向。
???? 可以看到與線性回歸類似,只是換成了,而實際上就是經過g(z)映射過來的。
10 牛頓法來解最大似然估計
???? 第7和第9節使用的解最大似然估計的方法都是求導迭代的方法,這里介紹了牛頓下降法,使結果能夠快速的收斂。
Andrew舉例很形象,
???? 當要求解時,如果f可導,那么可以通過迭代公式
???? 來迭代求解最小值。
???? 當應用于求解最大似然估計的最大值時,變成求解最大似然估計概率導數的問題。
目標函數是l(?)
找到l’(?) = 0的點
這個點就局部最優點,但是不能直接求出
設f(?)= l’(?),也就是求f(?)=0
取一點?0,則f(?)的斜率l’’(?0) = l’(?0)/( ?i- ?0),所以?i?= ?0?- l’(?0)/ l’’(?0)
???? 那么迭代公式寫作
?????
???? 當θ是向量時,牛頓法可以使用下面式子表示
??????
???? 其中是n×n的Hessian矩陣。
???? 牛頓法收斂速度雖然很快,但求Hessian矩陣的逆的時候比較耗費時間。
???? 當初始點X0靠近極小值X時,牛頓法的收斂速度是最快的。但是當X0遠離極小值時,牛頓法可能不收斂,甚至連下降都保證不了。原因是迭代點Xk+1不一定是目標函數f在牛頓方向上的極小點。
11 一般線性模型
???? 之所以在logistic回歸時使用
?????
???? 的公式是由一套理論作支持的。
???? 這個理論便是一般線性模型。
???? 首先,如果一個概率分布可以表示成
?????
???? 時,那么這個概率分布可以稱作是指數分布。
???? 伯努利分布,高斯分布,泊松分布,貝塔分布,狄特里特分布都屬于指數分布。
???? 在logistic回歸時采用的是伯努利分布,伯努利分布的概率可以表示成
?????
???? 其中
?????
???? 得到
?????
???? 這就解釋了logistic回歸時為了要用這個函數。
???? 一般線性模型的要點是
???? 1)??滿足一個以為參數的指數分布,那么可以求得的表達式。
???? 2) 給定x,我們的目標是要確定,大多數情況下,那么我們實際上要確定的是,而。(在logistic回歸中期望值是,因此h是;在線性回歸中期望值是,而高斯分布中,因此線性回歸中h=)。
???? 3)?
12 Softmax回歸
???? 最后舉了一個利用一般線性模型的例子。
???? 假設預測值y有k種可能,即y∈{1,2,…,k}
???? 比如k=3時,可以看作是要將一封未知郵件分為垃圾郵件、個人郵件還是工作郵件這三類。
???? 定義
?????
???? 那么
?????
???? 這樣
?????
???? 即式子左邊可以有其他的概率表示,因此可以當作是k-1維的問題。
???? 為了表示多項式分布表述成指數分布,我們引入T(y),它是一組k-1維的向量,這里的T(y)不是y,T(y)i表示T(y)的第i個分量。
?????
???? 應用于一般線性模型,結果y必然是k中的一種。1{y=k}表示當y=k的時候,1{y=k}=1。那么p(y)可以表示為
?????
???? 其實很好理解,就是當y是一個值m(m從1到k)的時候,p(y)=,然后形式化了一下。
???? 那么
?????
???? 最后求得
?????
???? 而y=i時
?????
???? 求得期望值
???? 那么就建立了假設函數,最后就獲得了最大似然估計
???? 對該公式可以使用梯度下降或者牛頓法迭代求解。
???? 解決了多值模型建立與預測問題。
?
?
學習總結
???? 該講義組織結構清晰,思路獨特,講原因,也講推導??少F的是講出了問題的基本解決思路和擴展思路,更重要的是講出了為什么要使用相關方法以及問題根源。在看似具體的解題思路中能引出更為抽象的一般解題思路,理論化水平很高。
???? 該方法可以用在對數據多維分析和多值預測上,更適用于數據背后蘊含某種概率模型的情景。
幾個問題
???? 一是采用迭代法的時候,步長怎么確定比較好
???? 而是最小二乘法的矩陣形式是否一般都可用
總結
以上是生活随笔為你收集整理的线性回归和logistic回归的全部內容,希望文章能夠幫你解決所遇到的問題。