這次引入的是一個(gè)更為有效的線性回歸形式张症,這種形式適用于多個(gè)變量或者多特征量的情況。
用n來表示特征量的數(shù)量俗他。如下所示,引入新的規(guī)范:
方便起見羡亩,如果將x下標(biāo)0的值定義為1,特征向量x和θ即均為n+1維的向量畏铆。
所以h也可以表示為θ轉(zhuǎn)置乘以X。(注意片排,這里的這個(gè)概念別和Note 4中的數(shù)據(jù)搞混了速侈,求得數(shù)據(jù)的總量仍然是需要再次利用率寡,X*theta矩陣)
這取決于你對(duì)向量?jī)?nèi)積有多熟悉倚搬,如果你展開θ轉(zhuǎn)置乘以X,那么就得到 θ0捅僵,θ1直到θn家卖。這個(gè)就是θ轉(zhuǎn)置庙楚,實(shí)際上,這就是一個(gè) n+1乘以1維的矩陣馒闷,也被稱為行向量 。用行向量 與X向量相乘逛薇,X向量是 x0疏虫,x1等等永罚,直到xn 卧秘。
因此內(nèi)積就是θ轉(zhuǎn)置乘以X就等于這個(gè)等式
這就為我們提供了一個(gè)表示假設(shè)的更加便利的形式,即用參數(shù)向量θ以及特征向量X的內(nèi)積产捞,這就是改寫以后的表示方法哼御,這樣的表示習(xí)慣就讓我們坯临,可以以這種緊湊的形式寫出假設(shè)恋昼,這就是多特征量情況下的假設(shè)形式,起另一個(gè)名字液肌,這就是所謂的,**多元線性回歸 **
總結(jié):一般設(shè)計(jì)到有規(guī)律的并行計(jì)算(或者for循環(huán)計(jì)算)谤祖,均可以使用矩陣相乘來替代老速。
多元線性回歸中的梯度下降算法
觀察左邊的式子,很容易推倒出右邊多元狀況下的情形橘券∏渫拢或者再次對(duì)代價(jià)函數(shù)J進(jìn)行微積分锋华,也能得到這樣的式子。
梯度下降算法中的實(shí)用技巧
一種讓梯度下降的速度變得更快的技巧:
1. 特征縮放(feature scaling)
2. 均值歸一化(mean normalization)
從而讓梯度下降收斂所需的循環(huán)次數(shù)越來越少衍腥,本質(zhì)都是為了避免下圖左邊這種情況的發(fā)生:
其中:分母是特征量的取值范圍(Max-Min)
其中:分子的減數(shù)是特征量的平均值
3 . Debuging的技巧:應(yīng)該如何確認(rèn)梯度下降是正常工作的
4 . 如何選擇學(xué)習(xí)率α纳猫。
繪制代價(jià)函數(shù)J(θ)隨著迭代次數(shù)變化的圖像,可以讓你弄清楚每一步以后到底發(fā)生了什么:
如果梯度下降算法正常工作擅耽,那么每一步迭代之后J(θ)的值都應(yīng)該下降
只要學(xué)習(xí)率足夠小活孩,那么代價(jià)函數(shù)J(θ)在每次迭代之后都應(yīng)該下降。
但是如果學(xué)習(xí)率太小询兴,梯度下降算法又可能會(huì)收斂的很慢。
總結(jié):
具體來說诗舰,當(dāng)運(yùn)行梯度下降算法時(shí)训裆,通常會(huì)嘗試一系列α值,所以在運(yùn)行梯度下降算法時(shí)边琉,請(qǐng)嘗試不同的 α 值。
比如0.001, 0.01 這里每隔10倍取一個(gè)值然后對(duì)于這些不同的 α 值族扰,繪制 J(θ) 隨迭代步數(shù)變化的曲線,然后選擇看上去使得 J(θ) 快速下降的一個(gè) α 值渔呵,事實(shí)上通常并不是隔10倍取一個(gè)值砍鸠。我通常取的扩氢,是這些 α 值:
先取0.001 爷辱,然后將學(xué)習(xí)率增加3倍耍属,得到0.003巩检。然后這一步從0.003到0.01又大約增加了3倍,所以在為梯度下降算法選擇合適的學(xué)習(xí)率時(shí)兢哭,大致是按3的倍數(shù)來取值的 。所以我會(huì)嘗試一系列α值 迟螺,直到我找到一個(gè)值它不能再小了,同時(shí)找到另一個(gè)值它不能再大了锉桑,然后我盡量挑選,其中最大的那個(gè) α 值民轴,或者一個(gè)比最大值略小一些的合理的值球订。而當(dāng)我做了以上工作時(shí)后裸,我通常就可以得到一個(gè)不錯(cuò)的學(xué)習(xí)率冒滩。如果也你這樣做那么你也能夠?yàn)槟愕奶荻认陆邓惴ㄕ业揭粋€(gè)合適的學(xué)習(xí)率值
5 . 選擇特征的方法以及如何得到不同的學(xué)習(xí)算法
多項(xiàng)式回歸( polynomial regression)
熟悉常見的函數(shù)圖像的形式,用多種形式的回歸方程來擬合因苹。
參考鏈接: https://blog.csdn.net/kwame211/article/details/81530820