該系列文章為绑蔫,觀看“吳恩達(dá)機(jī)器學(xué)習(xí)”系列視頻的學(xué)習(xí)筆記蛋哭。雖然每個視頻都很簡單,但不得不說每一句都非常的簡潔扼要涮母,淺顯易懂谆趾。非常適合我這樣的小白入門。
本章含蓋
- 2.1 模型表示
- 2.2 代價函數(shù)
- 2.3 代價函數(shù)(一)
- 2.4 代價函數(shù)(二)
- 2.5 梯度下降
- 2.6 梯度下降的直觀理解
- 2.7 線性回歸的梯度下降
2.1 模型表示
機(jī)器學(xué)習(xí)算法是怎樣工作的:
a)我們向?qū)W習(xí)算法提供訓(xùn)練集
b)學(xué)習(xí)算法的任務(wù)是輸出一個函數(shù)(通常用小寫h表示)叛本,h代表假設(shè)函數(shù)
c)假設(shè)函數(shù)的作用是沪蓬,把房子的大小作為輸入變量(x),而它試著輸出相應(yīng)房子的預(yù)測y值
h:是一個引導(dǎo)從x得到y(tǒng)的函數(shù)
當(dāng)我們設(shè)計(jì)一個機(jī)器學(xué)習(xí)算法時来候,第一個需要做的是:決定怎么表達(dá)這個假設(shè)函數(shù)h
跷叉,因?yàn)橹缓幸粋€特征/輸入變量,因此這樣的問題叫作單變量線性回歸問題营搅。
這個模型叫做“線性回歸”云挟,這個例子是一元線性回歸。這個模型的另一個名字“單變量線性回歸”
2.2 代價函數(shù)
那么我們要如何選擇θ_1和θ_2這兩個參數(shù)转质。
我們要選擇能使h(x)园欣,也就是輸入x時我們預(yù)測的值最接近該樣本對應(yīng)的y值的參數(shù)θ_1和θ_2。
所以休蟹,在我們的訓(xùn)練集中我們會得到一定數(shù)量的樣本沸枯。我們知道x表示賣出哪所房子日矫,并且知道這所房子的實(shí)際價格。
所以绑榴,我們要盡量選擇參數(shù)值哪轿,使得在訓(xùn)練集中,給出訓(xùn)練集中的x值翔怎,我們能合理準(zhǔn)確的預(yù)測y值窃诉。
標(biāo)準(zhǔn)的定義:在線性回歸中,我們要解決的是一個最小化問題姓惑,所以我們要寫出關(guān)于θ_1和θ_2的最小化褐奴。而且,我們希望這個式子極小于毙,我想要h(x)和y之間的差異要小敦冬。我要做的是:盡量減少假設(shè)的輸出與房子真實(shí)價格之間的差的平方。
線性回歸的代價函數(shù):m :訓(xùn)練樣本數(shù)量
(??(??),??(??)) 代表第??個訓(xùn)練樣本
我們要關(guān)于θ_1和θ_2對代價函數(shù)求最小值唯沮。
“代價函數(shù)”也被稱作“平方誤差函數(shù)”脖旱,有時也被稱作“平方誤差代價函數(shù)”。
事實(shí)上介蛉,我們之所以要求出“誤差的平方和”萌庆,是因?yàn)椤罢`差平方代價函數(shù)”對于大多數(shù)的問題,特別是回歸問題币旧,都是一個合理的選擇践险。還有其他的代價函數(shù)也能很好地發(fā)揮作用。但是“平方誤差代價函數(shù)”可能是解決回歸問題最常用的手段了吹菱。
2.3 代價函數(shù)(一)
-
當(dāng) θ_1 = 1 時:
代價函數(shù)是關(guān)于Θ_1的函數(shù)巍虫。因此,我們在繪制‘代價函數(shù)’時鳍刷,橫軸是θ_1占遥,縱軸是J(θ_1).
J(θ_1) 可能是負(fù)數(shù)、0输瓜、正數(shù)瓦胎。 -
當(dāng) θ_1 = 0.5 時:
-
當(dāng) θ_1 = 0 時:
-
代價函數(shù)J(θ_1) :
2.4 代價函數(shù)(二)
本節(jié),我們用h(x) = θ_0 +θ_1*x 來表示‘假設(shè)函數(shù)’尤揣,那么‘代價函數(shù)’J(θ_0, θ_1)就是關(guān)于 θ_0搔啊、θ_1 的函數(shù)。因此北戏,坐標(biāo)圖已經(jīng)不是簡單的二維坐標(biāo)了坯癣,而是三維坐標(biāo)。如最欠,x軸表示’θ_0’示罗、y軸表示’θ_1’惩猫、z軸表示‘J(θ_0, θ_1)’。如下:??’代價函數(shù)’圖蚜点,依舊像個碗狀轧房。
等高線圖(右圖)
-
舉例:
① θ_0 = 800 奶镶;θ_1 = -0.15
2.5 梯度下降
梯度下降法可以將代價函數(shù)最小化陪拘。梯度下降是很常用的算法厂镇,它不僅被用在線性回歸上,還被廣泛應(yīng)用于機(jī)器學(xué)習(xí)的眾多領(lǐng)域左刽。
用梯度下降法最小化其他函數(shù)捺信,而不僅僅是最小化線性回歸的代價函數(shù)J.
用梯度下降法是可以最小化任意函數(shù)的
問題概述:
初始狀態(tài):通常選擇是將θ_0設(shè)為0,θ_1也設(shè)置為0.
梯度下降有一個有趣的特點(diǎn):不一樣的起始點(diǎn)(即便只偏差一點(diǎn))欠痴,你可能就會得到完全不同的局部最優(yōu)解迄靠。背后的數(shù)學(xué)原理:
『:=』賦值
『=』真假判定 (truth assertion)。如抽米,a = b奇徒,就是斷言a的值等于b的值
『α』學(xué)習(xí)率的數(shù)字(永遠(yuǎn)是一個正數(shù),即缨硝,> 0)。α 用來控制罢低,梯度下降時查辩,我們邁出多大的步子。如果网持,α 的值很大宜岛,梯度下降就很迅速
『
2.6 梯度下降的直觀理解
α為學(xué)習(xí)速率功舀,它控制我們以多大的幅度更新這個參數(shù)Θ_J.
-
以一個參數(shù)的代價函數(shù)J(Θ_1)萍倡,來講解’α’和’導(dǎo)數(shù)項(xiàng)’,以及為什么將它們放在一起時辟汰,整個更新過程是有意義的列敲。
這是我們的函數(shù)J(θ_1)阱佛,θ_1 ∈ R。
斜率 = 高度 / 水平長度
??這個紅色直線有一個正斜率所意,或者說正導(dǎo)數(shù)淮逊。
所以,new_θ1 < old_θ1扶踊。相當(dāng)于我們將θ1向左移泄鹏,使θ1變小了。
new_θ1 > old_θ1
-
學(xué)習(xí)速率 α 的作用
梯度下降法的更新原則:
-
問題:如果 θ1 已經(jīng)處于一個局部最優(yōu)點(diǎn)了,你認(rèn)為下一步梯度下降會怎么樣绣版?
局部最優(yōu)點(diǎn)的導(dǎo)數(shù)等于0胶台,因?yàn)閷?dǎo)數(shù)是切線的斜率。那么杂抽,θ1 := θ1 - α * 0 诈唬,即,new_θ1 == old_θ1.
因此缩麸,如果你已經(jīng)在局部最優(yōu)點(diǎn)铸磅,θ1將不再改變。
這就是梯度下降函數(shù)阅仔,你可以用它來嘗試最小化任意的代價函數(shù)J,而不只是線性回歸中的代價函數(shù)J弧械。
線性回歸算法 = 平方代價函數(shù) 結(jié)合 梯度下降法
線性回歸的梯度下降
??其中θ0的求導(dǎo)刃唐,只是一個對應(yīng)θ0的偏導(dǎo)數(shù)羞迷。
因?yàn)椤椒讲畲鷥r函數(shù)’總是一個弓狀函數(shù)(如,下圖)画饥,術(shù)語叫做‘凸函數(shù)’(不太正規(guī)的理解衔瓮,‘凸函數(shù)’就是一個弓形函數(shù))。因此抖甘,這個函數(shù)沒有局部最優(yōu)解热鞍,它只有一個全局最優(yōu)解(這樣它就不存在,當(dāng)前起始點(diǎn)不一樣時,導(dǎo)致可能產(chǎn)生不同的局部最優(yōu)解的情況)薇宠。
- “Batch 梯度下降法”
‘Batch梯度下降法’意味著每一步梯度下降偷办,我們都遍歷了整個訓(xùn)練集的樣本。所以在梯度下降中昼接,當(dāng)計(jì)算偏導(dǎo)數(shù)時爽篷,我們計(jì)算總和。因此慢睡,在每個單獨(dú)的梯度下降逐工,我們計(jì)算m個訓(xùn)練樣本的總和。因此漂辐,‘Batch梯度下降法’指的是泪喊,看整個訓(xùn)練集時。
其他的算法(即髓涯,其他的梯度算法)袒啼,沒有覽概整個訓(xùn)練集,它每次只關(guān)注了小子集
- “正規(guī)方程組方法”:
求解函數(shù)J的最小值纬纪,不需要使用像梯度下降的迭代算法蚓再。
但‘梯度下降’適用于更大的數(shù)據(jù)集。