摘要:在回歸分析中,只包括一個自變量和一個因變量,且二者的關(guān)系可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析如果回歸分析中包括兩個及以上個自變量,且因變量和自變量直接是線性關(guān)系,則稱之為多元線性回歸分析。參考斯坦福大學(xué)機器學(xué)習(xí)公開課
定義
假設(shè)函數(shù)與代價函數(shù)(損失函數(shù))
特征量放縮
最小化代價函數(shù)
收斂判定
1.什么是線性回歸在統(tǒng)計學(xué)中,線性回歸是利用被稱為線性回歸方程的最小平方函數(shù)對一個或多個自變量和因變量之間的關(guān)系進行建模的一種回歸分析。在回歸分析中,只包括一個自變量和一個因變量,且二者的關(guān)系可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析;如果回歸分析中包括兩個及以上個自變量,且因變量和自變量直接是線性關(guān)系,則稱之為多元線性回歸分析。
2.假設(shè)函數(shù)與代價函數(shù)在這里依然使用經(jīng)典的例子——房價預(yù)測
房屋面積(平方英尺) | 房間數(shù) | 價格(千美元) |
---|---|---|
2104 | 3 | 400 |
1600 | 3 | 330 |
2400 | 3 | 369 |
1416 | 2 | 232 |
3000 | 4 | 540 |
因為存在兩個自變量,所以這是一個多元線性回歸的例子(如果只有面積或房間數(shù)則是一元線性回歸),由此我們可以寫出假設(shè)函數(shù):$$h_{Theta}(x)=Theta_{0}+Theta_{1}x_{1}+Theta_{2}x_{2}$$
可分析得出,對于任意n元線性回歸的假設(shè)函數(shù)可統(tǒng)一于如下表示:$$h_{Theta}(x)=sum_{i=1}^{m}Theta_{i}x_{i}$$
上式中$x_{0}=1$。對于線性方程的求解,實質(zhì)上就是對參數(shù)θ的求解。
建立模型后,我們需要對假設(shè)函數(shù)的準(zhǔn)確性進行判優(yōu),其實就是去衡量θ的選取是否最優(yōu),我們引入代價函數(shù):$$J(Theta_{0},Theta_{1}...Theta_{n})=frac{1}{2}sum_{i=1}^{m}(h_{Theta}(x^{(i)})-y^{(i)})^2$$
函數(shù)前面的1/2是為了在后面的求導(dǎo)過程中使式子簡化。因此,我們現(xiàn)在的任務(wù)就是:求解代價函數(shù)的最小值,從而得出最優(yōu)θ。
在實際的數(shù)據(jù)集中,每個自變量的范圍可能相差特別大,為了加速求解,我們需要將數(shù)據(jù)進行放縮,以此使得算法能夠更加快速的收斂,特征量放縮的方法可以采用如下公式:$$x_{i}=frac{x_{i}-overline{x}}{max(x_{i})-min(x_{i})}$$
4.最小化代價函數(shù)4.1最小二乘法(正規(guī)方程)
將訓(xùn)練特征量表示為X矩陣,訓(xùn)練集對應(yīng)的結(jié)果值為y向量(注:本方法公式中y都是指向量y),即:
$$X=egin{bmatrix}1 & 2104&3 1& 1600 & 3 1& 2400&3 1& 1416 & 2 1& 3000& 4end{bmatrix};y=egin{bmatrix}400 330 369 232 540end{bmatrix}$$
其中,第一列對應(yīng)x0,且x0恒為1,所以假設(shè)函數(shù)就可以表示為:
$$h_{Theta}(x)=XTheta$$
代價函數(shù)可以表示為:$$J(Theta)=frac{1}{2}(h_{Theta}(x^{(i)})-y^{(i)})^2=frac{1}{2}(XTheta-y)^{T}(XTheta-y)$$
由高等數(shù)學(xué)的知識,可以知道求代價函數(shù)的最優(yōu)值,就是對每一個θ求偏導(dǎo),令其為0。對上式進行求導(dǎo)展開:$$frac{partial }{partial Theta }J(Theta)=frac{1}{2}frac{partial }{partial Theta }(Theta^{T}X^{T}XTheta-Theta^{T}X^{T}y-y^{T}XTheta+y^{T}y)$$
由于θ轉(zhuǎn)置是1*3,X轉(zhuǎn)置是3*5,X是5*3,θ是3*1,所以上式第一項是1*1,即一個單一量方陣,同理可以得到其他的都是1*1方陣,所以上式又可以寫成:$$frac{partial }{partial Theta }J(Theta)=frac{1}{2}frac{partial }{partial Theta }tr(Theta^{T}X^{T}XTheta-Theta^{T}X^{T}y-y^{T}XTheta)$$
最后可以變形為:$$frac{partial }{partial Theta }J(Theta)=X^{T}XTheta-X^{T}y$$
令上式為0,最終可得θ為:$$Theta=(X^{T}X)^{-1}X^{T}y$$
在這種情況下,需要X的轉(zhuǎn)置乘以X可逆,如果不可逆,可能的原因可能是:
1.特征量矩陣中存在兩種特征數(shù)據(jù)線性相關(guān);
2.特征數(shù)遠大于數(shù)據(jù)集的個數(shù),這時可以嘗試著刪除某些不是那么重要的特征數(shù)據(jù);
這種方法對于求解問題相當(dāng)?shù)谋┝唵危恍枰?,不需要選擇學(xué)習(xí)速率參數(shù),但是當(dāng)n的個數(shù)大于10,000時,這種方法的計算速度就非常之慢了。
4.2 梯度下降法
4.2.1 批量梯度下降(BGD)
在曲面上方向?qū)?shù)的最大值方向就代表了梯度方向,因此在我們在進行梯度下降時選擇梯度的方向進行值更新,就可以找到最優(yōu)解,θ的按照如下方法進行更新,其中α稱為學(xué)習(xí)速率:$$Theta_{j}:=Theta_{j}-alphafrac{partial }{partial Theta }J(Theta)$$
首先假設(shè)假設(shè)函數(shù)只有一個參數(shù),我們可輔以Ng課上的一張圖片加以理解:
對于學(xué)習(xí)速率α的選擇,如果太大,每次變化太大則容易超過最小值,太小則迭代次數(shù)過多。同時,當(dāng)選定了學(xué)習(xí)速率時,我們不用再每次θ更新時也更新α,因為當(dāng)我們接近局部最小或全局最小值時,梯度會自動的減小,直至為0,因此我們不必重復(fù)的去減小α。
當(dāng)θ為2時,
當(dāng)求解問題是線性回歸時,代價函數(shù)就是一個線性最小二乘求解,就已經(jīng)保證了代價函數(shù)是凸函數(shù)(如上圖所示類似),所以批量梯度一定能找到全局最優(yōu)解;而當(dāng)其他問題,非線性時,代價函數(shù)就可能變成非凸函數(shù),批量梯度找到的就可能是局部最優(yōu),如圖:
梯度下降類似于在山的某一點環(huán)顧四周,計算出下降最快的方向(多維),然后踏出一步,這屬于一次迭代,同步更新一次值(所有θ必須是同步更新,不能更新了θ1,就用θ1更新后的值計算θ2,要所有的都計算完之后同步更新);實際算法中并沒有“環(huán)視四周”的步驟,因為當(dāng)我們進行梯度計算時,就已經(jīng)代表我們在朝著最小值方向前進。之所以稱之為“批量梯度下降”是因為每一次迭代計算θ時都使用了整個樣本集。但是,現(xiàn)在機器學(xué)習(xí)所處理的數(shù)據(jù)量相當(dāng)?shù)拇?,每次迭代都要遍歷整個樣本集無疑會耗費大量時間。算法描述如下:
4.2.2 隨機梯度下降(SGD)
隨機梯度的思路是:每次只使用一個樣本來確定梯度,循環(huán)m次,這樣就能得到一個十分逼近最優(yōu)解的值。算法描述如下:
原始的隨機梯度下降(SGD)適合于低精度的任務(wù),而梯度下降算法適合用于高精度的任務(wù)。
如果接受一個比較低的精度(應(yīng)用問題中往往不要求高精度),那么由于SGD每次只利用一個或部分樣本的梯度做更新,所以前期迭代較快,導(dǎo)致前期一段時間內(nèi)比梯度下降算法下降得多。
但是由于原始的SGD算法在目標(biāo)函數(shù)強凸的情況下依舊無法做到線性收斂,所以當(dāng)執(zhí)行的時候足夠長的時候SGD的精度會被梯度下降算法趕超,因為梯度下降算法可以在目標(biāo)函數(shù)強凸的時候有線性收斂速(本段摘自:https://www.zhihu.com/questio...)
具體的收斂判定方法,待解決。
注:關(guān)于最小二乘法中得到矩陣形式的詳細(xì)證明請參考本人其他相關(guān)文章,CSDN太難用了。
參考:
1.http://cs229.stanford.edu/sec...
2.http://lib.csdn.net/article/m...
3.http://open.163.com/movie/200...
4.CourseRa-斯坦福大學(xué)機器學(xué)習(xí)公開課
5.http://keson96.github.io/2016...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41417.html
閱讀 3597·2021-11-25 09:43
閱讀 3165·2021-10-08 10:04
閱讀 1659·2019-08-26 12:20
閱讀 2088·2019-08-26 12:09
閱讀 635·2019-08-23 18:25
閱讀 3609·2019-08-23 17:54
閱讀 2365·2019-08-23 17:50
閱讀 836·2019-08-23 14:33