1. 單變量線性回歸(Linear Regression with One Variable)
1.1 模型表示
像上述公式缅茉,因?yàn)橹缓幸粋€(gè)特征/輸入變量肿男,因此這樣的問題叫作單變量線性回歸問題延都。
例子如下:
單變量線性方程骂铁,就是我們初中就學(xué)的一元一次函數(shù)。
當(dāng)然啦漫雕,除了這個(gè)模型之外滨嘱,我們還有很多其他的線性模型,比如指數(shù)模型浸间、對(duì)數(shù)模型等等太雨,除了線性模型之外,還有非線性模型魁蒜,有這么多的模型囊扳,其目的就是在于更好的擬合訓(xùn)練集的數(shù)據(jù),以使得預(yù)測(cè)率更高兜看。
以下是對(duì)模型的具體定義:
2. 代價(jià)函數(shù)(Cost Function)
代價(jià)函數(shù)就是為了就是找到目的函數(shù)的最優(yōu)解锥咸。
因?yàn)樵谝粋€(gè)訓(xùn)練集中,有無數(shù)個(gè)模型(一元一次函數(shù))细移,我們需要找到最擬合這個(gè)訓(xùn)練集的一個(gè)函數(shù)搏予,所以就引入了代價(jià)函數(shù),用來找到那個(gè)最好的模型弧轧。
2.1公式表示
上述是平方誤差代價(jià)函數(shù)雪侥,這也是常用到的代價(jià)函數(shù),它通過目的函數(shù)跟各個(gè)實(shí)際值的誤差平方建立新的函數(shù)精绎。為了使這個(gè)值不受個(gè)別極端數(shù)據(jù)影響而產(chǎn)生巨大波動(dòng)速缨,采用類似方差再取二分之一的方式來減小個(gè)別數(shù)據(jù)的影響。
2.2 代價(jià)函數(shù)的直觀理解①
最優(yōu)解即為代價(jià)函數(shù)的最小值代乃,根據(jù)以上公式多次計(jì)算可得到代價(jià)函數(shù)的圖像:
可以看到該代價(jià)函數(shù)的確有最小值旬牲,這里恰好是橫坐標(biāo)為1的時(shí)候。
2.3 代價(jià)函數(shù)的直觀理解②
如果有更多參數(shù)襟己,就會(huì)更為復(fù)雜引谜,兩個(gè)參數(shù)的時(shí)候就已經(jīng)是三維圖像了:
3. 梯度下降算法(Gradient Descent)
梯度下降是一個(gè)用來求函數(shù)最小值的算法,我們將使用梯度下降算法來求出代價(jià)函數(shù)J(θ0,θ1) 的最小值擎浴。
個(gè)人理解员咽,代價(jià)函數(shù)是分析模型與實(shí)際訓(xùn)練集之間的誤差,而梯度下降算法的作用贮预,就是找出那個(gè)誤差最小的代價(jià)函數(shù)贝室。
算法思想
- 從參數(shù)的某一個(gè)(組)值開始契讲,比如從θ0=0和θ1=0開始
- 保持該(組)值持續(xù)減小,如果是一組值就要保證他們同步更新滑频,直到找到我們希望找到的最小值
我們要找到一條最快下山的路徑捡偏,我們走的每一步大小就是α 。
如果在不同的起點(diǎn)峡迷,最后到達(dá)的最低點(diǎn)也會(huì)不一樣银伟。
3.1批量梯度下降(batch gradient descent)
- α:學(xué)習(xí)速率,決定我們讓代價(jià)函數(shù)下降程度最大的方向邁出的步子有多大
3.1.1 同步更新(Simultaneous update)
在梯度下降算法中绘搞,我們需要更新θ0,θ1彤避,實(shí)現(xiàn)梯度下降算法的微妙之處是,在這個(gè)表達(dá)式中夯辖,如果你要更新這個(gè)等式琉预,你需要同時(shí)更新。
3.1.2 梯度下降算法理解
如果 α 太大蒿褂,那么梯度下降法可能會(huì)越過最低點(diǎn)圆米,甚至可能無法收斂,下一次迭代又移動(dòng)了一大步啄栓,越過一次娄帖,又越過一次,一次次越過最低點(diǎn)昙楚,直到你發(fā)現(xiàn)實(shí)際上離最低點(diǎn)越來越遠(yuǎn)块茁,所以,如果 α 太大桂肌,它會(huì)導(dǎo)致無法收斂,甚至發(fā)散永淌。
解決方法——乘偏導(dǎo)數(shù)
首先初始化我的梯度下降算法崎场,在那個(gè)品紅色的點(diǎn)初始化,如果
我更新一步梯度下降遂蛀,隨著我接近最低點(diǎn)谭跨,我的導(dǎo)數(shù)越來越接近零,所以李滴,梯度下降一步后螃宙,新的導(dǎo)數(shù)會(huì)變小一點(diǎn)點(diǎn)。然后我想再梯度下降一步所坯,在這個(gè)綠點(diǎn)谆扎,我自然會(huì)用一個(gè)稍微跟剛才在那個(gè)品紅點(diǎn)時(shí)比,再小一點(diǎn)的一步芹助,到了新的紅色點(diǎn)堂湖,更接近全局最低點(diǎn)了闲先,因此這點(diǎn)的導(dǎo)數(shù)會(huì)比在綠點(diǎn)時(shí)更小。所 以无蜂,我再進(jìn)行一步梯度下降時(shí)伺糠,我的導(dǎo)數(shù)項(xiàng)是更小的,θ1更新的幅度就會(huì)更小斥季。所以隨著梯度下降法的運(yùn)行训桶,你移動(dòng)的幅度會(huì)自動(dòng)變得越來越小,直到最終移動(dòng)幅度非常小酣倾,你會(huì)發(fā)現(xiàn)舵揭,已經(jīng)收斂到局部極小值。
3.1.3 線性回歸的批量梯度下降
偏導(dǎo)數(shù)求解推導(dǎo)過程
批量梯度下降方程
通過上面幾條公式的整合灶挟,最終得出以下公式
4. 線性代數(shù)基礎(chǔ)
個(gè)人現(xiàn)在認(rèn)為琉朽,線性代數(shù)的作用主要是為了方便操作訓(xùn)練集。
4.1 矩陣的定義
橫為行稚铣,豎為列箱叁,表示方法一般是R^(m*n)
尋找某個(gè)矩陣元素
4.2 矩陣加法(Matrix Addition)
同一個(gè)位置的矩陣元素相加,得到新的矩陣
4.3 矩陣乘法(Scalar Multiplication)
將值與矩陣每個(gè)元素相乘惕医,得到新的矩陣
4.4 矩陣的組合運(yùn)算(Combination of Operands)
將矩陣加減法和乘除法結(jié)合起來耕漱,道理都一樣
4.5 兩個(gè)矩陣相乘
A矩陣的行 乘 B矩陣的列 得到新矩陣 y 。
4.6 矩陣應(yīng)用到梯度下降算法實(shí)例
把訓(xùn)練集做成一個(gè)矩陣抬伺,把線性回歸方程做成另外一個(gè)矩陣螟够,將兩個(gè)矩陣相乘,最后就能得出一個(gè)新的矩陣峡钓。
4.7 單位矩陣
在矩陣的乘法中妓笙,有一種矩陣起著特殊的作用,如同數(shù)的乘法中的1,這種矩陣被稱為單位矩陣.它是個(gè)方陣能岩,從左上角到右下角的對(duì)角線(稱為主對(duì)角線)上的元素均為1寞宫。除此以外全都為0。
除0矩陣外拉鹃,任何矩陣乘單位矩陣都等于它本身辈赋。
4.8 逆矩陣
用octave求得逆矩陣:pinv()函數(shù)