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