版權(quán)聲明: 本文由LeftNotEasy所有,發(fā)布于http://leftnoteasy.cnblogs.com/。如果轉(zhuǎn)載,請注明出處,在未經(jīng)作者同意下將本文用于商業(yè)用途,將追究其法律責(zé)任。如果有問題,請聯(lián)系作者 wheeleast@gmail.com 前言: 距離上次發(fā)文章,也快有半個月的時間了,這半個月的時間里又在學(xué)習(xí)機器學(xué)習(xí)的道路上摸索著前進,積累了一點心得,以后會慢慢的寫寫這些心得。寫文章是促進自己對知識認識的一個好方法,看書的時候往往不是非常細,所以有些公式、知識點什么的就一帶而過,里面的一些具體意義就不容易理解了。而寫文章,特別是寫科普性的文章,需要對里面的具體意義弄明白,甚至還要能舉出更生動的例子,這是一個挑戰(zhàn)。為了寫文章,往往需要把之前自己認為看明白的內(nèi)容重新理解一下。 機器學(xué)習(xí)可不是一個完全的技術(shù)性的東西,之前和部門老大在outing的時候一直在聊這個問題,機器學(xué)習(xí)絕對不是一個一個孤立的算法堆砌起來的,想要像看《算法導(dǎo)論》這樣看機器學(xué)習(xí)是個不可取的方法,機器學(xué)習(xí)里面有幾個東西一直貫穿全書,比如說數(shù)據(jù)的分布、最大似然(以及求極值的幾個方法,不過這個比較數(shù)學(xué)了),偏差、方差的權(quán)衡,還有特征選擇,模型選擇,混合模型等等知識,這些知識像磚頭、水泥一樣構(gòu)成了機器學(xué)習(xí)里面的一個個的算法。想要真正學(xué)好這些算法,一定要靜下心來將這些基礎(chǔ)知識弄清楚,才能夠真正理解、實現(xiàn)好各種機器學(xué)習(xí)算法。 今天的主題是線性回歸,也會提一下偏差、方差的均衡這個主題。 線性回歸定義: 在上一個主題中,也是一個與回歸相關(guān)的,不過上一節(jié)更側(cè)重于梯度這個概念,這一節(jié)更側(cè)重于回歸本身與偏差和方差的概念。 回歸最簡單的定義是,給出一個點集D,用一個函數(shù)去擬合這個點集,并且使得點集與擬合函數(shù)間的誤差最小。 上圖所示,給出一個點集(x,y), 需要用一個函數(shù)去擬合這個點集,藍色的點是點集中的點,而紅色的曲線是函數(shù)的曲線,第一張圖是一個最簡單的模型,對應(yīng)的函數(shù)為y = f(x) = ax + b,這個就是一個線性函數(shù), 第二張圖是二次曲線,對應(yīng)的函數(shù)是y = f(x) = ax^2 + b。 第三張圖我也不知道是什么函數(shù),瞎畫的。 第四張圖可以認為是一個N次曲線,N = M - 1,M是點集中點的個數(shù),有一個定理是,對于給定的M個點,我們可以用一個M - 1次的函數(shù)去完美的經(jīng)過這個點集。 真正的線性回歸,不僅會考慮使得曲線與給定點集的擬合程度最好,還會考慮模型最簡單,這個話題我們將在本章后面的偏差、方差的權(quán)衡中深入的說,另外這個話題還可以參考我之前的一篇文章:貝葉斯、概率分布與機器學(xué)習(xí),里面對模型復(fù)雜度的問題也進行了一些討論。 線性回歸(linear regression),并非是指的線性函數(shù),也就是 x0,x1…表示一個點不同的維度,比如說上一節(jié)中提到的,房子的價錢是由包括面積、房間的個數(shù)、房屋的朝向等等因素去決定的。而是用廣義的線性函數(shù): wj是系數(shù),w就是這個系數(shù)組成的向量,它影響著不同維度的Φj(x)在回歸函數(shù)中的影響度,比如說對于房屋的售價來說,房間朝向的w一定比房間面積的w更小。Φ(x)是可以換成不同的函數(shù),不一定要求Φ(x)=x,這樣的模型我們認為是廣義線性模型。
最小二乘法與最大似然: 這個話題在此處有一個很詳細的討論,我這里主要談?wù)勥@個問題的理解。最小二乘法是線性回歸中一個最簡單的方法,它的推導(dǎo)有一個假設(shè),就是回歸函數(shù)的估計值與真實值間的誤差假設(shè)是一個高斯分布。這個用公式來表示是下面的樣子: ,y(x,w)就是給定了w系數(shù)向量下的回歸函數(shù)的估計值,而t就是真實值了,ε表示誤差。我們可以接下來推出下面的式子: 這是一個簡單的條件概率表達式,表示在給定了x,w,β的情況下,得到真實值t的概率,由于ε服從高斯分布,則從估計值到真實值間的概率也是高斯分布的,看起來像下面的樣子: 貝葉斯、概率分布與機器學(xué)習(xí)這篇文章中對分布影響結(jié)果這個話題討論比較多,可以回過頭去看看,由于最小二乘法有這樣一個假設(shè),則會導(dǎo)致,如果我們給出的估計函數(shù)y(x,w)與真實值t不是高斯分布的,甚至是一個差距很大的分布,那么算出來的模型一定是不正確的,當(dāng)給定一個新的點x’想要求出一個估計值y’,與真實值t’可能就非常的遠了。 概率分布是一個可愛又可恨的東西,當(dāng)我們能夠準(zhǔn)確的預(yù)知某些數(shù)據(jù)的分布時,那我們可以做出一個非常精確的模型去預(yù)測它,但是在大多數(shù)真實的應(yīng)用場景中,數(shù)據(jù)的分布是不可知的,我們也很難去用一個分布、甚至多個分布的混合去表示數(shù)據(jù)的真實分布,比如說給定了1億篇網(wǎng)頁,希望用一個現(xiàn)有的分布(比如說混合高斯分布)去匹配里面詞頻的分布,是不可能的。在這種情況下,我們只能得到詞的出現(xiàn)概率,比如p(的)的概率是0.5,也就是一個網(wǎng)頁有1/2的概率出現(xiàn)“的”。如果一個算法,是對里面的分布進行了某些假設(shè),那么可能這個算法在真實的應(yīng)用中就會表現(xiàn)欠佳。最小二乘法對于類似的一個復(fù)雜問題,就很無力了
偏差、方差的權(quán)衡(trade-off): 偏差(bias)和方差(variance)是統(tǒng)計學(xué)的概念,剛進公司的時候,看到每個人的嘴里隨時蹦出這兩個詞,覺得很可怕。首先得明確的,方差是多個模型間的比較,而非對一個模型而言的,對于單獨的一個模型,比如說: 這樣的一個給定了具體系數(shù)的估計函數(shù),是不能說f(x)的方差是多少。而偏差可以是單個數(shù)據(jù)集中的,也可以是多個數(shù)據(jù)集中的,這個得看具體的定義。 方差和偏差一般來說,是從同一個數(shù)據(jù)集中,用科學(xué)的采樣方法得到幾個不同的子數(shù)據(jù)集,用這些子數(shù)據(jù)集得到的模型,就可以談他們的方差和偏差的情況了。方差和偏差的變化一般是和模型的復(fù)雜程度成正比的,就像本文一開始那四張小圖片一樣,當(dāng)我們一味的追求模型精確匹配,則可能會導(dǎo)致同一組數(shù)據(jù)訓(xùn)練出不同的模型,它們之間的差異非常大。這就叫做方差,不過他們的偏差就很小了,如下圖所示: 上圖的藍色和綠色的點是表示一個數(shù)據(jù)集中采樣得到的不同的子數(shù)據(jù)集,我們有兩個N次的曲線去擬合這些點集,則可以得到兩條曲線(藍色和深綠色),它們的差異就很大,但是他們本是由同一個數(shù)據(jù)集生成的,這個就是模型復(fù)雜造成的方差大。模型越復(fù)雜,偏差就越小,而模型越簡單,偏差就越大,方差和偏差是按下面的方式進行變化的: 當(dāng)方差和偏差加起來最優(yōu)的點,就是我們最佳的模型復(fù)雜度。 用一個很通俗的例子來說,現(xiàn)在咱們國家一味的追求GDP,GDP就像是模型的偏差,國家希望現(xiàn)有的GDP和目標(biāo)的GDP差異盡量的小,但是其中使用了很多復(fù)雜的手段,比如說倒賣土地、強拆等等,這個增加了模型的復(fù)雜度,也會使得偏差(居民的收入分配)變大,窮的人越窮(被趕出城市的人與進入城市買不起房的人),富的人越富(倒賣土地的人與賣房子的人)。其實本來模型不需要這么復(fù)雜,能夠讓居民的收入分配與國家的發(fā)展取得一個平衡的模型是最好的模型。 最后還是用數(shù)學(xué)的語言來描述一下偏差和方差: E(L)是損失函數(shù),h(x)表示真實值的平均,第一部分是與y(模型的估計函數(shù))有關(guān)的,這個部分是由于我們選擇不同的估計函數(shù)(模型)帶來的差異,而第二部分是與y無關(guān)的,這個部分可以認為是模型的固有噪聲。 對于上面公式的第一部分,我們可以化成下面的形式: 這個部分在PRML的1.5.5推導(dǎo),前一半是表示偏差,而后一半表示方差,我們可以得出:損失函數(shù)=偏差^2+方差+固有噪音。 下圖也來自PRML: 這是一個曲線擬合的問題,對同分布的不同的數(shù)據(jù)集進行了多次的曲線擬合,左邊表示方差,右邊表示偏差,綠色是真實值函數(shù)。ln lambda表示模型的復(fù)雜程度,這個值越小,表示模型的復(fù)雜程度越高,在第一行,大家的復(fù)雜度都很低(每個人都很窮)的時候,方差是很小的,但是偏差同樣很?。▏乙埠芨F),但是到了最后一幅圖,我們可以得到,每個人的復(fù)雜程度都很高的情況下,不同的函數(shù)就有著天壤之別了(貧富差異大),但是偏差就很小了(國家很富有)。 預(yù)告: 接下來準(zhǔn)備談?wù)劸€性分類的一些問題,敬請關(guān)注:) |
|