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