機(jī)器學(xué)習(xí)中的數(shù)學(xué)(2)-線性回歸,偏差、方差權(quán)衡
線性回歸定義:
在上一個主題中,也是一個與回歸相關(guān)的,不過上一節(jié)更側(cè)重于梯度這個概念,這一節(jié)更側(cè)重于回歸本身與偏差和方差的概念。
回歸最簡單的定義是,給出一個點集D,用一個函數(shù)去擬合這個點集,并且使得點集與擬合函數(shù)間的誤差最小。
上圖所示,給出一個點集(x,y), 需要用一個函數(shù)去擬合這個點集,藍(lán)色的點是點集中的點,而紅色的曲線是函數(shù)的曲線,***張圖是一個最簡單的模型,對應(yīng)的函數(shù)為y = f(x) = ax + b,這個就是一個線性函數(shù),
第二張圖是二次曲線,對應(yīng)的函數(shù)是y = f(x) = ax^2 + b。
第三張圖我也不知道是什么函數(shù),瞎畫的。
第四張圖可以認(rèn)為是一個N次曲線,N = M - 1,M是點集中點的個數(shù),有一個定理是,對于給定的M個點,我們可以用一個M - 1次的函數(shù)去***的經(jīng)過這個點集。
真正的線性回歸,不僅會考慮使得曲線與給定點集的擬合程度***,還會考慮模型最簡單,這個話題我們將在本章后面的偏差、方差的權(quán)衡中深入的說,另外這個話題還可以參考我之前的一篇文章:貝葉斯、概率分布與機(jī)器學(xué)習(xí),里面對模型復(fù)雜度的問題也進(jìn)行了一些討論。
線性回歸(linear regression),并非是指的線性函數(shù),也就是
x0,x1…表示一個點不同的維度,比如說上一節(jié)中提到的,房子的價錢是由包括面積、房間的個數(shù)、房屋的朝向等等因素去決定的。而是用廣義的線性函數(shù):
wj是系數(shù),w就是這個系數(shù)組成的向量,它影響著不同維度的Φj(x)在回歸函數(shù)中的影響度,比如說對于房屋的售價來說,房間朝向的w一定比房間面積的w更小。Φ(x)是可以換成不同的函數(shù),不一定要求Φ(x)=x,這樣的模型我們認(rèn)為是廣義線性模型。
最小二乘法與***似然:
這個話題在此處有一個很詳細(xì)的討論,我這里主要談?wù)勥@個問題的理解。最小二乘法是線性回歸中一個最簡單的方法,它的推導(dǎo)有一個假設(shè),就是回歸函數(shù)的估計值與真實值間的誤差假設(shè)是一個高斯分布。這個用公式來表示是下面的樣子: ,y(x,w)就是給定了w系數(shù)向量下的回歸函數(shù)的估計值,而t就是真實值了,ε表示誤差。我們可以接下來推出下面的式子:
這是一個簡單的條件概率表達(dá)式,表示在給定了x,w,β的情況下,得到真實值t的概率,由于ε服從高斯分布,則從估計值到真實值間的概率也是高斯分布的,看起來像下面的樣子:
貝葉斯、概率分布與機(jī)器學(xué)習(xí)這篇文章中對分布影響結(jié)果這個話題討論比較多,可以回過頭去看看,由于最小二乘法有這樣一個假設(shè),則會導(dǎo)致,如果我們給出的估計函數(shù)y(x,w)與真實值t不是高斯分布的,甚至是一個差距很大的分布,那么算出來的模型一定是不正確的,當(dāng)給定一個新的點x’想要求出一個估計值y’,與真實值t’可能就非常的遠(yuǎn)了。
概率分布是一個可愛又可恨的東西,當(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)“的”。如果一個算法,是對里面的分布進(jìn)行了某些假設(shè),那么可能這個算法在真實的應(yīng)用中就會表現(xiàn)欠佳。最小二乘法對于類似的一個復(fù)雜問題,就很無力了
偏差、方差的權(quán)衡(trade-off):
偏差(bias)和方差(variance)是統(tǒng)計學(xué)的概念,剛進(jìn)公司的時候,看到每個人的嘴里隨時蹦出這兩個詞,覺得很可怕。首先得明確的,方差是多個模型間的比較,而非對一個模型而言的,對于單獨的一個模型,比如說:
這樣的一個給定了具體系數(shù)的估計函數(shù),是不能說f(x)的方差是多少。而偏差可以是單個數(shù)據(jù)集中的,也可以是多個數(shù)據(jù)集中的,這個得看具體的定義。
方差和偏差一般來說,是從同一個數(shù)據(jù)集中,用科學(xué)的采樣方法得到幾個不同的子數(shù)據(jù)集,用這些子數(shù)據(jù)集得到的模型,就可以談他們的方差和偏差的情況了。方差和偏差的變化一般是和模型的復(fù)雜程度成正比的,就像本文一開始那四張小圖片一樣,當(dāng)我們一味的追求模型精確匹配,則可能會導(dǎo)致同一組數(shù)據(jù)訓(xùn)練出不同的模型,它們之間的差異非常大。這就叫做方差,不過他們的偏差就很小了,如下圖所示:
上圖的藍(lán)色和綠色的點是表示一個數(shù)據(jù)集中采樣得到的不同的子數(shù)據(jù)集,我們有兩個N次的曲線去擬合這些點集,則可以得到兩條曲線(藍(lán)色和深綠色),它們的差異就很大,但是他們本是由同一個數(shù)據(jù)集生成的,這個就是模型復(fù)雜造成的方差大。模型越復(fù)雜,偏差就越小,而模型越簡單,偏差就越大,方差和偏差是按下面的方式進(jìn)行變化的:
當(dāng)方差和偏差加起來***的點,就是我們***的模型復(fù)雜度。
用一個很通俗的例子來說,現(xiàn)在咱們國家一味的追求GDP,GDP就像是模型的偏差,國家希望現(xiàn)有的GDP和目標(biāo)的GDP差異盡量的小,但是其中使用了很多復(fù)雜的手段,比如說倒賣土地、強(qiáng)拆等等,這個增加了模型的復(fù)雜度,也會使得偏差(居民的收入分配)變大,窮的人越窮(被趕出城市的人與進(jìn)入城市買不起房的人),富的人越富(倒賣土地的人與賣房子的人)。其實本來模型不需要這么復(fù)雜,能夠讓居民的收入分配與國家的發(fā)展取得一個平衡的模型是***的模型。
***還是用數(shù)學(xué)的語言來描述一下偏差和方差:
E(L)是損失函數(shù),h(x)表示真實值的平均,***部分是與y(模型的估計函數(shù))有關(guān)的,這個部分是由于我們選擇不同的估計函數(shù)(模型)帶來的差異,而第二部分是與y無關(guān)的,這個部分可以認(rèn)為是模型的固有噪聲。
對于上面公式的***部分,我們可以化成下面的形式:
這個部分在PRML的1.5.5推導(dǎo),前一半是表示偏差,而后一半表示方差,我們可以得出:損失函數(shù)=偏差^2+方差+固有噪音。
下圖也來自PRML:
這是一個曲線擬合的問題,對同分布的不同的數(shù)據(jù)集進(jìn)行了多次的曲線擬合,左邊表示方差,右邊表示偏差,綠色是真實值函數(shù)。ln lambda表示模型的復(fù)雜程度,這個值越小,表示模型的復(fù)雜程度越高,在***行,大家的復(fù)雜度都很低(每個人都很窮)的時候,方差是很小的,但是偏差同樣很小(國家也很窮),但是到了***一幅圖,我們可以得到,每個人的復(fù)雜程度都很高的情況下,不同的函數(shù)就有著天壤之別了(貧富差異大),但是偏差就很小了(國家很富有)。
原文鏈接:http://www.cnblogs.com/LeftNotEasy/archive/2010/12/19/mathmatic_in_machine_learning_2_regression_and_bias_variance_trade_off.html