組合模型初探

0. 組合模型概述

咱們已經學習了一系列不一樣的模型用於解決分類問題和迴歸問題。常常發現的一件事情是,咱們能夠經過某種方式將多個模型結合到一塊兒的方法來提高性能,而不是獨立地使用一個單獨的模型。這個小節咱們先來提綱挈領的討論一下「組合模型」的思想方法,這種討論能夠給咱們以啓發,html

(1)例如,我麼能夠訓練 L 個不一樣的模型,而後使用每一個模型給出的預測的平均值進行預測,這樣的模型的組合有時被稱爲委員會(committee)。算法

(2)委員會方法的一個重要的變體,被稱爲提高方法(boosting),這種方法按順序訓練多個模型,其中 每一輪中用來訓練一個特定模型的偏差函數依賴於前一個模型的表現(也即每輪的調整策略由上一輪模型的表現決定)。與單一模型相比,這個模型能夠對性能產生顯著的提高。網絡

(3)與對一組模型的預測求平均的方法不一樣,另外一種形式的模型組合是選擇一個模型進行預測,其中模型的選擇是輸入變量的一個函數(也即有輸入變量決定選擇什麼模型)。所以不一樣的模型用於對輸入空間的不一樣的區域(特徵維度切面)進行預測。這種方法的一種普遍使用的框架被稱爲決策樹(decision tree),其中選擇的過程能夠被描述爲一個二值選擇的序列,對應於對樹結構的遍歷。這種狀況下,各個單獨的模型一般被選得很是簡單,總體的模型靈活性產生於與輸入相關的選擇過程。決策樹既能夠應用於分類問題也能夠應用於迴歸問題。框架

決策樹的一個侷限性是對於輸入空間的劃分基於的是一種硬劃分,對於輸入變量的任意給定的值,只有一個模型用於作出預測。經過將一個機率框架用於模型組合,決策過程能夠被軟化,例如,若是咱們有一組 K 個模型用於描述條件機率分佈,其中是輸入變量, 是目標變量,是模型的索引,那麼咱們能夠進行一種機率形式的混合,形式爲:,其中表示與輸入相關的混合係數。這樣的模型能夠被當作混合機率模型,其中份量的機率密度以及混合係數都以輸入變量爲條件,被稱爲專家混合(mixture of experts)機器學習

 

1. 委員會

構建一個委員會的最簡單的方法是對一組獨立的模型的預測取平均,這樣的方法很是符合機率統計的思想,它綜合考慮了偏置和方差之間的折中,它將模型的偏差分解爲:函數

1. 偏置份量:產生於模型和真實的須要預測的函數之間的差別;
2. 方差份量:表示模型對於單獨的數據點的敏感性;

固然,在實際的應用中,咱們只有一個單獨的數據集,所以咱們必須尋找一種方法來表示委員會中不一樣模型之間的變化性。一種方法是使用自助(boostrap)數據集。性能

考慮一個迴歸問題,其中咱們試圖預測一個連續變量的值,而且假設咱們生成了 M 個自助數據集而後使用每一個數據集訓練出了預測模型的一個獨立的副本,其中。委員會預測爲:學習

這個方法被稱爲自助彙集(boostrap aggregation)或者打包(bagging)優化

假設咱們試圖預測的真實的迴歸函數爲,從而每一個模型的輸出能夠寫成真實值加上偏差的形式,即:編碼

這樣,平方和偏差函數的形式爲:,其中表示關於輸入變量的一個頻率指望。因而,各個模型獨立預測的平均偏差爲:

相似地,委員會方法的預測的指望偏差爲:

若是咱們假設偏差的均值爲零,且不具備相關性,即:,那麼咱們有:

這個結果代表:

一個模型的平均偏差能夠僅僅經過對模型的M個版本求平均的方法減少M倍。這看起來是一個很是牛逼的事情,但不幸的是,它依賴於咱們的關鍵假設,即由各個單獨的模型產生的偏差是不相關的,可是在實際應用中,各個模型之間的偏差一般是「高度相關的」,所以總體的偏差降低是一般很小的。
而後,能夠證實,委員會偏差的指望不會超過各個份量模型的指望偏差,即Ecom <= Eav

爲了獲得更顯著的提高,咱們轉向一種更加複雜的構建委員會的方法,被稱爲提高方法

 

2. 提高方法(boosting)

