其實(shí)就是把多變量假設(shè)函數(shù)帶入梯度下降算法之中:
梯度運(yùn)算的使用技巧1:特征縮放(feature scaling)
使特征值在一個(gè)相近的范圍,這樣的話更容易收斂從而更快的找到全局最優(yōu)解。
Once again,使特征值在一個(gè)相近的范圍,從而使梯度下降更快。只要范圍相近就OK。
歸一化(mean normalization):
特征值的范圍的標(biāo)準(zhǔn)差做分母(也可以是最大值減去最小值),然后每個(gè)特征值減去它們的的平均值做分子。(因?yàn)橹灰沟锰卣髦捣秶嘟蚈K)
目的是使特征在一個(gè)相近的范圍,更快的收斂。
上圖中的bedrooms特征那里的分母應(yīng)該是4。但是就算是5,對(duì)梯度下降計(jì)算來(lái)說(shuō)影響也不大,因?yàn)樘卣骺s放并不需要非常精確,只要范圍相近就OK。
梯度運(yùn)算的使用技巧2:學(xué)習(xí)率(learning rate)α
其實(shí)就是選擇合適的學(xué)習(xí)率α。
查看代價(jià)函數(shù)曲線,選擇合適的α。
通常選擇合適的閾值ε是相當(dāng)困難的,為了檢查梯度下降算法是否收斂,常選擇查看代價(jià)函數(shù)曲線,而不依靠自動(dòng)收斂測(cè)試。
α過(guò)大會(huì)導(dǎo)致代價(jià)函數(shù)振蕩或者發(fā)散,α過(guò)小會(huì)導(dǎo)致代價(jià)函數(shù)收斂太慢。
為了選擇更好的學(xué)習(xí)率α,所以通常選擇相差10倍的值來(lái)測(cè)試,然后查看代價(jià)函數(shù)圖,從而找到合理的值。(下圖中選擇還有3倍的數(shù)字)