[嗶哩嗶哩視頻地址](http://www.bilibili.com/video/av9559261/)
定義本課程常用符號
訓(xùn)練數(shù)據(jù):機(jī)器用來學(xué)習(xí)的數(shù)據(jù)
測試數(shù)據(jù):用來考察機(jī)器學(xué)習(xí)效果的數(shù)據(jù),相當(dāng)于考試疫稿。
m = 訓(xùn)練樣本的數(shù)量(訓(xùn)練集的個(gè)數(shù))
x = 輸入的特征(例如房屋面積)
y = 輸出結(jié)果(例如房屋售價(jià))
(x(i),y(i)) = 表示訓(xùn)練集中第i個(gè)訓(xùn)練樣本
監(jiān)督學(xué)習(xí)算法的工作方式
將訓(xùn)練集中里的房屋價(jià)格喂給學(xué)習(xí)算法培他,學(xué)習(xí)算法就開始工作了,然后輸出一個(gè)函數(shù)遗座,通常被稱為h(hypothesis假設(shè)函數(shù))舀凛,有了這個(gè)h函數(shù),輸入測試數(shù)據(jù)中想要出售的房屋面積途蒋,該函數(shù)會給出相應(yīng)售賣價(jià)格猛遍,因此h是一個(gè)從x到y(tǒng)的函數(shù)映射。
當(dāng)設(shè)計(jì)學(xué)習(xí)算法的時(shí)候号坡,接下來要思考懊烤,怎么得到這個(gè)假設(shè)h?
如圖所示用來預(yù)測y關(guān)于x的線性函數(shù):hΘ(x) = Θ0 + Θ1*x
為什么是線性宽堆?我們還會有很多復(fù)雜的函數(shù)腌紧,由于線性方程是最簡單的,所以先從線性方程入手畜隶。當(dāng)然壁肋,最終我們將會建立更復(fù)雜的模型,以及更復(fù)雜的學(xué)習(xí)算法籽慢,讓我們也給這模型命名為 線性回歸模型浸遗。另外這實(shí)際上是關(guān)于單個(gè)變量的線性回歸,根據(jù)x來預(yù)測所有價(jià)格的函數(shù)箱亿,對于這種模型跛锌,還有一個(gè)名字是單變量線性回歸,單變量是對一個(gè)變量的一個(gè)表達(dá)形式极景,總而言之這就是線性回歸察净。
Cost Function
hΘ(x) = Θ0 + Θ1*x
影響改函數(shù)樣子的決定因素只有Θ0 和 Θ1, Θ0是一個(gè)常數(shù)盼樟,只是會影響函數(shù)曲線的整體在y軸上的位置(函數(shù)曲線的高低)氢卡,真正的變量只有Θ1。我們要做的就是找出 Θ0晨缴,Θ1译秦,讓假設(shè)函數(shù)盡量的擬合所有的數(shù)據(jù)點(diǎn)。
我們知道x表示賣出了哪個(gè)房子,而y表示賣出該房子的實(shí)際價(jià)格筑悴,我們要盡量選擇參數(shù)值们拙,使得在訓(xùn)練集中給出的訓(xùn)練集中的x值,可以合理準(zhǔn)確的預(yù)測y的值阁吝,讓我們給出標(biāo)準(zhǔn)的定義砚婆,在線性回歸中,我們要解決的是一個(gè)最小化問題突勇,我們要寫出Θ1装盯, Θ0的最小化,我希望h(x) 和 y之間的差距極其小甲馋,接近0埂奈,盡量減少假設(shè)的輸出和實(shí)際房屋價(jià)格之間差的平方。如下式子最小
(hΘ)x - y)2
別忘了定躏,用(x(i),y(i))表示訓(xùn)練集中第i個(gè)訓(xùn)練樣本账磺,對所有訓(xùn)練樣本進(jìn)行差平方求和
∑(hΘ)x(i) - y(i))2
//求和圖標(biāo)上標(biāo)為m(樣本容量),下標(biāo)為i=1痊远,(鍵盤打不出垮抗,只能這樣標(biāo)注了)
而為了讓這個(gè)表達(dá)式更容易理解一些,我們實(shí)際上考慮的事這個(gè)差平方的平均數(shù)碧聪,更改表達(dá)式如下
(1/m)∑(hΘ)x(i) - y(i))2
//求和圖標(biāo)上標(biāo)為m(樣本容量)借宵,下標(biāo)為i=1,(鍵盤打不出矾削,只能這樣標(biāo)注了)
要盡量減小平方誤差,更改表達(dá)式如下
(1/2m)∑(hΘ)x(i) - y(i))2
//求和圖標(biāo)上標(biāo)為m(樣本容量)豁护,下標(biāo)為i=1哼凯,(鍵盤打不出,只能這樣標(biāo)注了)
代入hΘ(x) = Θ0 + Θ1*x
(1/2m)∑(Θ0 + Θ1*x(i) - y(i))2
//求和圖標(biāo)上標(biāo)為m(樣本容量)楚里,下標(biāo)為i=1断部,(鍵盤打不出,只能這樣標(biāo)注了)
因此我們的目標(biāo)是找出能使訓(xùn)練集中預(yù)測值和真實(shí)值差的平方的和的1/2m最小的Θ0和Θ1班缎,因此這就是我們線性回歸的整體目標(biāo)函數(shù)
J(Θ0 , Θ1)=(1/2m)∑(Θ0 + Θ1*x(i) - y(i))2
//求和圖標(biāo)上標(biāo)為m(樣本容量)蝴光,下標(biāo)為i=1,(鍵盤打不出达址,只能這樣標(biāo)注了)
我們要做的就是關(guān)于Θ0 和 Θ1 蔑祟,對函數(shù)J(Θ0 , Θ1) 的求最小值,這就是我的代價(jià)函數(shù)沉唠,代價(jià)函數(shù)也被稱為平方誤差函數(shù)疆虚,有時(shí)也被稱為平方誤差代價(jià)函數(shù),之所以要出誤差的平方和,是因?yàn)檎`差平方代價(jià)函數(shù)對于大多數(shù)問題径簿,特別是回歸問題罢屈,都是一個(gè)合理的選擇。
成本函數(shù)(代價(jià)函數(shù))
為了簡化成本函數(shù)J篇亭,設(shè)置Θ0為0缠捌,既函數(shù)曲線從原點(diǎn)(0, 0)開始
假設(shè)函數(shù)hΘ(x)更新為
hΘ(x)=Θ1*x
成本函數(shù)J 代入假設(shè)函數(shù)h
J(Θ1)=1/2m∑(Θ1*x(i) - y(i))2
//求和圖標(biāo)上標(biāo)為m(樣本容量),下標(biāo)為i=1译蒂,(鍵盤打不出曼月,只能這樣標(biāo)注了)
影響函數(shù)曲線斜率的只有Θ1。
代入Θ1 不同的數(shù)值蹂随,可以得到不同的成本函數(shù)J(Θ1),
例:坐標(biāo)系中現(xiàn)在有(1十嘿,1)(2,2)岳锁,(3绩衷,3)三個(gè)點(diǎn),為了更好的擬合數(shù)據(jù)激率,做以下嘗試咳燕,樣本總數(shù)m = 3
Θ1 = 1 時(shí) h(Θ1) = x, J(Θ1) = 0
J(1) = (1/2m)((1-1)^2+(2-2)^2+(3-3)^2) =(1/2x3)((1-1)^2+(2-2)^2+(3-3)^2)= 0
Θ1 = 0.5 時(shí) h(Θ1) = 0.5x, J(Θ1) = 0.58
J(0.5) = (1/2m)((0.5-1)^2+(1-2)^2+(1.5-3)^2) = (1/2x3)((0.5-1)^2+(1-2)^2+(1.5-3)^2) = 14/6 ≈ 0.58
Θ1 = 0 時(shí) h(Θ1) = 0, J(Θ1) = 2.3
J(0) = (1/2m)(1^2+2^2+3^2) = (1/2x3)(1+4+9) = 14/6 ≈ 2.3
提示:成本函數(shù)計(jì)算方法是每一個(gè)點(diǎn)的真實(shí)數(shù)值于假設(shè)函數(shù)預(yù)測值的差的平方的和乘1/2m
代入不同的Θ1,得到不同的J(Θ1)乒躺,這些不同的J(Θ1)形成了一個(gè)函數(shù)曲線招盲,該曲線最低點(diǎn)就是J(Θ1)的最小值,既當(dāng)Θ1=1時(shí) J(Θ1)最小嘉冒。
等高線圖
使用完整的假設(shè)函數(shù)h和成本函數(shù)J曹货,保留假設(shè)函數(shù)的所有參數(shù)Θ0,Θ1
等高線圖讳推?
有一個(gè)座大山顶籽,地面測量大山各點(diǎn)的海拔高度,映射到平面上银觅。高度相同的用線連接起來礼饱,形成的這個(gè)圖就是等高線圖,看著像一圈圈的大樹年輪究驴,越靠近中心海拔越高镊绪。
當(dāng)參數(shù)為兩個(gè)時(shí),如何繪制成本函數(shù)洒忧?
假設(shè)函數(shù)參數(shù)共兩個(gè)蝴韭,需要在三維坐標(biāo)系中繪制,x軸為Θ0跑慕,y軸為Θ1万皿,z軸為J(Θ0,Θ1)摧找,代入不同的Θ0,Θ1牢硅,會得到不同的J(Θ0,Θ1)蹬耘,在三維坐標(biāo)系中像是一個(gè)盆地地形。將盆地映射到平面上也就形成了一圈一圈的等高圖减余,越靠近中心的地方成本函數(shù)J的數(shù)值就越小综苔。
梯度下降
梯度下降是比較常用的最小化代價(jià)函數(shù)J的算法。
我們在梯度下降中要做的就是不停地一點(diǎn)點(diǎn)地改變Θ0位岔,Θ1的值如筛,試圖通過改變使得J(Θ0,Θ1)變小抒抬,直到找到J的最小值或許是局部最小值杨刨。
我在試圖讓這個(gè)函數(shù)值最小,注意坐標(biāo)軸Θ0和Θ1在水平軸上擦剑,而函數(shù)J在垂直坐標(biāo)軸上妖胀,圖形表面高度則是J的值。從Θ0惠勒,Θ1的某個(gè)值出發(fā)赚抡,所以想象一個(gè)對Θ0,Θ1賦予某個(gè)初值纠屋,從該點(diǎn)下山涂臣,一直到山腳,下山的每一步朝什么方向售担。你站在山上某個(gè)點(diǎn)赁遗,你看一下周圍,你會發(fā)現(xiàn)最佳的下山方向族铆,然后繼續(xù)看周圍吼和,找出最佳下一步應(yīng)該朝那個(gè)方向走,一直到山腳骑素。
梯度下降算法定義
- := 表示賦值
- α 是一個(gè)數(shù)字,被稱為學(xué)習(xí)速率刚夺,在梯度下降中献丑,它控制下降的步子的大小
- (?/?Θj)J(Θ0,Θ1) 是一個(gè)微分項(xiàng)
在梯度下降中侠姑,我們要更新Θ0创橄,Θ1,當(dāng)j=0 和 j=1 時(shí) 會產(chǎn)生更新莽红,所以你將更新J Θ0妥畏,Θ1邦邦,在這個(gè)表達(dá)式中,如果你要更新這個(gè)等式醉蚁,必須同時(shí)更新Θ0燃辖,Θ1。我們需要這樣更新网棍,Θ0:=Θ0-一些東西黔龟,Θ1:=Θ1-一些東西。
梯度下降更直觀的認(rèn)識
用一個(gè)簡單的例子滥玷,比如最小化的函數(shù)只有一個(gè)參數(shù)的情形氏身,所以 假如我們有一個(gè)代價(jià)函數(shù)J蟹腾,只有一個(gè)參數(shù)Θ1橘茉,Θ1是一個(gè)實(shí)數(shù)铜秆,所以可以畫出一維的曲線炕泳。試著去理解為什么梯度下降會在函數(shù)上起作用赴捞。
圖中橫軸為Θ的值勺美,縱軸為J的值泰涂,曲線是J(Θ1) 代價(jià)函數(shù)的曲線鸳君。
當(dāng)從小紅點(diǎn)開始出發(fā)進(jìn)行梯度下降倒得,計(jì)算J(Θ1)在小紅點(diǎn)處的導(dǎo)數(shù)項(xiàng)泻红,得出導(dǎo)數(shù)項(xiàng)數(shù)值小于0,故Θ1 = Θ1-學(xué)習(xí)速率乘一個(gè)負(fù)的導(dǎo)數(shù)值霞掺,也就是Θ1加上一個(gè)正數(shù)谊路,所以Θ1的值會向右移動,逐漸靠近最低點(diǎn)菩彬。
當(dāng)從小藍(lán)點(diǎn)開始出發(fā)進(jìn)行梯度下降缠劝,計(jì)算J(Θ1)在小藍(lán)點(diǎn)處的導(dǎo)數(shù)項(xiàng),得出導(dǎo)數(shù)值大于0骗灶,故Θ1 = Θ1-學(xué)習(xí)速率乘一個(gè)正的導(dǎo)數(shù)值惨恭,也就是Θ1減一個(gè)正數(shù),所以Θ1的值會向左移動耙旦,逐漸靠近最低點(diǎn)脱羡。
小紅點(diǎn)處的切線的斜率就是導(dǎo)數(shù)值,隨著小紅點(diǎn)逐漸收斂至最低點(diǎn)免都,切線斜率逐漸降低锉罐,移動的步子大小也會越來越小。
梯度下降和代價(jià)函數(shù)結(jié)合绕娘,以及推導(dǎo)
用梯度下降的方法脓规,求最小化平方誤差代價(jià)函數(shù)。
推倒過程
推倒結(jié)果
反復(fù)執(zhí)行括號里的式子险领,直到收斂到最小值侨舆,Θ0和Θ1不斷的更新秒紧。都是加上一個(gè)-α/m 乘以后面的求和項(xiàng)。所以這就是我們的線性回歸算法挨下。
重要概念
首先在解決這個(gè)代價(jià)函數(shù)最小化的時(shí)熔恢,有一個(gè)算法可以直接解出Θ0 和 Θ1的值,而不必借助迭代复颈,也就是梯度下降這一類绩聘,要求多次迭代的算法。這個(gè)算法可以直接求出Θ0 和 Θ1耗啦,也同時(shí)帶來的優(yōu)點(diǎn)和缺點(diǎn)凿菩。
好處之一是你不在需要設(shè)定學(xué)習(xí)速率,因此你可以更快的解決一些問題帜讲。
我們一直在只有一個(gè)特征的情況下學(xué)習(xí)衅谷,也就是用房子的大小來預(yù)測它的價(jià)格,也就是用一個(gè)變量x來預(yù)測一個(gè)變量y似将,但實(shí)際情況中可能會面對更多的特征作為變量获黔,比如房子的大小,臥室的數(shù)量在验,樓層數(shù)玷氏,房子年份,等等腋舌。利用這些特征來預(yù)測房屋價(jià)格盏触。想要描繪并可視化這些特性變量變的困難,如果繪制块饺,圖像已經(jīng)操作三維赞辩。
線性代數(shù)賦予了我們一套符號系統(tǒng)和操作來進(jìn)行,矩陣和向量的處理授艰。這里是一個(gè)矩陣
[2104 5 1 45]
X =[1416 3 2 40]
[1534 3 2 30]
[460]
Y =[232]
[172]
中括號連接起來(鍵盤打不出一個(gè)大括號)
第一列會房子大小辨嗽,第二列為臥室數(shù)量,第三列為樓層數(shù)淮腾,第四列為房子的年份糟需。Y
則對應(yīng)了房子售價(jià)。
這樣做的好處是將某個(gè)樣本大量的特征轉(zhuǎn)換為了矩陣中的一列谷朝,通過索引可以取道某個(gè)樣本的某個(gè)特征例如X23 = 30
歡迎關(guān)注我的公眾號