提高方法是一種很一種很強大的方法,它將多個「基」分類器進行組合,產生一種形式的委員會,委員會的表現會比任何一個基分類器的表現好得多。即便基分類器的表現僅比隨機猜想的表現稍好,提高方法扔能夠產生比較好的結果,這種基分類器有時被稱爲弱學習器(weak learner)。提高方法最初被用來解決分類問題,可是也能夠推廣到迴歸問題。

提高方法和委員會方法(例如bagging投票方法)的主要區別在於:

基分類器是順序訓練的,每一個基分類器使用數據集的一個加權形式進行訓練,其中與每一個數據點相關聯的權係數依賴於前一個分類器的表現。特別地,被一個基分類器誤分類的點在訓練序列中的下一個分類器時會被賦予更高的權重。一旦全部的分類器都訓練完畢,那麼它們的預測就會經過加權投票的方法進行組合

0x1:經過一個例子體會Boosting思想的強大之處

使用李航的《統計機器學習》裏的例子,很是經典,給人以啓發

 

咱們看到在每輪的迭代中,權重係數對於誤分類的數據點會增大,對於正確分類的數據點不改變,所以後續的分類器就會更關注那些被前一個分類器錯誤分類的數據點。

這裏的 x < v 或者 x > v 咱們能夠理解成是一個基分類器, 每一個基分類器由一個輸入變量的閾值組成,這個簡單的基分類器本質上就是一種「決策樹樁(decision stup)」,即一個具備單節點的決策樹。

能夠看到,Boosting中的每一個基分類器僅僅使用一個與一個座標軸垂直的線性決策面將空間劃分爲兩個區域,這看起來是一個「不是太好的」分類器,很明顯嘛,這樣一個二分類器怎麼可能取得好的效果呢?

可是Boosting經過集成了多個基分類器,不一樣的基分類器各自有不一樣的權重係數,經過最後的綜合投票獲得一個綜合判斷,Boosting中的一系列基分類器各自有不一樣的權重係數,係數的肯定是由訓練樣本逐輪的迭代肯定的。

這很有深度神經網絡神經元的思想。只是區別在於,深度神經網絡中神經元的權重是隨着每輪的訓練迭代同時總體調整的,這也是深度神經網絡的擬合能力相對更強的緣由。

0x2:最小化指數偏差

提高方法最先起源於統計學理論,獲得了泛化偏差的上界。然而,這些上界過於寬鬆,沒有實際的價值。提高方法的實際表現要遠優於上界給出的值。考慮下面定義的指數偏差函數:

,其中是根據基分類器的線性組合定義的分類器,形式爲:是訓練集目標值。咱們的目標是關於權係數和基分類器最小化

然而,咱們不進行偏差函數的全局最小化,而是假設基分類器以及它們的係數固定,所以咱們只關於進行最小化。分離出基分類器的貢獻,咱們能夠將偏差函數寫成

,其中,係數能夠被看做常數,由於咱們只針對進行最優化。若是咱們將被正確分類的數據點的集合記做,而且將剩餘的誤分類的點記做,那麼咱們能夠將偏差函數寫成以下形式:

當咱們關於進行最小化時,我麼看到第二項是常數,不影響最小值的未知。

在經過求導數獲得極值,找到以後,數據點的權值使用下面的公式進行更新:

使用下面的事實:

咱們看到在下一次迭代中,權值的更新爲:

因爲與 n 無關,所以咱們看到它對於全部數據點的權值都貢獻一個相同的因子(即分對的樣本在本輪的調整幅度是一致的;分錯的樣本的調整幅度在本輪的調整是一致的),從而在公式上能夠丟棄,化簡後獲得:

最後,一旦全部的基分類器被訓練完畢,新數據點經過全部基分類器的線性組合進行分類,因爲因子 1/2 不影響符號,所以能夠省略,獲得公式:

能夠看到,在每輪迭代中參與調整的最核心的因素是:本輪基分類器的分類錯誤的數據點的指數偏差綜合,對Boosting方法來講,每輪分對的數據點和分錯的數據點能夠理解爲一個神經元(包含2個神經元的隱層的神經網絡),每輪迭代都根據上一輪的偏差,藉助一個指數算式來獲得一個負向反饋的權重調整

0x3:提高方法的偏差函數

Boosting算法的最小化指數偏差函數與咱們以前學習的統計機率算法的偏差函數有一些不一樣。爲了更深入地理解指數偏差函數的本質,咱們首先考慮指望偏差:

