【機器學習基礎】混合和裝袋

融合模型(Aggregation Model)

如果我們已經得到了一些特征或者假設,它們和我們做機器學習的目標有若干的一致性的話,我們可以將這些假設綜合起來,讓預測效果變得更好,這樣的模型被稱為融合模型。
融合模型是通過混合(mix)和組合(combine)一些假設的方式,得到更好的預測結果。
下面列舉了四種不同的混合組合方式,并給出了數學表示形式:

  1. 當有多個假設時,我們選擇檢驗誤差最小的假設作為我們最信任的目標函數:


  1. 我們現在有多個假設,我們可以給每個假設一個投票的權利,綜合所有假設的投票結果:


  2. 現在有多個假設,我們可以根據對于不同假設的信任程度,給予不同假設不同的票數,這種情況綜合了前兩種情況:


  3. 如果可以給每個假設指定一個函數作為系數,這個函數說明了在不同的條件下,票數的情況:


舉例

如果現在有一些比較弱的假設(如下圖中,只能進行橫軸和縱軸的分類平面),如果我們能將這些弱的分類器組合起來,就可以把數據有效的分隔開,得到一個強的分類器(弱分類器的組合)。


融合模型使得模型的能力更加強大,通過組合弱分類器的形式,類似之前介紹的特征轉換的能力;而通過組合和混合,得到了一個泛化能力更強的假設,又類似之前介紹的正則化的作用。所以,融合模型將特征轉換和正則化結合起來,一個合理的融合模型,從理論上是可以得到一個很好的假設的。

Blending

用于分類問題的Uniform Blending

這里像上面描述的那樣,通過每個假設投票的結果,得到對于每個數據的預測。這個投票的結果實際上反應了少數服從多數的原則,通過多數意見修正少數的意見,少數的意見可能是有一些錯誤。
最終,通過民主投票的機制得到一個更加復雜的分類邊界。


用于回歸問題的Uniform Blending


在回歸問題中,最終的假設其實是一系列假設的平均。
這里的大概意思是,對于同樣的待預測數據x,有些假設低估了實際的目標,gt(x) < f(x);而有些假設高估了實際的目標,gt(x) > f(x)。這樣平均下來的結果,可能有低估有高估,就減少了誤差的結果,平均下來得到一個更穩定、更準確的估計方式。

Uniform Blending的理論分析

我們這里分析一下任意一個gt(x)與目標函數的均方差的平均和綜合之后的假設G與目標函數的均方差的關系。


得到的這個式子告訴我們,avg((gt-f)2)和(G-f)2是有關系的,中間差了一個avg((gt-G)^2)。

以此類推,對于測試數據集,我們分析一下預測誤差,得到下面的式子。說明Eout(gt)的平均要比Eout(G)大,這說明理論上Uniform Blending的誤差要比gt的平均預測誤差更小,預測效果也更好。


小結

現在假設每次從一組數據分布中抽取N筆數據構造gt,平均T個gt,得到G。如果對這一動作取極限,得到期望值g hat。



我們下面用g hat代替上一小節中的G,得到gt和g hat的關系。

  • g_hat代表了一些gt的共同意見,共識,consensus
  • avg(Eout(gt))代表了該算法作用于不同的數據集的平均表現,是演算法表現的期望值
  • avg(ε(gt-g_hat)^2)代表了gt與共識差別多大,說明了不同gt的意見有多么不一樣,多么分散,稱為variance
  • Eout(g_hat)代表了共識的表現如何,稱為bias

我們可以知道平均的目的就是想辦法消除variance的過程,得到更穩定的表現。

Linear Blending

假設現在我們已經得到一些假設gt,Linear Blending是分配給不同的gt不同的票數,即給gt不同權重αt。最終得到的是gt的線性組合。


(1)得到使得模型訓練誤差最小的α
那么我們該如何得到最好的αt呢?一般的思路自然是要使得訓練誤差最小的αt,即min Ein(α)。


上面的式子和之前介紹過的進行特征轉換后的線性回歸模型很類似,這里要求αt>=0這個限制條件。這樣我們可以將gt(·)當做是特征轉換,然后利用線性回歸模型的方式求解α就可以了。

(2)忽略α的限制條件


