機(jī)器學(xué)習(xí)(2)——線性回歸

線性回歸

函數(shù)模型

??線性回歸函數(shù)想必大家在高中的學(xué)習(xí)中就已經(jīng)學(xué)習(xí)過(guò)了,這一篇文章中我們并不會(huì)很詳細(xì)的介紹。首先,如同下面這張散點(diǎn)圖:
??我們會(huì)怎么去用函數(shù)擬合?
??我們一眼就會(huì)發(fā)現(xiàn),用一條直線穿過(guò)數(shù)據(jù)會(huì)很好的擬合這些數(shù)據(jù),這些數(shù)據(jù)很均勻的分布在直線的兩側(cè)??吹竭@里我們就可以直接寫出我們線性函數(shù)的表達(dá)式了:
f(x,\omega)=\sum_{i=0}^{m}\omega_ix_i
??不過(guò)通常我們認(rèn)為x_0=1,所以這個(gè)式子展開之后就是:
f(x,\omega)=\omega_0+\omega_1x_1+...+\omega_ix_i
??在機(jī)器學(xué)習(xí)中,我們常常使用線性代數(shù)去描繪數(shù)據(jù),因此我們寫成下面這種形式
\omega=\begin{bmatrix}\omega_0\\\omega_1\\\vdots\\\omega_n \end{bmatrix} \qquad x= \begin{bmatrix}x_0\\x_1\\\vdots\\x_n \end{bmatrix} \qquad b= \begin{bmatrix}b_0\\b_1\\\vdots\\b_n \end{bmatrix}
??也就是說(shuō),將表達(dá)式寫成矩陣的形式,就成了:
f(x,\omega)=wx^T+b
??這只是最簡(jiǎn)單的一種線性函數(shù),還有一些廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò)的線性函數(shù)是一層一層的嵌套函數(shù),例如:
??f_1(x,\omega)=\alpha f(w_if(wx))+...
??目前我們并不去討論非線性的函數(shù)模型,對(duì)于非線性的函數(shù)模型,我們往往需要進(jìn)行正則化進(jìn)行調(diào)整,這里我會(huì)在后面進(jìn)行詳細(xì)的介紹。

代價(jià)函數(shù)

??代價(jià)函數(shù)又稱為損失函數(shù),在這里我們可以試著來(lái)推導(dǎo)一下。我們的代價(jià)函數(shù)主要就是用于衡量預(yù)測(cè)數(shù)據(jù)和真實(shí)數(shù)據(jù)之間的誤差。很容易的我們會(huì)想到直接用他們之間的差值作為衡量。
J(\omega)=\sum_{i=0}^{m}(y-f(x_i))
??不過(guò)這個(gè)函數(shù)存在一個(gè)問(wèn)題,就是y-f(x_i)的符號(hào)是不確定的,因此即使誤差很大,J(\omega)甚至可以為0,因此我們需要改進(jìn)這個(gè)函數(shù)。
??那么,加一個(gè)絕對(duì)值怎么樣呢?
J(\omega)=\sum_{i=0}^{m}\left|y-f(x_i)\right |
??這樣顯然我們的代價(jià)函數(shù)有了更好的性能,不過(guò)還是存在一些問(wèn)題,就是絕對(duì)值是無(wú)法求導(dǎo)的。那么我們會(huì)想,有什么方法既可以不影響函數(shù)的代數(shù)性質(zhì)又不會(huì)造成誤差的失誤呢?很明顯,二次函數(shù)是一個(gè)不錯(cuò)的想法。
J(\omega)=\sum_{i=0}^{m}(y-f(x_i))^2
??這個(gè)時(shí)候我們已經(jīng)完成了我們的函數(shù)設(shè)計(jì),不過(guò)還有一點(diǎn)點(diǎn)小問(wèn)題,就是j(\omega)有可能出現(xiàn)過(guò)大的情況,我們需要對(duì)它進(jìn)行求平均值,同時(shí),為了方便我們后續(xù)的求導(dǎo)計(jì)算,我們通常還會(huì)乘以一個(gè)參數(shù)\frac{1}{2},當(dāng)然你不做處理也不會(huì)有問(wèn)題。最終的函數(shù)解析式就成了:
J(\omega)=\frac{1}{2m}\sum_{i=0}^{m}(y-f(x_i))^2
??相信很多數(shù)學(xué)底子好一些的朋友,肯定發(fā)現(xiàn)了一件事,這不就是我們常常使用的方差的變形嗎?是的,這個(gè)函數(shù)我們稱為均方誤差函數(shù),你可以理解為廣義上的方差,我們記得方差是減去數(shù)據(jù)的平均值,這里也是類似的,因?yàn)槲覀兯玫臄M合函數(shù)就已經(jīng)充當(dāng)了平均值的作用。

