丁曉旸
【摘 要】梯度增強(qiáng)機(jī)器并不是獨(dú)立的某種技術(shù),而是一系列強(qiáng)大的機(jī)器學(xué)習(xí)技術(shù)的集合,它在廣泛的實(shí)際應(yīng)用中取得了相當(dāng)大的成功。它們是高度可定制的,可以滿足特殊需求的應(yīng)用,就像是學(xué)會(huì)了尊重和適應(yīng)不同的損失函數(shù)。本文介紹了梯度增強(qiáng)方法的入門教程,重點(diǎn)介紹了建模的機(jī)器學(xué)習(xí)方面。
【關(guān)鍵詞】梯度增強(qiáng)機(jī)器(GBM);機(jī)器;應(yīng)用
一、研究背景
梯度增強(qiáng)器(GBM)實(shí)際上是從Boosting算法發(fā)展演化而來,Boosting算法其實(shí)思想相當(dāng)?shù)暮唵?,大概是,?duì)一份數(shù)據(jù),建立M個(gè)模型(比如分類),一般這種模型比較簡單,稱為弱分類器(weak learner)每次分類都將上一次分錯(cuò)的數(shù)據(jù)權(quán)重提高一點(diǎn)再進(jìn)行分類,這樣最終得到的分類器在測試數(shù)據(jù)與訓(xùn)練數(shù)據(jù)上都可以得到比較好的成績。
訓(xùn)練集中一共有n個(gè)點(diǎn),我們可以為里面的每一個(gè)點(diǎn)賦上一個(gè)權(quán)重Wi(0 <= i < n),表示這個(gè)點(diǎn)的重要程度,通過依次訓(xùn)練模型的過程,我們對(duì)點(diǎn)的權(quán)重進(jìn)行修正,如果分類正確了,權(quán)重降低,如果分類錯(cuò)了,則權(quán)重提高,初始的時(shí)候,權(quán)重都是一樣的。上圖中綠色的線就是表示依次訓(xùn)練模型,可以想象得到,程序越往后執(zhí)行,訓(xùn)練出的模型就越會(huì)在意那些容易分錯(cuò)(權(quán)重高)的點(diǎn)。當(dāng)全部的程序執(zhí)行完后,會(huì)得到M個(gè)模型,分別對(duì)應(yīng)上圖的y1(x)…yM(x),通過加權(quán)的方式組合成一個(gè)最終的模型YM(x)。
我覺得Boosting更像是一個(gè)人學(xué)習(xí)的過程,開始學(xué)一樣?xùn)|西的時(shí)候,會(huì)去做一些習(xí)題,但是常常連一些簡單的題目都會(huì)弄錯(cuò),但是越到后面,簡單的題目已經(jīng)難不倒他了,就會(huì)去做更復(fù)雜的題目,等到他做了很多的題目后,不管是難題還是簡單的題都可以解決掉了。
Gradient Boosting方法:
其實(shí)Boosting更像是一種思想,Gradient Boosting是一種Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型損失函數(shù)的梯度下降方向。這句話有一點(diǎn)拗口,損失函數(shù)(loss function)描述的是模型的不靠譜程度,損失函數(shù)越大,則說明模型越容易出錯(cuò)(其實(shí)這里有一個(gè)方差、偏差均衡的問題,但是這里就假設(shè)損失函數(shù)越大,模型越容易出錯(cuò))。如果我們的模型能夠讓損失函數(shù)持續(xù)的下降,則說明我們的模型在不停的改進(jìn),而最好的方式就是讓損失函數(shù)在其梯度(Gradient)的方向上下降。
如果我們考慮與早期發(fā)展的聯(lián)系,就會(huì)得出眾所周知的級(jí)聯(lián)相關(guān)神經(jīng)網(wǎng)絡(luò)可以被認(rèn)為是算法中定義的特殊類型的梯度增強(qiáng)模型。由于每個(gè)神經(jīng)元的輸入側(cè)權(quán)重在添加到網(wǎng)絡(luò)之后變得固定,所以整個(gè)模型可以被認(rèn)為是GBM,其中基礎(chǔ)學(xué)習(xí)者模型只是一個(gè)神經(jīng)元,損失函數(shù)是標(biāo)準(zhǔn)平方誤差。這個(gè)算法也最大化了整個(gè)網(wǎng)絡(luò)的誤差與新創(chuàng)建的神經(jīng)元之間的相關(guān)性,而且比較明顯。
二、梯度增強(qiáng)器在決策樹中的應(yīng)用
一種計(jì)算可行的捕獲相互作用的方式。GBM模型中的變量基于使用決策樹模型。雖然幾個(gè)解釋變量之間的相互作用會(huì)消除加性模型的可解釋性,但這不能被認(rèn)為是一個(gè)顯著的缺點(diǎn),因?yàn)檫€有幾種用于基于樹的GBM解釋的工具。
決策樹背后的想法是分配空間,通過樹形輸入變量到均勻的矩形區(qū)域規(guī)則制度。每個(gè)樹分裂對(duì)應(yīng)于if-then規(guī)則一些輸入變量。這種結(jié)構(gòu)的決策樹自然而然編碼和模擬預(yù)測變量之間的相互作用,ABLES。這些樹通常用數(shù)字參數(shù)化分裂,或等效地相互作用深度。它也是可能的,可以將其中一個(gè)變量拆分成特定的幾倍。
只有一個(gè)分裂的決策樹(即具有兩個(gè)終端節(jié)點(diǎn)的樹)的特殊情況稱為樹樁。因此,如果想要使用樹型基礎(chǔ)學(xué)習(xí)者來擬合一個(gè)加法模型,那么可以使用樹狀樹來做到這一點(diǎn)。在許多實(shí)際應(yīng)用中,小樹和樹樁提供了相當(dāng)準(zhǔn)確的結(jié)果(Wenxin,2002)。此外,有很多證據(jù)表明,即使是具有豐富的樹結(jié)構(gòu)(相互作用深度>20)的復(fù)雜模型幾乎不會(huì)對(duì)緊湊的樹(相互作用)提供任何好處。
決策樹的一個(gè)重要特征是,通過設(shè)計(jì),單個(gè)決策樹總是以常量值推斷函數(shù)。這意味著,即使像一個(gè)非零角度的直線的簡單函數(shù)也不能用單個(gè)決策樹正確地近似。
三、梯度增強(qiáng)器的模型泛化能力
從數(shù)據(jù)建立機(jī)器學(xué)習(xí)模型的最重要的關(guān)注是產(chǎn)生的模型的泛化能力。如果學(xué)習(xí)算法不適用,該模型可以輕松地過載數(shù)據(jù)。這意味著它會(huì)預(yù)測訓(xùn)練數(shù)據(jù)比輸入和響應(yīng)變量之間的功能依賴性。這些關(guān)切顯然是相同的GBM。很容易想像一個(gè)情況,即新的基礎(chǔ)學(xué)習(xí)者被添加到合奏,直到數(shù)據(jù)被完全過度使用。使用不同類型的基礎(chǔ)學(xué)習(xí)者可能適應(yīng)GBM具有非常不同的損失功能。
為GBM引入的最簡單的正則化程序是二次抽樣。子采樣程序已經(jīng)顯示提高模型的泛化屬性,同時(shí)減少所需的計(jì)算量。這種方法背后的想法是引入一些隨機(jī)變量進(jìn)入擬合程序。僅在每次學(xué)習(xí)迭代時(shí)訓(xùn)練數(shù)據(jù)的隨機(jī)部分用于適應(yīng)充足的基礎(chǔ)學(xué)習(xí)者。訓(xùn)練數(shù)據(jù)通常是采樣的替換,但是,替換抽樣,就像它做的一樣引導(dǎo),是另一種可能的設(shè)計(jì)選擇。子采樣過程需要一個(gè)稱為的參數(shù)“袋子分?jǐn)?shù)”。袋子分?jǐn)?shù)是不大于正值一個(gè),其規(guī)定了在每個(gè)itera-glue。例如,袋=0.1對(duì)應(yīng)于采樣和使用每次迭代只有10%的數(shù)據(jù)。另一個(gè)有用的屬性的抽樣是自然地適應(yīng)了GBM學(xué)習(xí)程序到大數(shù)據(jù)集時(shí)沒有理由使用全部一次潛在的巨大數(shù)據(jù)量。當(dāng)數(shù)據(jù)量,由數(shù)據(jù)量測量N點(diǎn)不是實(shí)際值得關(guān)注的,設(shè)置默認(rèn)值bag=0.5給出了許多實(shí)際任務(wù)的合理結(jié)果。如果一個(gè)最佳的袋子部分是感興趣的,可以簡單的估計(jì)它通過比較不同參數(shù)下的預(yù)測性能值。
在GBM的背景下,收縮用于減少或縮小每個(gè)額外安裝的基礎(chǔ)學(xué)習(xí)者的影響。它減少增量步長的大小,從而懲罰每次連續(xù)迭代的重要性。這種技術(shù)是通過采取改進(jìn)模型更好許多小步驟比采取較少的大步驟。如果其中之一增強(qiáng)迭代證明是錯(cuò)誤的,它的負(fù)面影響可以在隨后的步驟中輕松校正。通過收縮的最簡單的正規(guī)化形式是直接比例收縮。在這種情況下,收縮的影響直接定義為參數(shù)λ∈(0,1),正則化應(yīng)用于最終梯度提升算法的一步。
四、梯度增強(qiáng)器的缺點(diǎn)
梯度增壓機(jī)是一種強(qiáng)大的方法,可以有效捕獲復(fù)雜的非線性函數(shù)依賴性。這個(gè)模型系列在各種各樣的顯示器上取得了相當(dāng)大的實(shí)際應(yīng)用。此外,GBM非常靈活,可以輕松地根據(jù)不同的實(shí)際需要進(jìn)行定制。然而,所有這些結(jié)果和好處并不是免費(fèi)的。雖然GBM可以被認(rèn)為是一種方法論框架比一個(gè)特定的方法,他們還有幾個(gè)缺點(diǎn):
GBM出現(xiàn)的最明顯的問題是存儲(chǔ)預(yù)測模型的成本取決于用于學(xué)習(xí)的升壓迭代次數(shù)。正如我們?cè)谡齽t化部分中討論的,為了減少過擬合的影響,我們要尋求最優(yōu)迭代次數(shù)對(duì)于合適的收縮參數(shù)可以相當(dāng)大。在一些精確密集的應(yīng)用程序(如入侵檢測系統(tǒng))中,所需的迭代次數(shù)可以很容易地達(dá)到范圍數(shù)萬。處理這種大規(guī)模模型需要存儲(chǔ)每個(gè)適合的基礎(chǔ)學(xué)習(xí)者的所有參數(shù)。
GBM的另一個(gè)問題自然來自于高內(nèi)存消耗是評(píng)估速度。使用擬合GBM模型獲得預(yù)測,一個(gè)必須評(píng)估所有合奏中的基礎(chǔ)學(xué)習(xí)者。盡管每個(gè)人都很簡單的基礎(chǔ)學(xué)習(xí)者,當(dāng)合奏相當(dāng)大時(shí),以快速的速度獲得預(yù)測可能變得耗時(shí)。因此,在密集的在線任務(wù)中使用GBM最多可能要求從業(yè)者接受這種權(quán)衡模型復(fù)雜性和所需數(shù)量的函數(shù)評(píng)估-每個(gè)時(shí)間間隔。然而,當(dāng)GBM合奏是已經(jīng)學(xué)會(huì)了,可以充分利用并行化獲得預(yù)測。盡管功能評(píng)估的并行化,學(xué)習(xí)過程本質(zhì)上是順序的,并且通過設(shè)計(jì)并行化存在問題。
目前,GBM的另一個(gè)缺點(diǎn)是沒有快速有效的模式和執(zhí)行順利持續(xù)的基礎(chǔ)學(xué)習(xí)者捕獲相互作用。我們從應(yīng)用實(shí)例可以看出,可以在特定的預(yù)測模型中發(fā)揮至關(guān)重要的作用設(shè)計(jì)。然而,只有決策樹才能有效地捕獲非在合理計(jì)算中,變量之間的微不足道的相互作用時(shí)間。值得注意的是,基礎(chǔ)學(xué)習(xí)者可能會(huì)忽略這個(gè)問題,但是這種算法目前在實(shí)踐中并沒有被使用GBM模型設(shè)計(jì)。