若是咱們關於全部可能的函數進行變分最小化,那麼咱們有:

它是log odds函數的通常,所以Boosting算法是在由基分類器的線性組合表示的函數空間中,尋找對log odds的最好的近似,對應於順序最優化策略下的受限最小化。

下圖用不一樣顏色的線對指數偏差、縮放的交叉熵偏差、支持向量機使用的鉸鏈偏差函數、無分類偏差函數進行橫向對比:

咱們能夠看到:

1. 交叉熵偏差函數和指數偏差函數,均可以當作對理想誤分類偏差函數的連續近似。
2. 指數偏差的一個優勢在於它的順序最小化會獲得簡單的adaboost方法。然而,一個缺點是,與交叉熵函數相比,它對負的 t * y(x)的懲罰是指數增加了,不如交叉熵那麼線性。所以指數偏差函數對於異常點和誤分類點的數據點並不魯棒。
3. 和交叉熵偏差相比,指數偏差函數沒法表示爲任何具備良好定義的機率模型的似然函數。
4. 此外,指數偏差沒法推廣到具備 K > 2個類別的分類問題,而交叉熵這種機率模型能夠很容易推廣到多分類形式。

 

3. 基於樹的模型

有許多簡單但普遍使用的模型,它們將輸入空間劃分爲超立方體區域,超立方體的邊與座標軸對齊,而後爲每一個區域分配一個簡單的模型(例如一個常數閾值二分類器)。這些模型能夠被當作一種模型組合方法,其中只有一個模型對於輸入空間中任意給定點的預測起做用(輸入數據點沿着二叉樹直到樹葉只能選擇一條線路,到達惟一的一個葉子結點)。給定一個新的輸入 x,選擇一個具體的模型的過程能夠由一個順序決策的過程描述, 這個過程對應於一個二叉樹(每一個節點劃分爲兩個分支的樹)的遍歷。

0x1:一個具體的樹模型的例子 - 分類與迴歸樹

這裏,咱們關注一個特定的基於樹的框架,被稱爲分類與迴歸樹(classification and regression tree)。

1. 模型結構

下圖給出了對輸入空間進行遞歸二分的例子,以及對應的樹結構。

在這個例子中,第一步根據或者,將輸入空間劃分爲兩個區域,其中是一個模型參數。

這建立了兩個子區域,每一個區域以後能夠獨立地進行劃分,不斷遞歸下去。

對於任意新的輸入 x,咱們肯定它所屬區域的方法是:從樹頂端的根節點開始,根據每一個結點的決策準則(基分類器),沿着路徑向下走到具體的葉結點。

在每一個區域內,有一個單獨的模型(本質上就是基分類器)預測目標變量的值。例如

1. 在迴歸問題中,咱們簡單地在每一個區域內預測一個常數(離散化採樣思想)
2. 或者在分類問題中,咱們將每一個區域分配一個具體的類別(二分類或多分類)

基於樹的模型的一個關鍵的性質是模型能夠由人類表述(可解釋性),由於模型對應於做用在輸入變量上的一個二元決策序列(注意,序列和加和模型是有區別的,序列不是簡單的total加和,序列包含了決策順序),這種序列在實際應用中很是有用。例如,爲了預測一個病人的疾病,咱們能夠首先問「病人的體溫是否大於某個閾值?」。若是回答是確定的,那麼咱們能夠問「病人的血壓是否低於某個閾值?」。而後樹的每一個葉節點都與一個具體的診斷相關聯。

2. 模型策略

咱們繼續來討論如何肯定決策樹的結構,即便對於結點數量固定的樹,肯定最優結構(包括每次劃分使用的輸入變量以及對應的閾值)來最小化平方和偏差函數的問題一般在計算上是不可行的,由於可能的組合數量很是巨大。相反,咱們一般使用貪心的最優化

對應於整個輸入空間的一個單獨的根節點開始,而後經過每次添加一個結點的方式構建樹;

在每一步,輸入空間中會有若干個能夠切分的候選的區域,對應於向當前的樹中添加一對葉節點。對於每一個這種候選區域,咱們要選擇使用D個輸入變量中的哪個進行劃分?以及閾值的大小?

劃分區域的選擇以及輸入變量和閾值的選擇能夠經過完全搜索的方法高效地進行聯合最優化

3. 模型終止條件

獲得構建樹的貪心策略以後,剩下的問題是如何中止添加結點。一個簡單的方法是當殘留偏差的減少量低於某個閾值時中止(精確度增加速度收斂)。

