1. 程式人生 > >提升方法:前向分步演算法與提升樹

提升方法:前向分步演算法與提升樹

這篇內容為《統計學習方法》的學習筆記,也看過其他書和培訓班的視訊ppt等,但是感覺都是離不開《統計學習方法》這本書,還是這本書讀起來乾淨利落(雖然有很少的地方有點暈)。

接下來首先介紹加法模型和前向分步演算法,接著介紹提升樹,最後補充梯度提升方法。

1、加法模型和前向分步演算法

考慮以下線性組合的模型

f ( x )

= m = 1 M β m
b ( x ; θ m ) f(x)=\sum\limits_{m=1}^{M}\beta_mb(x;\theta_m)

其中 β m \beta_m 為係數, θ m \theta_m 為模型引數,上面的模型顯然就是加法模型。

當給定訓練集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\} ,以及損失函式 L ( y , f ( x ) ) L(y,f(x)) y = { 1 , + 1 } y=\{-1,+1\} ,學習演算法通常就是求經驗風險極小化(或者說損失函式極小化):

min β m , θ m i = 1 n L ( y i , f ( x i ) ) = min i = 1 n L [ y i , m = 1 M β m b ( x i ; θ m ) ] \min\limits_{\beta_m,\theta_m} \sum\limits_{i=1}^{n}L(y_i,f(x_i))=\min \sum\limits_{i=1}^{n}L[y_i,\sum\limits_{m=1}^{M}\beta_mb(x_i;\theta_m)]

該優化問題存在兩個求和,求解比較困難,由於是加法模型,所以可以使用前向分步演算法:每次只學習一個基函式及其係數( b ( x ; θ m ) , β m b(x;\theta_m),\beta_m ),逐步逼近優化目標函式。具體地,每步只需優化如下損失函式函式

min β , θ i = 1 n L [ y i , β b ( x i ; θ ) ] \min\limits_{\beta,\theta}\sum\limits_{i=1}^{n}L[y_i,\beta b(x_i;\theta)]

具體的前向分步演算法如下

前向分步演算法

輸入:訓練資料集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\} ,損失函式 L ( y , f ( x ) ) L(y,f(x)) ,基函式集 { b ( x ; θ ) } \{b(x;\theta)\}
輸出:加法模型 f ( x ) f(x)

(1)、初始化 f 0 ( x ) = 0 f_0(x)=0
(2)、對 m = 1 , 2 , , M m=1,2,\dots,M

(a)、極小化損失函式,獲得引數 β m , θ m \beta_m,\theta_m

( β m , θ m ) = a r g min β , θ i = 1 n L [ y i , f m 1 ( x ) + β b ( x i ; θ ) ] (\beta_m,\theta_m)=arg\min\limits_{\beta,\theta}\sum\limits_{i=1}^{n}L[y_i,f_{m-1}(x)+\beta b(x_i;\theta)]

(b)、更新加法模型

f m ( x ) = f m 1 ( x ) + β m b ( x i ; θ m ) f_m(x)=f_{m-1}(x)+\beta_m b(x_i;\theta_m)

相關推薦

提升方法分步演算法提升

這篇內容為《統計學習方法》的學習筆記,也看過其他書和培訓班的視訊ppt等,但是感覺都是離不開《統計學習方法》這本書,還是這本書讀起來乾淨利落(雖然有很少的地方有點暈)。 接下來首先介紹加法模型和前向分步演算法,接著介紹提升樹,最後補充梯度提升方法。 1、加法模型和前向分步演算法

分步演算法提升模型

本篇部落格主要來說明前向分步演算法以及通過前向分步演算法構造的提升樹模型。 首先,我們假設某一模型公式具有如下形式: 其中我們稱為基函式,為此基函式的係數,而為基函式的相關引數,我們稱這樣的模型為加法模型;我們通過使用這樣一個模型來進行迴歸於分類任務。 然而,這樣一個模型改如何來構

分步演算法(forward stagewise algorithm)

演算法: 輸入:訓練資料集 T={(x1,y1),(x2,y2),⋯,(xN,yN)};損失函式 L(y,f(x)) ;基函式集 {b(x;γ)}; 輸出:加法模型 f(x) . (1) 初

提升方法Adaboost演算法證明

