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