2.1 模型描述(Model Representation)
2.1.1 模型常用表示符號(hào)
一般情況下蔼两,模型算法的變量表示如下:
- m:表示訓(xùn)練樣本的數(shù)量;
- x:表示輸入?yún)?shù)咖祭,或者稱為特征渡冻;
- y:表示輸出變量,即預(yù)測(cè)的目標(biāo)變量旦事;
- (x,y):表示一個(gè)訓(xùn)練樣本魁巩;
- h:表示一個(gè)輸出函數(shù),是x->y的映射函數(shù)姐浮,稱為假設(shè)函數(shù)谷遂,也是用來預(yù)測(cè)的函數(shù)。
單變量線性回歸計(jì)算公式為:
在坐標(biāo)系中繪制出來的圖形如下圖所示:
2.2 代價(jià)函數(shù)(Cost Function)
成本函數(shù)(Cost Function卖鲤,又稱為代價(jià)函數(shù)肾扰、平方誤差函數(shù)畴嘶、平方誤差代價(jià)函數(shù))要做的就是對(duì)J(theta0,theta1)求最小值。集晚,計(jì)算公式為:
目標(biāo)為:
2.3 代價(jià)函數(shù)(一)(Cost Function - Intuition 2)
本節(jié)課中窗悯,為了便于更好的理解成本函數(shù),將假設(shè)函數(shù)中的常量假設(shè)為0甩恼,即經(jīng)過原點(diǎn)的假設(shè)函數(shù)蟀瞧,坐標(biāo)系中的圖形類似下圖:
則此時(shí)的成本函數(shù)優(yōu)化目標(biāo)變?yōu)椋?/p>
經(jīng)過上述假設(shè)后,成本函數(shù)的優(yōu)化目標(biāo)中只剩下一個(gè)參數(shù)条摸。
對(duì)于假設(shè)函數(shù)(hypothesis function)htheta1(x)悦污,當(dāng)參數(shù)theta1
固定時(shí),假設(shè)函數(shù)變成了關(guān)于x的函數(shù)钉蒲。而成本函數(shù)則是關(guān)于參數(shù)theta1
的函數(shù)切端,它控制著假設(shè)函數(shù)直線的斜率。
成本函數(shù)的優(yōu)化目標(biāo)即線性函數(shù)的目標(biāo)函數(shù)為成本函數(shù)值最小的點(diǎn)對(duì)應(yīng)的theta1的值顷啼。
2.4 代價(jià)函數(shù)(二)(Cost Function - Intuition 2)
本節(jié)課學(xué)習(xí)的基礎(chǔ)是要了解等高線圖或等高線圖像(contour plots/figures)踏枣。與上一節(jié)課內(nèi)容不同的點(diǎn)在于,本節(jié)課將假設(shè)函數(shù)的常量參數(shù)theta0保留钙蒙,此時(shí)可以得出成本函數(shù)圖形變?yōu)槿S圖形茵瀑,圖形類似碗狀,如下圖所示:
我們將成本函數(shù)的值改為用等高線圖的形式來表示躬厌,得到下圖:
上圖中马昨,每個(gè)圈上的點(diǎn)代表了成本函數(shù)相同的點(diǎn)。
2.5 梯度下降(Gradient Descent)
梯度下降是很常用的算法扛施,它不僅被用在線性回歸上鸿捧,還被廣泛應(yīng)用于機(jī)器學(xué)習(xí)的眾多領(lǐng)域。在后面課程中疙渣,我們將用梯度下降算法最小化其他函數(shù)匙奴,而不僅僅是最小化線性回歸的代價(jià)函數(shù)J。
本節(jié)課將講解用梯度下降算法最小化任意函數(shù)J妄荔,在后面的課程中我們?cè)僦v用梯度下降算法最小化線性回歸的代價(jià)函數(shù)J泼菌,這種情況是函數(shù)J的一種特例。
任意函數(shù)J的參數(shù)有可能是多個(gè)懦冰,那么最小化這個(gè)函數(shù)實(shí)際上就是找到若干個(gè)參數(shù)的其中一種組合使得函數(shù)J的值最小灶轰,為了便于書寫,我們用兩個(gè)參數(shù)的函數(shù)J來代替通用的函數(shù)J的寫法刷钢。
梯度下降算法的思路:
- 給定參數(shù)theta0和theta1的初始值笋颤,初始值可以是任意值,但通常習(xí)慣將theta0和theta1初始化為0;
- 不斷的一點(diǎn)點(diǎn)的改變theta0和theta1的值伴澄,來使函數(shù)J的值更小赋除。
重復(fù)第二步,直至找到J的最小值或局部最小值非凌。
下圖中圖形表面的高度即表示函數(shù)J的值举农。
梯度下降算法的偽代碼及計(jì)算公式如下,算法中不斷執(zhí)行中間的計(jì)算公式敞嗡,直至收斂:
其中颁糟,
-
:=
代表賦值; -
alpha
代表學(xué)習(xí)率喉悴,用來控制梯度下降時(shí)的步長棱貌,值越大,梯度下降越快箕肃,這個(gè)參數(shù)的設(shè)置技巧將在后面的課程中講解婚脱; - 最后一部分為導(dǎo)數(shù)計(jì)算公式,將在后面的課程中進(jìn)行推導(dǎo)勺像,并說明其作用障贸。
=
代表判斷等號(hào)兩邊的值是否相等,是做的判斷操作吟宦,而非賦值操作篮洁。這是Andrew推薦使用的Octave的語法。
梯度下降算法的正確做法是同時(shí)更新函數(shù)J中的多個(gè)參數(shù)的值殃姓,而非更新一個(gè)參數(shù)之后再更新另一個(gè)參數(shù)嘀粱。雖然二者之間的差別非常細(xì)微,但非同步更新所有參數(shù)的方式是其他的算法辰狡,并非我們通常意義上的梯度下降算法。
2.6 梯度下降知識(shí)點(diǎn)總結(jié)(Gradient Descent Intuition)
本節(jié)課主要講解上一節(jié)中的梯度下降算法的實(shí)現(xiàn)代碼中的公式中學(xué)習(xí)率alpha及導(dǎo)數(shù)公式的過程及意義垄分。
2.7 線性回歸的梯度下降(Gradient Descent For Linear Regression)
梯度下降法的偏導(dǎo)數(shù)推導(dǎo)過程如下所示:
分別計(jì)算參數(shù)theta0和theta1的偏導(dǎo)數(shù)宛篇,得到:
則梯度下降算法的代碼中公式可以替換為上述兩個(gè)結(jié)果:
線性回歸函數(shù)的代價(jià)函數(shù)始終是一個(gè)凸函數(shù)(Convex Function),其圖形類似于弓形薄湿。這個(gè)函數(shù)沒有局部最優(yōu)解叫倍,只有一個(gè)全局最優(yōu)解。
Batch梯度下降法就是在每一步梯度下降過程中豺瘤,對(duì)所有的訓(xùn)練集樣本進(jìn)行計(jì)算吆倦。
其實(shí),在線性代數(shù)中有相關(guān)的方法可以直接計(jì)算出代價(jià)函數(shù)J的最小值坐求,而無需通過梯度下降法這么復(fù)雜的迭代過程蚕泽,這種方法被稱為正規(guī)方程組方法。二者的區(qū)別在于,梯度下降法更適用于數(shù)據(jù)集較大的情況须妻。