然而,咱們經過實驗發現,常常出現這樣的情形:在某一輪迭代中,沒有一種劃分方式會使偏差函數產生顯著的減少,可是再進行幾回劃分以後,就又忽然找到一個使偏差函數顯著減少的劃分方式(彷佛是從一個局部最優的陷阱裏跳出來了)

所以,在實際應用中一般構建一個較大的樹,使用基於與葉節點關聯的數據點數量的中止準則(本質是限制樹的深度),而後進行剪枝,生成最終的樹。

剪枝的過程基於的準則是:在殘留偏差與模型複雜度之間進行平衡

0x2:樹模型可能存在的問題

像CART這種樹模型能夠由人類進行表述這一性質一般被視爲一個十分重要的優勢,而後在實際應用中,學習到的特定的樹結構對於數據集的細節很是敏感,從而訓練集的一個微小的改變就會產生一個至關不一樣的劃分集合。本質上來講,致使這個問題的緣由在於決策的測決面太硬了,不夠柔和。

另外一個一個比較嚴重的問題是,劃分邊界與特徵空間的座標軸對齊的,這至關很差。

此外,決策樹中的劃分是硬劃分,從而輸入空間中的每一個區域與一個葉節點模型關聯,而且只與一個葉節點模型關聯,樹模型至關於生成了一個分段常數的預測,劃分的邊界是不連續的。

 

4. 條件混合模型

咱們已經看到,標準的決策樹被限制爲對輸入空間的硬的、與座標軸對齊的劃分。這些限制能夠經過引入軟的、機率形式的劃分的方式獲得緩解,這些劃分是全部輸入變量的函數,而不是僅僅某個輸入變量的函數。固然,這樣作的代價是模型的直觀意義的消失

若是咱們也給葉節點的模型賦予一個機率的形式,那麼咱們就獲得了一個純粹的機率形式的基於樹的模型,被稱爲專家層次混合(hierarchical mixture of experts)。

另外一種獲得專家層次混合模型的方法是從標準的非條件密度模型(例如高斯分佈)的機率混合開始,將份量機率密度替換爲條件機率分佈。這裏,咱們考慮線性迴歸模型的混合以及logistic迴歸模型的混合。在最簡單的狀況下,混合係數與輸入變量無關。若是咱們進行進一步的泛化,使得混合係數一樣依賴於輸入,那麼咱們就獲得了專家混合(mixture of experts)模型。最後,若是咱們使得混合模型的每一個份量自己都是一個專家混合模型,那麼咱們就獲得專家層次混合模型。

0x1:線性迴歸模型的混合

用機率形式表示線性迴歸的衆多優勢之一是它能夠用做更復雜的機率模型的一個份量。例如,將表示線性迴歸模型的條件機率分佈當作有向機率圖中的一個結點,便可完成這件事。

這裏,咱們考慮一個線性迴歸模型的混合的例子,它是高斯混合模型的一個直接推廣,推廣到條件高斯分佈的情形。

咱們考慮 K 個線性迴歸模型,每一個模型都由本身的權參數控制。在許多應用中,比較合適和簡單的作法是對全部 K 個份量使用一個共同的噪聲方差,由精度參數控制。

咱們將注意力集中於單一目標變量,將混合係數記做,那麼混合機率分佈能夠寫成:

其中表示模型中全部可調節參數的集合,即。給定一組觀測數據集,這個模型的對數似然函數的形式爲:,其中表示目標變量組成的向量。

爲了最大戶這個似然函數,咱們能夠再次使用EM算法,它是無條件高斯混合模型的EM算法的一個簡單推廣。因而咱們能夠基於咱們對無條件混合分佈的經驗構造模型,引入一組二值潛在變量,其中,其中對於每一個數據點 n,全部的中只有一個元素爲1,其他元素都等於0。等於1的元素表示哪一個混合分佈用於生成數據點。潛在變量與觀測變量的聯合機率分佈能夠用下面圖模型表示:

 

這樣,完整數據的對數似然函數的形式爲:

1. EM步驟

EM算法在開始時,首先選擇模型參數的初始值,在E步驟中,這些參數用於計算每一個數據點 n 的每一個份量 k 的後驗機率分佈或者「責任」,結果爲:,而後,「責任」被用於肯定完整數據對數似然函數關於後驗機率分佈的指望,形式爲:

