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