極大似然估計(jì)

??這個(gè)玩意名字取得總是讓人覺(jué)得怪怪的,一眼看不出這是干嘛的。極大似然估計(jì)有點(diǎn)類似文言文的一種說(shuō)法,似然,也就是可能性的意思。極大似然估計(jì)也就是最大可能性的估計(jì)。
??構(gòu)造極大似然估計(jì)的條件很容易,也就是i.i.d條件,數(shù)據(jù)獨(dú)立同分布條件。我們給出一個(gè)概率函數(shù)P(y|x,\omega)。如何評(píng)判函數(shù)的好壞呢?我們知道,對(duì)于給定的數(shù)據(jù),概率達(dá)到最大值就是最好的,那么針對(duì)整個(gè)數(shù)據(jù)集來(lái)說(shuō),我們應(yīng)當(dāng)對(duì)概率函數(shù)進(jìn)行求積:
L(\omega)=\prod_{i=1}^{m}P(y|x,\omega)
??L(\omega)就是我們的似然函數(shù)了,而求出函數(shù)最大值所對(duì)應(yīng)的\omega也就是我們所討論的極大似然估計(jì)了。
??大部分情況下,我們不喜歡求連積,我們要想辦法將L(\omega)變成一個(gè)求和的函數(shù),這樣我們的計(jì)算會(huì)方便許多。很容易想到對(duì)數(shù)的性質(zhì)。我們對(duì)L(\omega)進(jìn)行求對(duì)數(shù),得到:
lnL(\omega)=\sum_{i=1}^mlnP(y|x,\omega)
??同樣的我們防止數(shù)據(jù)過(guò)大,對(duì)它求一個(gè)平均值,不過(guò)這里的平均值應(yīng)該是負(fù)平均值比較好,為什么?看一看對(duì)數(shù)函數(shù)的圖像,概率是衡在[0,1]之間,對(duì)應(yīng)的對(duì)數(shù)始終為負(fù)值,所以我們應(yīng)該用負(fù)數(shù)好。
lnL(\omega)=\frac{-1}{m}\sum_{i=1}^mlnP(y|x,\omega)
??對(duì)數(shù)函數(shù)也有缺點(diǎn),就是遇上0的時(shí)候,對(duì)數(shù)函數(shù)就顯得無(wú)能為力了,在一些分類問(wèn)題中,假設(shè)真實(shí)標(biāo)記是0,那么極大似然估計(jì)出的概率函數(shù)也應(yīng)該是0,或者是接近0,這樣就會(huì)導(dǎo)致對(duì)它求對(duì)數(shù)的時(shí)候數(shù)值會(huì)變得巨大。這里我們引入一個(gè)概念——。我們將在下一節(jié)信息論中進(jìn)行詳細(xì)的介紹。

我的掘金:WarrenRyan

我的簡(jiǎn)書:WarrenRyan

歡迎關(guān)注我的博客獲得第一時(shí)間更新 https://blog.tity.xyz

我的Github:StevenEco

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

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

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