在之前的線性回歸模型中,我們沒有用到系數的限制條件,這里我們該如何轉化αt>=0這個限制條件的問題呢?

上面的式子告訴我們,當αt < 0的時候,我們可以將αt·gt(x)看做是一個正的系數|αt|乘上一個反向的gt。

我們可以設想二元分類的情況,如果有一個假設,其錯誤率是99%,那么當我們反過來用的時候,可以得到一個錯誤為1%的假設,即正確率為99%的假設。從這個角度來看,我們可以不用在意αt的正負問題。

(3)gt的選擇
我們使用Blending算法,需要一些gt,那么gt通常是怎么得到呢?一般的,g從不同的模型,通過求最好的Ein得到的。
但是通過最小化Ein的方式進行選擇最好的gt,需要付出復雜度代價很大,所以我們要使用最小化驗證誤差進行g的選擇。所以,如果使用Ein來得到Linear Blending的gt就需要付出更大的復雜度代價了,很容易出現過擬合的問題。
實際上,Blending算法通過選擇使得驗證誤差Eval最小的αt,而不是Ein;同時,為了讓驗證誤差Eval和之前得到的gt相互獨立,故之前得到的gt是從訓練集合Etrain中得到的gt-

具體的流程是這樣的:

從比較小的Dtrain數據集中得到一堆g1-,g2-,...,gT-,然后將驗證集合Dval中的數據通過g-轉換成Z空間的數據


Linear Blending可以通過線性模型學習經過轉換得到的(zn,yn),最后輸出的是通過g-得到的α,和使用所有現有數據訓練得到的g而不再是g-

同樣的道理,我們也可以使用同樣的流程來運用非線性的模型求解這個問題,這樣就可以使得模型的能力更強,進而延伸到有條件的Blending模型(conditional blending)上,其缺點是可能出現過擬合的問題

如果上面不太明白gg-的區別,請看一下【機器學習基礎】驗證小結的介紹。

Bagging(Bootstrap Aggregation)

之前我們假設事先已經得到一對g,然后去做Blending的動作,現在我們可不可以一邊學習g,一邊將這些g綜合起來?
如何得到不同的g
首先,我們要考慮一下可以通過什么方式得到不同的g:

  1. 從不同的模型得到不同的g
  1. 同一個模型,不同的參數得到不同的g
  2. 如果是算法本來是有隨機的部分,可以得到不同的g
  3. 不一樣的數據集得到不同的g,比如在進行交叉驗證的時候,不一樣的數據集切割可以得到不一樣的g-

我們能不能通過一份數據得到不同的g呢?這就是我們接下來要做的工作。
再次回顧一下之前介紹的理論結果,即演算法的表現可以分成Bias和Variance。


這個理論背后的意義是,大家的共識比單一的意見(g)要好。
我們在之前的推導中要求有一組不同的數據,但是我們現在只有一筆數據可用,那么我們該如何做呢?
在上面的式子中的g的平均(g拔),是通過無限個數據集得到的g,然后進行平均;為了近似g的平均,我們使用有限個,但是很大的數量T代替;其次,利用統計學中bootstrapping方法來根據現有數據模擬生成新的數據。

bootstrapping

bootstrap采樣的數據是通過在原有N個數據中隨機平均地取出,記錄下來之后再放回去重新抽取,這樣取N次之后,得到的數據在統計學上稱為bootstrap sample。

Bagging


bootstrap aggregation(BAGging)的方法是通過bootstapping的機制生成一系列不同的gt,然后這些gt用Uniform的方式投票,綜合起來。

舉例

下面的例子是用Pocket演算法求出的分類邊界,這里的步驟是用boostrap的方法得到不同的數據集,然后對每一筆數據集運用Pocket算法,讓每個Pocket算法跑1000次,得到25個分類線(灰色線),將這些分類線綜合起來得到最終的非線性的邊界(黑色線)。


轉載請注明作者Jason Ding及其出處
GitCafe博客主頁(http://jasonding1354.gitcafe.io/)
Github博客主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.lxweimin.com/users/2bd9b48f6ea8/latest_articles)
百度搜索jasonding1354進入我的博客主頁

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379

推薦閱讀更多精彩內容