這基本就是關於《統計學習方法》的筆記,當然自己會記的讓人容易讀懂,為了加深記憶,證明都證了兩遍,便於加深理解還是打算寫在部落格裡好了。接下來會先介紹什麼是提示方法,再介紹Adaboost演算法,接著會給個書上的例子,最後再給出一些推導(由於之前是寫過的但是沒儲存好,所以這次有的部分就貼上

HMM學習最佳範例五演算法5

  在HMM這個翻譯系列的原文中,作者舉了一個前向演算法的互動例子,這也是這個系列中比較出彩的地方,但是,在具體執行這個例子的時候,卻發現其似乎有點問題。   先說一下如何使用這個互動例子,執行時需要瀏覽器支援java,我用的是firefox。首先在Set按鈕前面的對話方

深度神經網路(DNN)模型傳播演算法

    深度神經網路(Deep Neural Networks, 以下簡稱DNN)是深度學習的基礎,而要理解DNN,首先我們要理解DNN模型,下面我們就對DNN的模型與前向傳播演算法做一個總結。 1. 從感知機到神經網路     在感知機原理小結中,我們介紹過感知機的模型,它是一個有若干輸入和一個輸出的模型,

Tensorflow實戰-傳播演算法

本文介紹最簡單的全連線網路結構的前向傳播演算法 之所以稱之為全連線神經網路,是因為相鄰兩層之間任意兩個節點之間都有連線 以一個簡單的判斷零件是否合格的三層全連線神經網路作為例子 記x=[x1,x2],w1=,w2= 通過矩陣乘法表示如下: a = tf.matmul(

資料庫原理MySQL檔案排序演算法引數

對於不能利用索引避免排序的SQL,資料庫不得不自己實現排序功能以滿足使用者需求,此時SQL的執行計劃中會出現“Using filesort”, 這裡需要注意的是filesort並不意味著就是檔案排序,其實也有可能是記憶體排序,這個主要由sort_buffer_size引數與結果集大小確定。 假

乾貨 | 深度學習之卷積神經網路(CNN)的傳播演算法詳解

微信公眾號 關鍵字全網搜尋最新排名 【機器學習演算法】:排名第一 【機器學習】:排名第一 【Python】:排名第三 【演算法】:排名第四 前言 在(乾貨 | 深度學習之卷積神經網路(CNN)的模型結構)中,我們對CNN的模型結構做了總結,這裡我們就在CNN的模型基礎上,看看CNN的前向傳播演算法是什麼樣

影象處理八對映和後對映

        影象的幾何變換:在不改變影象畫素的前提下,對影象畫素進行空間幾何變換。常見的變換:距離變換,座標對映,平移,映象,旋轉,縮放和仿射變換等等。         影象的幾何變換:建立了一種源影象畫素與

提升方法GBDT、XGBOOST、AdaBoost

提升 (boosting) 方法是一種常用的統計學習方法,應用廣泛且有效,在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,並將這些分類器進行線性組合,提高分類器效能。 GBDT 我們知道隨機森林的決策樹分別取樣建立, 相對獨立。 那

從前分步演算法推匯出AdaBoost

前向分步演算法到AdaBoost 前向分步演算法與AdaBoost有什麼關係呢?除了都屬於Boosting的模型,其實AdaBoost是當前向分步演算法損失函式為指數損失時的特例。這篇就寫一下推導的過程。 前向分步演算法 Forward Stagew

knn演算法kd實現

最近鄰法和k-近鄰法   下面圖片中只有三種豆,有三個豆是未知的種類,如何判定他們的種類?   提供一種思路,即:未知的豆離哪種豆最近就認為未知豆和該豆是同一種類。由此,我們引出最近鄰演算法的定義:為了判定未知樣本的類別,以全部訓練樣本作為代表點,計算未知樣本與所有訓練

海量資料處理十道面試題十個海量資料處理方法總結(大資料演算法面試題)

第一部分、十道海量資料處理面試題 1、海量日誌資料,提取出某日訪問百度次數最多的那個IP。       首先是這一天,並且是訪問百度的日誌中的IP取出來,逐個寫入到一個大檔案中。注意到IP是32位的,最多有個2^32個IP。同樣可以採用對映的方法

ML之LS&OLSLS&OLS演算法的簡介、論文、演算法的改進(最佳子集選擇法、逐步迴歸法)、程式碼實現等詳細攻略

ML之LS&OLS:LS&OLS演算法的簡介、論文、演算法的改進(最佳子集選擇法、前向逐步迴歸法)、程式碼實現等詳細攻略   LS&OLS演算法的簡介   OLS是在大約200 年前(1806年)由高斯(Gauss)和法國數學家阿德里安-

迴圈神經網路(RNN)模型反向傳播演算法

    在前面我們講到了DNN,以及DNN的特例CNN的模型和前向反向傳播演算法,這些演算法都是前向反饋的,模型的輸出和模型本身沒有關聯關係。今天我們就討論另一類輸出和模型間有反饋的神經網路:迴圈神經網路(Recurrent Neural Networks ,以下簡稱RNN),它廣泛的用於自然語言處理中的語音

LSTM模型反向傳播演算法

    在迴圈神經網路(RNN)模型與前向反向傳播演算法中,我們總結了對RNN模型做了總結。由於RNN也有梯度消失的問題,因此很難處理長序列的資料,大牛們對RNN做了改進,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常規RNN的梯度消失,因此在工業界得到了廣泛的應用。

隱馬爾可夫模型學習筆記(一)前後演算法介紹推導

學習隱馬爾可夫模型(HMM),主要就是學習三個問題:概率計算問題,學習問題和預測問題。概率計算問題主要是講前向演算法和後向演算法,這兩個演算法可以說是隱馬爾可夫的重中之重,接下來會依次介紹以下內容。 隱馬爾可夫模型介紹 模型的假設 直接計演算法,前向演算法,後向演

實現屬於自己的TensorFlow(1)計算圖傳播

前段時間因為課題需要使用了一段時間TensorFlow,感覺這種框架很有意思,除了可以搭建複雜的神經網路,也可以優化其他自己需要的計算模型,所以一直想自己學習一下寫一個類似的圖計算框架。前幾天組會開完決定著手實現一個模仿TensorFlow介面的簡陋版本圖計算框架以學習計算圖程

隱馬爾科夫模型(HMMs)之五維特比演算法演算法

維特比演算法(Viterbi Algorithm) 找到可能性最大的隱藏序列 通常我們都有一個特定的HMM,然後根據一個可觀察序列去找到最可能生成這個可觀察序列的隱藏序列。 1.窮舉搜尋 我們可以在下圖中看到每個狀態和觀察的關係。 通過計算所有可能的隱藏序列的概率,