1. 程式人生 > >從前向分步演算法推匯出AdaBoost

從前向分步演算法推匯出AdaBoost

前向分步演算法到AdaBoost

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

前向分步演算法 Forward Stagewise Additive Modeling

  1. 初始化f0(x)=0
  2. 對於m=1,2,...,M
    (a)
(βm,γm)=argminβ,γi=1NL(yi,fm1(xi)+βb(xi;γ))

(b)

fm(x)=fm1(x)+βmb(x;γm)

前向分步演算法的步驟如上,其實我覺得應該翻譯成前向分步累加模型

更適合。因為最終的決策函式f(x)是由一系列的基函式b(x;γm)與相應的權值βm累加起來的。前向分步指的是,最小化損失函式獲取第m步的βb(x;γ)時不影響之前已經獲取的引數γ與係數β

對於迴歸問題,前向分步演算法的損失函式可以選平方損失,即

L(yi,f(x))=(yif(x))2

所以有

L(yi,fm1(xi)+βb(xi;γ))=(yifm1(xi)βb(xi;γ))2=(rimβb(xi;γ))2

其中rim=(yifm1(xi)),這可以理解成是當前模型的殘差,為了獲取 βmb(x;γm),也就是令其去擬合當前模型的殘差。

而AdaBoost是個分類器,對於分類問題,平方損失就不太適合了。所以引入指數損失,即

L(y,f(x))=exp(yf(x))

基本的AdaBoost是一個二分類模型,令其基函式b(x;γ)=G(x),所以有Gm(x){1,1}
則在指數損失的基礎上,就需要解決如下問題

(βm,Gm)=argminβ,Gi=1Nexp[yi(fm1(xi)+βG(xi))]

w(m)i=exp(yifm1(xi)),則上述公式可以寫成

(βm,Gm)=argminβ,Gi=1

相關推薦

從前分步演算法匯出AdaBoost

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

分步演算法與提升樹模型

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

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

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

分步演算法(forward stagewise algorithm)

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

演算法筆記》12. 用暴力遞迴解法匯出動態規劃

[TOC] # 1 暴力遞迴到動態規劃 > 本篇是演算法基礎筆記的最後一篇,前面所記錄的和該篇共同覆蓋了平時刷題常用的資料結構和演算法,之後就是通過刷題量來鞏固所學的內容。接下來我準備針對基礎資料結構和演算法做一些刷題記錄,主要是分類別刷leetcode上的題,傳送門為:https://github.

SCCM 2016 客戶端送Endpoint Protection

雲計算 雲平臺 說道EndPoint Protect大家也許比較陌生,簡單來說,它是微軟提供的一套免費的企業級殺毒軟件。 大家可能在日常的企業中,可能會用到企業級的瑞星,ESET,卡巴斯基,趨勢的OfficeScan等等企業級的管理殺毒軟件,他們方便管理,功能齊全,但是企業級的價格昂貴,且很多軟件是按

Tensorflow實戰-前傳播演算法

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

小白Apriori演算法Python實現

  參考部落格:http://www.cnblogs.com/llhthinker/p/6719779.html      學習的別人的程式碼,用Python實現的Apriori演算法,演算法介紹見https://www.cnblogs.com/1113127139aaa/p/9926507.html

Java後臺蘋果APNS送文字,圖片,視訊功能

務虛廢話,直接來程式碼 方式一: 推送文字,百度Demo比較多,顯示以下程式碼:   try { //從客戶端獲取的deviceToken,在此為了測試簡單,寫固定的一個測試裝置標識。 String device

卷積神經網路之前傳播演算法

0.雜談 本來個人是準備畢業直接工作的,但前段時間學校保研大名單出來之後,發現本人有保研機會,於是就和主管請了幾天假,回學校準備保研的事情。經過兩天的準備,也是非常幸運,成功拿到本院的保研名額。明確得到保研名額的時候已經是9月18號,然而國家推免系統開放時間是9月28號,也就是說我只

無法從用法中匯出方法... 的型別實參,請嘗試顯式指定型別實參

這個問題,網上基本沒得什麼解決方法,其實都是程式設計習慣造成的,在程式的世界裡,使用者自己命名必須規範,唯一,與系統框架提供的物件名稱分開。否則將會產生很多,標題問題。以上問題,很多都是沒有確切 指定,多空間命名的時候,建立了多個一樣的物件名,而在統一地方使用物件,沒有明確

Microsoft Launcher 5.1 已經所有使用者

   微軟花了整整一個月的時間完成了Microsoft Launcher 5.1的測試,更新向所有使用者進行推送。這是Launcher將在2018年收到的最後一次重大且重要的更新。 在此版本中,現在可以通過專用的 Notes 訪問 Sticky Notes,因為 Micros

Docker初體驗,Docker Hub送第一個本地映象

一、註冊Docker Hub賬號 開啟Docker Hub網站,找到註冊選項,按照常規註冊流程進行註冊即可。需要注意的是,有時候可能需要進行人機識別驗證,這需要呼叫Google的驗證服務。眾所周知Google在國內的情況,需要自己想辦法搞定。如果人機

Adiantum 和 Streebog 開始用戶送,Linux 加密效能提升

   Linux 4.21 核心的加密子系統更新在今天早上推送。 在此次推送中,Adiantum作為 Google Speck 計劃的代替品。用於假幣在 CPU/Soc 上缺少原生加密擴充套件的低端 Android Go 裝置的資料加密。Adiantum 的表現超過了 Spec

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

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

機器學習筆記(七)Boost演算法(GDBT,AdaBoost,XGBoost)原理及實踐

在上一篇部落格裡,我們討論了關於Bagging的內容,其原理是從現有資料中有放回抽取若干個樣本構建分類器,重複若干次建立若干個分類器進行投票,今天我們來討論另一種演算法:提升(Boost)。 簡單地來

[微信公眾號]php版模擬登入,指定使用者送訊息

模擬登入程式碼: <?php /* 呼叫方式簡單說明: $arr = array( 'account' => '公眾平臺帳號', 'password' => '密碼' ); $postMsg = new postMsg($arr); $p

[微信公眾號]php版模擬登入,指定使用者送訊息目前

<?php /* 呼叫方式簡單說明: $arr = array( 'account' => '公眾平臺帳號', 'password' => '密碼' ); $postMsg = new postMsg($arr); $postMsg->getAllUserInfo()

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

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

box2d關於投影預瞄準的演算法演過程

首先, 自己程式很菜, 所以從最初的寫法到最終走了很多彎路, 網上的資料也比較少, 所以還是把想法分享出來 首先說一下前提背景, 我做的是一個球類的遊戲, 有個功能是預判短位置和虛擬路徑的顯示 1.用非box2d來手寫這個, 引擎當然就是自己寫的要你命三千, 各種問題次鞥