根據(jù)之前的理論,機(jī)器學(xué)習(xí)就是在找合適的函數(shù)公式。例如:
· 股票預(yù)測(cè)問(wèn)題:輸入-過(guò)去十年某股票的價(jià)格,輸出-明天該股票的價(jià)格
· 無(wú)人駕駛問(wèn)題:輸入-傳感器收集的各種信息,輸出-方向盤(pán)的角度
· 推薦系統(tǒng)問(wèn)題:輸入-用戶已經(jīng)購(gòu)買(mǎi)的商品,輸出-購(gòu)買(mǎi)該商品的可能性
1. 案例問(wèn)題
案例背景:預(yù)測(cè)進(jìn)化后精靈寶可夢(mèng)的CP(combat power)值,如果可以預(yù)測(cè)到該寶可夢(mèng)進(jìn)化后的cp值,就可以選擇是否進(jìn)化它。

2. 回歸建模過(guò)程:
step 1: Model
機(jī)器學(xué)習(xí)的第一步,就是找到一組我們想要的函數(shù)表達(dá)式的組合,由前的分析可知,我們這里選擇的是一組線性表達(dá)式。

在上式中,X代表的是輸入的自變量,比如寶可夢(mèng)的身高、體重等等,我們叫特征(feature);w是權(quán)重(weight),b代表偏差(bias)也就是截距項(xiàng)。
step 2: Goodness of Function
因?yàn)槭怯斜O(jiān)督的學(xué)習(xí),所以要收集訓(xùn)練集。
在收集好訓(xùn)練集后,我們需要定義另外一個(gè)函數(shù)——損失函數(shù)(Loss Function),這個(gè)函數(shù)的作用是告訴我們,我們目前所選擇的模型等到的預(yù)測(cè)值,與其所對(duì)應(yīng)的真實(shí)值的偏差是多少,然后從中找出對(duì)應(yīng)的損失函數(shù)值最小的,函數(shù)表達(dá)式,通過(guò)這個(gè)過(guò)程,我們可以從之前的一組表達(dá)式中,找到我們想要的準(zhǔn)確的最高的表達(dá)式。

step 3: Best Function
通過(guò)之前的過(guò)程,我們已經(jīng)確定了最小的損失函數(shù),所對(duì)應(yīng)的參數(shù)w、b的值

通過(guò)之前的分析,我們已經(jīng)知道了如何找到想要表達(dá)式的思路,但是如果通過(guò)窮舉法來(lái)找到W、b效率太低,當(dāng)計(jì)算量過(guò)大時(shí)就很不現(xiàn)實(shí)。由于我們已經(jīng)得到了如上的表達(dá)式,就可以考慮如何用數(shù)學(xué)工具來(lái)求解,這里就使用了一個(gè)很有用的算法——梯度下降(Gradient Descent)。

梯度下降的具體操作:先隨機(jī)選取一個(gè)點(diǎn)w0,然后在改點(diǎn)求L的微分,如果小于0就向右移動(dòng),大于0則向左,直到微分值為0,這樣會(huì)找到一個(gè)局部最優(yōu)解。在這個(gè)過(guò)程中由兩個(gè)問(wèn)題:
· 每次迭代,具體移動(dòng)多遠(yuǎn)的距離呢?這取決于學(xué)習(xí)率(learning rate),也就是上式中的η值,具體取多少,在下節(jié)中會(huì)介紹。
· 由于隨機(jī)選取的w0,所以找到的局部最優(yōu)解,不一定是全局最優(yōu)解,但是該問(wèn)題在線性問(wèn)題中不存在,由于為線性函數(shù),所以只有一個(gè)最優(yōu)解。

那由于在本次案例中,由連個(gè)參數(shù),所以我們需要同時(shí)考慮w和b,其實(shí)就是一元到多元的推廣,在這里也介紹了“梯度”的具體含義:所求參數(shù)值的偏微分。

將求出的參數(shù)值帶入表達(dá)式,并輸入測(cè)試集數(shù)據(jù)進(jìn)行驗(yàn)證,發(fā)現(xiàn)損失函數(shù)為35,如何優(yōu)化我們的函數(shù)呢?根據(jù)散點(diǎn)圖,考慮引入一個(gè)二次項(xiàng)。

加入二次項(xiàng)后,我們繼續(xù)用梯度下降進(jìn)行求解,發(fā)現(xiàn)誤差值明顯變小了,那如果加入三次項(xiàng)會(huì)不會(huì)更精確呢?結(jié)果顯示有變化了一點(diǎn)。

我們繼續(xù)考慮加入四次項(xiàng):

加入四次項(xiàng)后,在訓(xùn)練集的效果更好了,我們的模型更的擬合了訓(xùn)練集,但是在測(cè)試集的表現(xiàn)缺變差了,那這種情況就叫做過(guò)擬合這里就涉及到模型的泛化能力,也說(shuō)明不是一味的準(zhǔn)確訓(xùn)練集的準(zhǔn)確率。所以應(yīng)該如何選擇合適的模型呢?
step 4: Redesign the Model
由于不同的寶可夢(mèng),進(jìn)化的CP值有著顯著的差異,所以我們考慮加入一個(gè)示性函數(shù),對(duì)不同的寶可夢(mèng)建立不同的方程。

但是這里只考慮了過(guò)去的cp值這一個(gè)特征,根據(jù)之前的研究,我們還可以加入其他的自變量

如上,是一個(gè)很復(fù)雜的模型,既考慮了不同的物種,也考慮了不同的特征,但是很現(xiàn)在這個(gè)模型過(guò)擬合了。
step 5: Regularization
如何解決過(guò)擬合問(wèn)題呢,需要加入一個(gè)正則項(xiàng),來(lái)約束加入的參數(shù)項(xiàng)。

在之前的損失函數(shù)的基礎(chǔ)上,加入一個(gè)正則項(xiàng),會(huì)使得誤差變小的同時(shí),模型不會(huì)過(guò)于復(fù)雜從而導(dǎo)致過(guò)擬合的情況。加入正則項(xiàng)也會(huì)是的函數(shù)更為平滑,平滑的函數(shù)對(duì)于異常值,不會(huì)過(guò)于敏感從而出現(xiàn)過(guò)擬合。

這里我們選擇不同的λ的值,來(lái)看在訓(xùn)練集和測(cè)試集的誤差變化,發(fā)現(xiàn)我們需要使得模型平滑,以防過(guò)擬合,但是過(guò)于平滑的函數(shù)也會(huì)使得誤差變大。
總結(jié):
建立線性模型后,需要用梯度下降來(lái)找到最優(yōu)解的參數(shù)值(b、w)
在確定模型的時(shí)候,需要做到準(zhǔn)確度和復(fù)雜度的平衡,越復(fù)雜的模型可能會(huì)在訓(xùn)練集上有很好的擬合,但是會(huì)出現(xiàn)過(guò)擬合的情況,而導(dǎo)致在測(cè)試集誤差很大,所以加入正則項(xiàng)來(lái)使得函數(shù)變得平滑,所以最后函數(shù)需要多平滑,也就是λ的值,就是我們需要不斷調(diào)整的參數(shù)。
