一、引言
本材料參考Andrew Ng大神的機(jī)器學(xué)習(xí)課程 http://cs229.stanford.edu,以及斯坦福無(wú)監(jiān)督學(xué)習(xí)UFLDL tutorial http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial
機(jī)器學(xué)習(xí)中的回歸問(wèn)題屬于有監(jiān)督學(xué)習(xí)的范疇。回歸問(wèn)題的目標(biāo)是給定D維輸入變量x,并且每一個(gè)輸入矢量x都有對(duì)應(yīng)的值y,要求對(duì)于新來(lái)的數(shù)據(jù)預(yù)測(cè)它對(duì)應(yīng)的連續(xù)的目標(biāo)值t。比如下面這個(gè)例子:假設(shè)我們有一個(gè)包含47個(gè)房子的面積和價(jià)格的數(shù)據(jù)集如下:
我們可以在Matlab中畫(huà)出來(lái)這組數(shù)據(jù)集,如下:
看到畫(huà)出來(lái)的點(diǎn),是不是有點(diǎn)像一條直線(xiàn)?我們可以用一條曲線(xiàn)去盡量擬合這些數(shù)據(jù)點(diǎn),那么對(duì)于新來(lái)的輸入,我么就可以將擬合的曲線(xiàn)上返回對(duì)應(yīng)的點(diǎn)從而達(dá)到預(yù)測(cè)的目的。如果要預(yù)測(cè)的值是連續(xù)的比如上述的房?jī)r(jià),那么就屬于回歸問(wèn)題;如果要預(yù)測(cè)的值是離散的即一個(gè)個(gè)標(biāo)簽,那么就屬于分類(lèi)問(wèn)題。這個(gè)學(xué)習(xí)處理過(guò)程如下圖所示:
上述學(xué)習(xí)過(guò)程中的常用術(shù)語(yǔ):包含房子面積和價(jià)格的數(shù)據(jù)集稱(chēng)為訓(xùn)練集training set;輸入變量x(本例中為面積)為特征features;輸出的預(yù)測(cè)值y(本例中為房?jī)r(jià))為目標(biāo)值target;擬合的曲線(xiàn),一般表示為y = h(x),稱(chēng)為假設(shè)模型hypothesis;訓(xùn)練集的條目數(shù)稱(chēng)為特征的維數(shù),本例為47。
二、線(xiàn)性回歸模型
線(xiàn)性回歸模型假設(shè)輸入特征和對(duì)應(yīng)的結(jié)果滿(mǎn)足線(xiàn)性關(guān)系。在上述的數(shù)據(jù)集中加上一維--房間數(shù)量,于是數(shù)據(jù)集變?yōu)椋?/p>
于是,輸入特征x是二維的矢量,比如x1(i)表示數(shù)據(jù)集中第i個(gè)房子的面積,x2(i)表示數(shù)據(jù)集中第i個(gè)房子的房間數(shù)量。于是可以假設(shè)輸入特征x與房?jī)r(jià)y滿(mǎn)足線(xiàn)性函數(shù),比如:
這里θi稱(chēng)為假設(shè)模型即映射輸入特征x與結(jié)果y的線(xiàn)性函數(shù)h的參數(shù)parameters,為了簡(jiǎn)化表示,我們?cè)谳斎胩卣髦屑尤離0 = 1,于是得到:
參數(shù)θ和輸入特征x都為矢量,n是輸入的特征x的個(gè)數(shù)(不包含x0)。
現(xiàn)在,給定一個(gè)訓(xùn)練集,我們應(yīng)該怎么學(xué)習(xí)參數(shù)θ,從而達(dá)到比較好的擬合效果呢?一個(gè)直觀的想法是使得預(yù)測(cè)值h(x)盡可能接近y,為了達(dá)到這個(gè)目的,我們對(duì)于每一個(gè)參數(shù)θ,定義一個(gè)代價(jià)函數(shù)cost function用來(lái)描述h(x(i))'與對(duì)應(yīng)的y(i)'的接近程度:
前面乘上的1/2是為了求導(dǎo)的時(shí)候,使常數(shù)系數(shù)消失。于是我們的目標(biāo)就變?yōu)榱苏{(diào)整θ使得代價(jià)函數(shù)J(θ)取得最小值,方法有梯度下降法,最小二乘法等。
2.1 梯度下降法
現(xiàn)在我們要調(diào)整θ使得J(θ)取得最小值,為了達(dá)到這個(gè)目的,我們可以對(duì)θ取一個(gè)隨機(jī)初始值(隨機(jī)初始化的目的是使對(duì)稱(chēng)失效),然后不斷地迭代改變?chǔ)鹊闹祦?lái)使J(θ)減小,知道最終收斂取得一個(gè)θ值使得J(θ)最小。梯度下降法就采用這樣的思想:對(duì)θ設(shè)定一個(gè)隨機(jī)初值θ0,然后迭代進(jìn)行以下更新
直到收斂。這里的α稱(chēng)為學(xué)習(xí)率learning rate。
梯度方向由J(θ)對(duì)θ 的偏導(dǎo)數(shù)決定,由于要求的是最小值,因此對(duì)偏導(dǎo)數(shù)取負(fù)值得到梯度方向。將J(θ)代入得到總的更新公式
這樣的更新規(guī)則稱(chēng)為L(zhǎng)MS update rule(least mean squares),也稱(chēng)為Widrow-Ho? learning rule。
對(duì)于如下更新參數(shù)的算法:
由于在每一次迭代都考察訓(xùn)練集的所有樣本,而稱(chēng)為批量梯度下降batch gradient descent。對(duì)于引言中的房?jī)r(jià)數(shù)據(jù)集,運(yùn)行這種算法,可以得到θ0 = 71.27, θ1 = 1.1345,擬合曲線(xiàn)如下圖:
如果參數(shù)更新計(jì)算算法如下:
這里我們按照單個(gè)訓(xùn)練樣本更新θ的值,稱(chēng)為隨機(jī)梯度下降stochastic gradient descent。比較這兩種梯度下降算法,由于batch gradient descent在每一步都考慮全部數(shù)據(jù)集,因而復(fù)雜度比較高,隨機(jī)梯度下降會(huì)比較快地收斂,而且在實(shí)際情況中兩種梯度下降得到的最優(yōu)解J(θ)一般會(huì)接近真實(shí)的最小值。所以對(duì)于較大的數(shù)據(jù)集,一般采用效率較高的隨機(jī)梯度下降法。
2.2 最小二乘法(LMS)
梯度下降算法給出了一種計(jì)算θ的方法,但是需要迭代的過(guò)程,比較費(fèi)時(shí)而且不太直觀。下面介紹的最小二乘法是一種直觀的直接利用矩陣運(yùn)算可以得到θ值的算法。為了理解最小二乘法,首先回顧一下矩陣的有關(guān)運(yùn)算:
假設(shè)函數(shù)f是將m*n維矩陣映射為一個(gè)實(shí)數(shù)的運(yùn)算,即
因此該梯度為m*n的矩陣。例如對(duì)于矩陣A=
另外,對(duì)于矩陣的跡的梯度運(yùn)算,有如下規(guī)則:
下面,我們將測(cè)試集中的輸入特征x和對(duì)應(yīng)的結(jié)果y表示成矩陣或者向量的形式,有:
對(duì)于預(yù)測(cè)模型有
所以可以得到
于是,我們就將代價(jià)函數(shù)J(θ)表示為了矩陣的形式,就可以用上述提到的矩陣運(yùn)算來(lái)得到梯度:
令上述梯度為0,得到等式:
2.3 加權(quán)線(xiàn)性回歸
首先考慮下圖中的幾種曲線(xiàn)擬合情況:
最左邊的圖使用線(xiàn)性擬合
正如上述例子表明,在學(xué)習(xí)過(guò)程中,特征的選擇對(duì)于最終學(xué)習(xí)到的模型的性能有很大影響,于是選擇用哪個(gè)特征,每個(gè)特征的重要性如何就產(chǎn)生了加權(quán)的線(xiàn)性回歸。在傳統(tǒng)的線(xiàn)性回歸中,學(xué)習(xí)過(guò)程如下:
而加權(quán)線(xiàn)性回歸學(xué)習(xí)過(guò)程如下:
二者的區(qū)別就在于對(duì)不同的輸入特征賦予了不同的非負(fù)值權(quán)重,權(quán)重越大,對(duì)于代價(jià)函數(shù)的影響越大。一般選取的權(quán)重計(jì)算公式為:
其中,x是要預(yù)測(cè)的特征,表示離x越近的樣本權(quán)重越大,越遠(yuǎn)的影響越小。
三、logistic回歸與Softmax回歸
3.1 logistic回歸
下面介紹一下logistic回歸,雖然名曰回歸,但實(shí)際上logistic回歸用于分類(lèi)問(wèn)題。logistic回歸實(shí)質(zhì)上還是線(xiàn)性回歸模型,只是在回歸的連續(xù)值結(jié)果上加了一層函數(shù)映射,將特征線(xiàn)性求和,然后使用g(z)作映射,將連續(xù)值映射到離散值0/1上(對(duì)于sigmoid函數(shù)為0/1兩類(lèi),而對(duì)于雙曲正弦tanh函數(shù)為1/-1兩類(lèi))。采用假設(shè)模型為:
而sigmoid函數(shù)g(z)為:
當(dāng)z趨近于-∞,g(z)趨近于0,而z趨近于∞,g(z)趨近于1,從而達(dá)到分類(lèi)的目的。這里的
那么對(duì)于這樣的logistic模型,怎么調(diào)整參數(shù)θ呢?我們假設(shè)
對(duì)似然估計(jì)取對(duì)數(shù)可以更容易地求解:
接下來(lái)是θ的似然估計(jì)最大化,可以考慮上述的梯度下降法,于是得到:
得到類(lèi)似的更新公式:
3.2 Softmax回歸
logistic回歸是兩類(lèi)回歸問(wèn)題的算法,如果目標(biāo)結(jié)果是多個(gè)離散值怎么辦?Softmax回歸模型就是解決這個(gè)問(wèn)題的,Softmax回歸模型是logistic模型在多分類(lèi)問(wèn)題上的推廣。在Softmax回歸中,類(lèi)標(biāo)簽y可以去k個(gè)不同的值(k>2)。因此對(duì)于y(i)從屬于{1,2,3···k}。
對(duì)于給定的測(cè)試輸入x,我們要利用假設(shè)模型針對(duì)每一個(gè)類(lèi)別j估算概率值p(y = j|x)。于是假設(shè)函數(shù)hθ(x(i))形式為:
其中θ1,θ2,θ3,···,θk屬于模型的參數(shù),等式右邊的系數(shù)是對(duì)概率分布進(jìn)行歸一化,使得總概率之和為1。于是類(lèi)似于logistic回歸,推廣得到新的代價(jià)函數(shù)為:
可以看到Softmax代價(jià)函數(shù)與logistic代價(jià)函數(shù)形式上非常相似,只是Softmax函數(shù)將k個(gè)可能的類(lèi)別進(jìn)行了累加,在Softmax中將x分為類(lèi)別j的概率為:
于是對(duì)于Softmax的代價(jià)函數(shù),利用梯度下降法使的J(θ)最小,梯度公式如下:
表示J(θ)對(duì)第j個(gè)元素θj的偏導(dǎo)數(shù),每一次迭代進(jìn)行更新:
3.3 Softmax回歸 vs logistic回歸
特別地,當(dāng)Softmax回歸中k = 2時(shí),Softmax就退化為logistic回歸。當(dāng)k = 2時(shí),Softmax回歸的假設(shè)模型為:
我們令ψ = θ1,并且兩個(gè)參數(shù)都剪去θ1,得到:
于是Softmax回歸預(yù)測(cè)得到兩個(gè)類(lèi)別的概率形式與logistic回歸一致。
現(xiàn)在,如果有一個(gè)k類(lèi)分類(lèi)的任務(wù),我們可以選擇Softmax回歸,也可以選擇k個(gè)獨(dú)立的logistic回歸分類(lèi)器,應(yīng)該如何選擇呢?
這一選擇取決于這k個(gè)類(lèi)別是否互斥,例如,如果有四個(gè)類(lèi)別的電影,分別為:好萊塢電影、港臺(tái)電影、日韓電影、大陸電影,需要對(duì)每一個(gè)訓(xùn)練的電影樣本打上一個(gè)標(biāo)簽,那么此時(shí)應(yīng)選擇k = 4的Softmax回歸。然而,如果四個(gè)電影類(lèi)別如下:動(dòng)作、喜劇、愛(ài)情、歐美,這些類(lèi)別并不是互斥的,于是這種情況下使用4個(gè)logistic回歸分類(lèi)器比較合理。
四、一般線(xiàn)性回歸模型
首先定義一個(gè)通用的指數(shù)概率分布:
考慮伯努利分布,有:
再考慮高斯分布:
一般線(xiàn)性模型滿(mǎn)足:1. y|x;θ 滿(mǎn)足指數(shù)分布族E(η) 2. 給定特征x,預(yù)測(cè)結(jié)果為T(mén)(y) = E[y|x] 3. 參數(shù)η = θTx 。
對(duì)于第二部分的線(xiàn)性模型,我們假設(shè)結(jié)果y滿(mǎn)足高斯分布Ν(μ,σ2),于是期望μ = η,所以:
很顯然,從一般線(xiàn)性模型的角度得到了第二部分的假設(shè)模型。
對(duì)于logistic模型,由于假設(shè)結(jié)果分為兩類(lèi),很自然地想到伯努利分布,并且可以得到
于是得到了與logistic假設(shè)模型的公式,這也解釋了logistic回歸為何使用這個(gè)函數(shù)。
聯(lián)系客服