Andrew Ng機(jī)器學(xué)習(xí)課程筆記

第一周

1.單變量線性回歸(Linear Regression with One Variable)

1.1模型表示

單變量線性回歸

單變量線性回歸,這樣子看上去可能不太熟悉,但如果改成y=kx+b,這樣看上去是不是很熟悉。沒錯,這就是我們從初中(還是小學(xué),我忘了,哈哈)就開始學(xué)的一元一次函數(shù),而我們要求的就是斜率k和截距b。

1.2代價函數(shù)(Cost Function)

代價函數(shù)就是為了就是找到目的函數(shù)的最優(yōu)解。
因為在一個訓(xùn)練集中,有無數(shù)個模型(一元一次函數(shù)),我們需要找到最擬合這個訓(xùn)練集的一個函數(shù),所以就引入了代價函數(shù),用來找到那個最好的模型。

代價函數(shù)

上述是平方誤差代價函數(shù),這也是常用到的代價函數(shù),它通過目的函數(shù)跟各個實際值的誤差平方建立新的函數(shù)。為了使這個值不受個別極端數(shù)據(jù)影響而產(chǎn)生巨大波動,采用類似方差再取二分之一的方式來減小個別數(shù)據(jù)的影響。
我們選擇的參數(shù)(θ1和θ0)決定了我們得到的直線相對于我們的訓(xùn)練集的準(zhǔn)確程度,模型所預(yù)測的值與訓(xùn)練集中實際值之間的差距(下圖藍(lán)線)就是建模誤差。

我們的目標(biāo)便是選擇出可以使得建模誤差的平方和能夠最小的模型參數(shù)。
根據(jù)以上公式多次計算可得到代價函數(shù)的圖像

可以看到該代價函數(shù)的確有最小值,這里恰好是橫坐標(biāo)為1的時候。

如果有更多參數(shù),就會更為復(fù)雜,兩個參數(shù)的時候就已經(jīng)是三維圖像了:

1.3梯度下降(Gradient Descent)

梯度下降是一個用來求函數(shù)最小值的算法,我們將使用梯度下降算法來求出代價函數(shù)J(θ0,θ1) 的最小值。
個人理解,代價函數(shù)是分析模型與實際訓(xùn)練集之間的誤差,而梯度下降算法的作用,就是找出那個誤差最小的代價函數(shù)。

首先來看看梯度下降的一個直觀的解釋。比如我們在一座大山上的某處位置,由于我們不知道怎么下山,于是決定走一步算一步,也就是在每走到一個位置的時候,求解當(dāng)前位置的梯度,沿著梯度的負(fù)方向,也就是當(dāng)前最陡峭的位置向下走一步,然后繼續(xù)求解當(dāng)前位置梯度,向這一步所在位置沿著最陡峭最易下山的位置走一步。這樣一步步的走下去,一直走到覺得我們已經(jīng)到了山腳。當(dāng)然這樣走下去,有可能我們不能走到山腳,而是到了某一個局部的山峰低處。
從上面的解釋可以看出,梯度下降不一定能夠找到全局的最優(yōu)解,有可能是一個局部最優(yōu)解。當(dāng)然,如果損失函數(shù)是凸函數(shù),梯度下降法得到的解就一定是全局最優(yōu)解。

批量梯度下降(batch gradient descent)算法的公式為:

其中?是學(xué)習(xí)率,它決定了我們沿著能讓代價函數(shù)下降程度最大的方向邁出的步子有多大。
注意:?不能太小也不能太大。太小的話,下降速度會很慢;太大的話,會導(dǎo)致無法收斂,甚至發(fā)散。
除了有批量梯度下降,還有隨機(jī)梯度下降和小批量梯度下降。
區(qū)別
批量梯度下降:在更新參數(shù)時使用所有的樣本來進(jìn)行更新。
隨機(jī)梯度下降:僅僅選取一個樣本來更新。
小批量梯度下降:結(jié)合了兩者的優(yōu)點,對于m個樣本,我們采用x個樣本來迭代。
具體的可以參考博客。
練習(xí)題的代碼可以參考GitHub。
課程的視頻可以在網(wǎng)易云看。
順便分享一個我覺得對機(jī)器學(xué)習(xí)有用的網(wǎng)站,嘻嘻嘻:http://www.apachecn.org/classification/


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容