在M步驟中,咱們關於最大化函數,保持不變。對於關於混合係數的最優化,咱們須要考慮限制條件,這使用拉格朗日乘數法便可完成,獲得了的M步步驟重估計方程,形式爲:

接下來,考慮關於第 k 個線性迴歸模型的參數向量的最大化,帶入高斯分佈的表達式,咱們看到關於參數向量的函數形式爲:,其中常數項包含來自的其餘權向量的貢獻。

注意,咱們最大化的量相似於單一線性迴歸模型的標準平方和偏差函數的負對數,可是包含了責任項。這表明了加權最小平方(weighted least squares)問題,其中對應於第 n 個數據點的項帶有一個加權係數,它能夠被當作每一個數據點的有效精度。

咱們看到,混合模型中的每一個份量線性模型由自身的參數向量控制,在 M 步驟中使用整個數據集分別進行調節,可是每一個數據點 n 由責任項加權,它表示模型 k 對這個數據點的做用。

關於的導數等於零,可得:

它能夠用矩陣的記號表示爲:,其中是一個 N * N 的對角矩陣,解出,咱們有

它表示一組修改過的規範方程,對應於加權的最小平方問題,與logistic迴歸問題中獲得的結果具備相同的形式。

注意,在每一個 E 步驟以後,矩陣會發生變化,所以咱們在後續的 M 步驟中必須從新解該規範方程

最後,咱們關於最大化,只保留依賴於的項,函數能夠寫成:

令它關於的導數等於零,整理以後,咱們獲得了的 M 步驟方程,形式爲:

下圖用一個簡單的例子來講明這個基於線性迴歸組合的EM算法:

在上圖的例子中,咱們根據數據集來調整由兩條直線組成的混合模型,數據集有一個輸入變量 x 和一個目標變量 t。

咱們看到,混合模型能夠更好地表示數據分佈,這一點經過更高的似然函數值反映出來。然而,混合模型也將至關大的機率質量分配到了沒有數據的區域,由於它的預測分佈對於 x 的全部值來講是雙峯的

0x2:logistic模型的混合

因爲線性迴歸模型定義了給定輸入變量的條件下目標變量的一個條件機率分佈,所以很容易將其用做混合模型中的份量分佈,從而與單一的logistic迴歸模型相比,能夠表示更豐富的一類條件機率分佈。

對於 K 個logistic迴歸模型來講,目標變量的條件機率分佈爲:,其中是特徵向量,是份量 k 的輸出,表示可調節參數,即

1. EM步驟

如今假設咱們有一個數據集,從而對應的似然函數爲:,其中

咱們可使用EM算法迭代地最大化這個似然函數。這涉及到引入潛在變量,它對應於每一個數據點 n 的用方式編碼的二值指示器變量。完整數據的似然函數爲:

,其中是潛在的變量矩陣,元素爲

咱們經過選擇模型參數的一個初始值來初始化EM算法,以後在 E 步驟中,咱們使用這些參數值來計算每一個數據點 n 的份量 k 的後驗機率,形式爲:

這些責任項而後用於尋找完整數據對數似然函數的指望,它做爲的一個函數,形式爲:

M步驟涉及到關於最大化這個函數,保持不變,從而保持不變。關於的最大化可使用一般的方式進行,引入拉格朗日乘數來強制知足的限制,獲得下面的結果:

爲了肯定,咱們注意到由一組下標爲 k 項的求和式組成,它只依賴於向量中的一個,所以不一樣的向量在EM算法的 M 步驟中能夠獨立進行優化。換句話說,不一樣的份量只經過責任項產生相互做用,它在步驟 M 步驟中是固定的,注意,M 步驟沒有封閉解,必須使用例如迭代重加權最小平方(IRLS)算法迭代得求解。對於向量的梯度和爲:,其中表示關於的梯度。對於固定的,梯度和獨立於,所以咱們可使用 IRLS 算法分別對每一個求解,所以份量 k 的 M 步驟方程僅僅對應於使用數據集調整一個單獨的logistic迴歸模型,其中數據點 n 攜帶權值

下圖給出了一個logistic迴歸模型的混合模型應用的簡單例子

從這2個例子,咱們能夠看出,混合模型的最強大的地方在於:混合模型能夠捕獲數據集中多個不一樣的機率分佈模式(若是真的存在的話),並經過權重調整來柔性地微調各個基分類器之間的關係

Copyright (c) 2018 LittleHann All rights reserved

相關文章
相關標籤/搜索