機(jī)器學(xué)習(xí) —— 多元梯度下降

一、多維特征

前面所述的房?jī)r(jià)預(yù)測(cè)的線性模型,只用到了一維特征,即size,房屋尺寸,要用這個(gè)特征量來(lái)預(yù)測(cè)房屋價(jià)格:


當(dāng)數(shù)據(jù)集的信息不止一種時(shí),便有了多維特征,比如:

上圖有四個(gè)X,即四個(gè)特征,來(lái)預(yù)測(cè)房屋價(jià)格。
于是房?jī)r(jià)預(yù)測(cè)的假設(shè)函數(shù)h(x)也從一元線性回歸變成了多元線性回歸

上述假設(shè)函數(shù)中的θo可以看作:有一個(gè)額外的Xo ,Xo = 1 。那么多元線性回歸的假設(shè)函數(shù)可以 簡(jiǎn)化成:θ的轉(zhuǎn)置乘以X (θ和X都可看作n+1維向量)

二、多元梯度下降法

與一元線性回歸的代價(jià)函數(shù)與多元線性回歸的代價(jià)函數(shù)都是針對(duì)所有的θ,只是多元線性回歸的θ個(gè)數(shù)更多,


梯度下降算法的實(shí)質(zhì)也是一樣的,如果不清楚可看往期內(nèi)容:
機(jī)器學(xué)習(xí)——梯度下降、梯度下降的線性回歸算法

計(jì)算代價(jià)函數(shù)J(θ)的python代碼實(shí)現(xiàn):

def computeCost(X, y, theta):
    inner = np.power(((X * theta.T) - y), 2)
    return np.sum(inner) / (2 * len(X))

三、梯度下降之特征縮放

面對(duì)多維特征問(wèn)題的時(shí)候,保證這些特征都具有相近的尺度,這將幫助梯度下降算法更快地收斂。
當(dāng)各個(gè)特征間的數(shù)值差距很大,梯度下降算法需要非常多次的迭代才能收斂。以房?jī)r(jià)問(wèn)題為例,假設(shè)我們使用兩個(gè)特征,房屋的尺寸和房間的數(shù)量,尺寸的值為 0-2000平方英尺,而房間數(shù)量的值則是0-5,以?xún)蓚€(gè)參數(shù)分別為橫縱坐標(biāo),繪制代價(jià)函數(shù)的等高線圖,能看出圖像會(huì)顯得很扁,梯度下降算法需要非常多次的迭代才能收斂。


解決的方法是嘗試將所有特征的尺度都盡量縮放到-1到1之間。如圖:
即 將特征的值除以該特征的最大值

有時(shí)候也不需要完全在-1:1的范圍內(nèi),相近即可,比如下圖-3:3也可以,但是如果差的太多則不行。

特征縮放的另一種方法:

上述的Sn也可以用特征的( max-min )

四、梯度下降之學(xué)習(xí)率

梯度下降算法收斂所需要的迭代次數(shù)根據(jù)模型的不同及學(xué)習(xí)率的不同而不同,不能提前預(yù)知,我們可以繪制代價(jià)函數(shù)J隨θ迭代次數(shù)變化的圖來(lái)觀測(cè)算法在何時(shí)趨于收斂


判斷代價(jià)函數(shù)是否在逐漸收斂,即梯度下降算法是否在正確的work,可以將迭代后與迭代前的代價(jià)函數(shù)的變化值與某個(gè)閥值(例如0.001)進(jìn)行比較,但繪制代價(jià)函數(shù)J隨θ迭代次數(shù)變化的圖更加直觀。
當(dāng)梯度下降算法不是在正確的work時(shí):
下圖兩種情況均是學(xué)習(xí)率過(guò)大導(dǎo)致,可以采用更小的學(xué)習(xí)率

下圖(X軸應(yīng)為θ)藍(lán)色箭頭的多次迭代則是學(xué)習(xí)率太小導(dǎo)致

當(dāng)學(xué)習(xí)率過(guò)大時(shí):代價(jià)函數(shù)可能不是每次迭代都下降,也可能最終不會(huì)收斂(可見(jiàn)上圖的紅色箭頭所示)。而當(dāng)學(xué)習(xí)率過(guò)小時(shí),代價(jià)函數(shù)可能需要很多很次才能最終收斂。
因此確定合適的學(xué)習(xí)率很重要,可以通過(guò)嘗試一系列不同的學(xué)習(xí)率來(lái)確定,比如:

合理的大可以保證速度而不犧牲太多的精度;合理的小可以保證精度而不犧牲太多的速度。

后話: 我的朋友,覺(jué)得不錯(cuò)的話,不妨點(diǎn)個(gè)關(guān)注和贊

微信公眾號(hào):BioLearner 會(huì)定期更新,歡迎關(guān)注

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容