?? 本文地址為:http://www.cnblogs.com/kemaswill/,作者聯(lián)系方式為kemaswill@163.com,轉(zhuǎn)載請注明出處。
? 機(jī)器學(xué)習(xí)的目標(biāo)是學(xué)得一個(gè)泛化能力比較好的模型。所謂泛化能力,是指根據(jù)訓(xùn)練數(shù)據(jù)訓(xùn)練出來的模型在新的數(shù)據(jù)上的性能。這就牽扯到機(jī)器學(xué)習(xí)中兩個(gè)非常重要的概念:欠擬合和過擬合。如果一個(gè)模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)非常好,但是在新數(shù)據(jù)集上性能很差,就是過擬合,反之,如果在訓(xùn)練數(shù)據(jù)集和新數(shù)據(jù)集上表現(xiàn)都很差,就是欠擬合,如下圖所示
? 其中藍(lán)叉點(diǎn)表示訓(xùn)練數(shù)據(jù),藍(lán)色的線表示學(xué)到的模型。左邊學(xué)到的模型不能很好的描述訓(xùn)練數(shù)據(jù),模型過于簡單,是欠擬合(Under-fitting)。中間的模型可以比較好的描述訓(xùn)練數(shù)據(jù)。右邊的模型過度的擬合了訓(xùn)練數(shù)據(jù)(所謂過度,是指訓(xùn)練數(shù)據(jù)集其實(shí)是包含一定的噪聲的,如果完全擬合訓(xùn)練數(shù)據(jù),會把這些隨機(jī)噪聲也擬合進(jìn)去),導(dǎo)致模型過于復(fù)雜,很可能在新數(shù)據(jù)集上表現(xiàn)極差,稱為過擬合(Over-fitting)。
? 偏置-方差分解(Bias-Variance Decomposition)是統(tǒng)計(jì)學(xué)派看待模型復(fù)雜度的觀點(diǎn)。具體如下:
? 假設(shè)我們有K個(gè)數(shù)據(jù)集,每個(gè)數(shù)據(jù)集都是從一個(gè)分布p(t,x)中獨(dú)立的抽取出來的(t代表要預(yù)測的變量,x代表特征變量)。對于每個(gè)數(shù)據(jù)集D,我們都可以在其基礎(chǔ)上根據(jù)學(xué)習(xí)算法來訓(xùn)練出一個(gè)模型y(x;D)來。在不同的數(shù)據(jù)集上進(jìn)行訓(xùn)練可以得到不同的模型。學(xué)習(xí)算法的性能是根據(jù)在這K個(gè)數(shù)據(jù)集上訓(xùn)練得到的K個(gè)模型的平均性能來衡量的,亦即:
? 其中的h(x)代表生成數(shù)據(jù)的真實(shí)函數(shù),亦即t=h(x).
? 我們可以看到,給定學(xué)習(xí)算法在多個(gè)數(shù)據(jù)集上學(xué)到的模型的和真實(shí)函數(shù)h(x)之間的誤差,是由偏置(Bias)和方差(Variance)兩部分構(gòu)成的。其中偏置描述的是學(xué)到的多個(gè)模型和真實(shí)的函數(shù)之間的平均誤差,而方差描述的是學(xué)到的某個(gè)模型和多個(gè)模型的平均之間的平均誤差(有點(diǎn)繞,PRML上的原話是variance measures the extent to which the solutions for individual data sets vary around their average)。
? 所以在進(jìn)行學(xué)習(xí)時(shí),就會存在偏置和方差之間的平衡。靈活的模型(次數(shù)比較高的多項(xiàng)式)會有比較低的偏置和比較高的方差,而比較嚴(yán)格的模型(比如一次線性回歸)就會得到比較高的偏置和比較低的方差。下圖形象的說明了以上兩種情況:
? 用于訓(xùn)練的是100個(gè)數(shù)據(jù)集,每個(gè)數(shù)據(jù)集包含25個(gè)由h(x)=sin(2πx)[右圖中的綠線]隨機(jī)生成的點(diǎn)的。 參數(shù) λ控制模型的靈活性(復(fù)雜度), λ越大,模型越簡單(嚴(yán)格),反之越復(fù)雜(靈活)。我們生成多個(gè)模型(左圖中的紅線),并區(qū)多個(gè)模型的平均值(右圖中的紅線)。我們可以看到,當(dāng) λ較大時(shí)(最上面的兩個(gè)圖),平均模型比較簡單(最上面的右圖),不能很好的擬合真實(shí)函數(shù)h(x),亦即偏差較大,但是多個(gè)模型之間比較相似,差距不大,方差較小(最上面的左圖)。當(dāng) λ較小時(shí)(最下面的兩個(gè)圖),平均模型能夠非常好的擬合真實(shí)函數(shù)h(x),亦即偏差較小(最下面的右圖),但是多個(gè)模型之間差距很大,方差比較大(最下面的左圖)。
? 使用Bagging方法可以有效地降低方差。Bagging是一種再抽樣方法(resampling),對訓(xùn)練數(shù)據(jù)進(jìn)行有放回的抽樣K次,生成K份新的訓(xùn)練數(shù)據(jù),在這K個(gè)新的訓(xùn)練數(shù)據(jù)上訓(xùn)練得到K個(gè)模型,然后使用K個(gè)模型的平均來作為新的模型。 隨機(jī)森林 (Random Forest)是一種基于Bagging的強(qiáng)大的算法。
? 造成偏置和方差的原因除了學(xué)習(xí)方法的不同和參數(shù)的不同(比如 λ )之外,數(shù)據(jù)集本身也會對其造成影響。如果訓(xùn)練數(shù)據(jù)集和新數(shù)據(jù)集的分布是不同的,會增大偏置。如果訓(xùn)練數(shù)據(jù)集過少,會增大方差。
? 偏置-方差分解是統(tǒng)計(jì)學(xué)派解釋模型復(fù)雜度的觀點(diǎn),但是其實(shí)用價(jià)值不大(Bagging也許是一個(gè)例外吧~),因?yàn)槠?方差分解是基于多個(gè)數(shù)據(jù)集的,而實(shí)際中只會有一個(gè)訓(xùn)練數(shù)據(jù)集,將這個(gè)數(shù)據(jù)集作為一個(gè)整體進(jìn)行訓(xùn)練會比將其劃分成多個(gè)固定大小的數(shù)據(jù)集進(jìn)行訓(xùn)練再取平均的效果要好。
?
? 參考文獻(xiàn)
? [1]. Bishop. PRML(Pattern Recognization and Machine Learning). p11-16
? [2]. Understanding the Bias-Variance Decomposition.
? [3]. Andrew NG. CS229 Lecture Note1: Supervised Learning, Discrimitive Algorithms
? [4]. 機(jī)器學(xué)習(xí)-Random Forest算法簡介
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
