第八章-提升方法AdaBoost算法

在2019年9月16日11晚,Jay Chou開始發佈了他的新歌說好不哭的時候,不到12個小時,售出量就已經達到了500萬,還導致了QQ音樂系統癱瘓,這充分看出周董的高流量人氣,當然,作爲90後的我也是其中粉絲之一。這告訴我們的是,無論做什麼,紮實的基礎很重要的,如果周董沒有紮實的音樂基礎(PS:當然,也不否認他在音樂方面也具備一定的天賦),他也不會在經過這麼長時間後重發表新歌時再次受到很多的粉絲的喜愛,記得小時候就特別喜歡周董的歌曲,一直到現在,仍然如此。哈哈,可能有些扯遠了,但是通過這件事情,我自己也有些思考。作爲IT圈的研究者而言,站在周董的層面思考,帶給我的是,在你想實現或者完成某件事情的時候,你需要在前期打下紮實的基礎,不斷地往前走;站在研發角度來看,對於QQ音樂的系統架構設計者,在設計之初,肯定沒想到有這麼一天,當用戶流量達到這個級別時,QQ音樂系統會承受不了,當然這也是騰訊QQ音樂負責人始料未及的。但是對於這些類似的事情,在微博的身上同樣也出現類似的情況。這背後的思考就是對於這些平臺類的系統不僅具備高穩定性等幾個高要求,還需要具備一定承受壓力的能力,這也表示平臺類的軟件開發需要逐步走向自適應化、智能化。

講述了這麼多,咱們繼續來"砌牆"——總結一些提升方法的算法以及相關推導。

相關概念

  • **弱可學習:**可以找到一個方法,用這個方法預測輸出變量,對於分類問題,會比隨機猜測的效果略好。
  • **強可學習:**可以學習的效果很好。
  • **PAC學習框架:**在第1章講的泛化誤差上界的定理,也就是說,可以用一個訓練誤差和一個小的參數以一定的概率控制泛化誤差。
  • **提升方法的基本思路:**如果能找到一個弱可學習算法,那就可以將該算法提升爲強可學習算法。

提升方法屬於集成學習中的一種,集成學習就是用一些比較簡單的模型,將它們綜合起來構成一個複雜的模型。
  集成學習兩個主要類別:序列方法、並行方法

  • **序列方法:**當我們學到一個模型,再學下一個模型時,下一個模型依賴上一個模型的結果。
  • **並行方法:**可以同時學很多模型,這些模型之間不會相互影響。

AdaBoost算法

AdaBoost算法是一個非常重要的序列方法,提出得比較早,具有很強的理論支撐;之後就是提升樹,AdaBoost主要解決二分類問題,提升樹分爲迴歸樹提升方法分類樹提升方法,既可以用分類樹提升方法解決多分類問題,也可以用迴歸樹提升方法解決迴歸問題(當輸出變量是連續變量時,該問題稱爲迴歸問題)。

模型

AdaBoost實質上是一種加法模型
T=(x1,y1),(x2,y2),,(xN,yN)xiXRn,yiY=1,+1G(x)(1)D1=(w11,,w1i,,w1N),w1i=1N,i=1,2,,N(2)m=1,2,,M(a)使DmGm(x):X1,+1(b)Gm(x)em=i=1NP(Gm(xi)yi)=i=1NwmiI(Gm(xi)yi)(c)Gm(x)αm=12ln1emem(d)Dm+1=(wm+1,1,,wm+1,i,,wm+1,N)wm+1,i=wmiZmexp(αmyiGm(xi)),i=1,2,,NZmZm=i=1Nwmiexp(αmyiGm(xi))使Dm+1(3)f(x)=m=1MαmGm(x)G(x)=sign(f(x))=sign(m=1MαmGm(x)) 輸入:訓練數據集T={(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)},其中x_i \in \mathcal{X} \\ \subseteq \textbf{R}^n, y_i \in \mathcal{Y} = {-1, +1};弱學習算法;\\ 輸出:最終分類器G(x)。\\ (1)初始化訓練數據的權值分佈D_1 = (w_{11},\cdots,w_{1i},\cdots,w_{1N}), \quad w_{1i}=\frac{1}{N}, \quad i = 1, 2, \cdots, N \\ (2)對m=1,2,\cdots,M表示學習每個小分類器的過程。\\(a)使用具有權值分佈D_m的訓練數據集學習,得到基本分類器G_m(x):\mathcal{X} \rightarrow {-1,+1} \\ (b)計算G_m(x)在訓練數據集上的分類誤差率。 \\ \displaystyle e_m=\sum_{i=1}^N P(G_m(x_i) \neq y_i)=\sum_{i=1}^N w_{mi}I(G_m(x_i) \neq y_i)\\ (c)計算G_m(x)的係數。 \\ \alpha_m=\frac{1}{2} \ln \frac{1-e_m}{e_m} \\ (d)更新訓練數據集的權值分佈。\\ D_{m+1}=(w_{m+1,1},\cdots,w_{m+1,i},\cdots,w_{m+1,N}) \\ w_{m+1,i}=\frac{w_{mi}}{Z_m}\exp (-\alpha_m y_i G_m(x_i)), \quad i=1, 2, \cdots, \\ N 其中,Z_m是規範化因子\displaystyle Z_m=\sum_{i=1}^N w_{mi} \exp(-\alpha_m y_i G_m(x_i)) 它使D_{m+1}成爲一個概率分佈。\\ (3)構建基本分類器的線性組合。\\ \displaystyle f(x)=\sum_{m=1}^M \alpha_m G_m(x) 得到最終分類器\displaystyle G(x)=\text{sign}(f(x))=\text{sign}\Big( \sum_{m=1}^M \alpha_m G_m(x) \Big)

策略——訓練誤差分析

AdaBoostL(y,f(x))=exp[yf(x)]y1,+1,f(x)1,+1y=f(x)yf(x)=1e1yf(x)e使 AdaBoost的損失函數是一個指數函數L(y,f(x))=\exp[-yf(x)],二分類中y \in {-1, +1}, f(x) \in {-1, +1},\\如果預測值等於真實值(預測正確即y=f(x)),yf(x)=1,損失爲e^{-1},\\如果不相等(預測錯誤即y \neq f(x)),損失爲e,這個與我們平常看到的損失不一致,這裏即使預測正確,\\也是有損失的,預測錯誤比預測正確的損失大。

AdaBoost最基本的性質是能在學習過程中不斷減少訓練誤差,即在訓練數據集上的分類誤差率。對於以上的定理有相關的推導。

數學推導

1.AdaBoostAdaBoost:1Ni=1NI(G(xi)yi)1Niexp(yif(xi))=mZm 定理1. (AdaBoost的訓練誤差界)AdaBoost算法最終分類器的訓練誤差界爲:\\ \frac{1}{N}\sum_{i=1}^N I(G(x_i) \neq y_i) \leqslant \frac{1}{N} \sum_i \exp(-y_i f(x_i)) = \prod_m Z_m\\

證明過程:
I(G(xi)yi)=0exp(yif(xi))=e1I(G(xi)yi)=1exp(yif(xi))=e1I(G(xi)yi)exp(yif(xi))1Ni=1NI(G(xi)yi)1Niexp(yif(xi))1Niexp(yif(xi))=mZmZm=iwmiexp(αmyiGm(xi)) wm+1,i=wmiZmexp(αmyiGm(xi))Zmwm+1,i=wmiexp(αmyiGm(xi)):Z1w2,i=w1,iexp(α1yiG1(xi))Z2w3,i=w2,iexp(α2yiG2(xi))ZM1wM,i=wM1,iexp(αM1yiGM1(xi)) m=1M1ZmwM,i=w1,iexp(yim=1M1αmGmxi)1Niexp(yif(xi))=m=1MZmf(xi)=m=1MαmGm(xi)exp(αMyiGM(xi))w1,i=1Nm=1M1ZmwM,iexp(αMyiGM(xi))=1Nexp(yif(xi))m=1M1ZmiwM,iexp(αMyiGM(xi))=1Niexp(yif(xi))ZM=iwM,iexp(αMyiGM(xi))m=1M1ZmZM=1Niexp(yif(xi))m=1MZm=1Niexp(yif(xi)).ZmZmZm=iwmiexp(αmyiGm(xi))wmiGmwmi,GmαmZmαm=argminαmZmZmαm=i(wmiyiGm(xi)exp(αmyiGm(xi)))αm=12ln1emem 對於正確分類點,I(G(x_i) \neq y_i) = 0 \leqslant \exp (-y_i f(x_i)) = e^{-1},\\ 對於誤分類點,I(G(x_i) \neq y_i) = 1 \leqslant \exp (-y_i f(x_i)) = e^1,所以可得I(G(x_i) \neq y_i) \leqslant \exp (-y_i f(x_i)),\\故\displaystyle \frac{1}{N}\sum_{i=1}^N I(G(x_i) \neq y_i) \leqslant \frac{1}{N} \sum_i \exp(-y_i f(x_i))成立。\\ 現證明\displaystyle \frac{1}{N} \sum_i \exp(-y_i f(x_i)) = \prod_m Z_m:\\ \displaystyle \because Z_m=\sum_i w_{mi} \exp(-\alpha_m y_i G_m(x_i)) \ \displaystyle \quad w_{m+1,i}=\frac{w_{mi}}{Z_m} \exp(-\alpha_m y_i G_m(x_i))\\ \therefore Z_m \cdot w_{m+1,i} = w_{mi} \exp(-\alpha_m y_i G_m(x_i))\\ 即:\begin{array}{rl} Z_1 \cdot w_{2,i} = & w_{1,i} \exp(-\alpha_1 y_i G_1(x_i)) \\ Z_2 \cdot w_{3,i} = & w_{2,i} \exp(-\alpha_2 y_i G_2(x_i)) \\ \vdots & \\ Z_{M-1} \cdot w_{M,i} = & w_{M-1,i} \exp(-\alpha_{M-1} y_i G_{M-1}(x_i)) \ \end{array}\\ 因此將上述各式都相乘,相同的項可以約去,得到:\\ \displaystyle \prod_{m=1}^{M-1} Z_m w_{M,i} = w_{1,i} \exp(-y_i \sum_{m=1}^{M-1} \alpha_m G_m{x_i})\\ 對比要證明的等式\displaystyle \frac{1}{N} \sum_i \exp(-y_i f(x_i)) = \prod_{m=1}^M Z_m,其中f(x_i)=\sum_{m=1}^M \alpha_m G_m(x_i)\\ 左右兩邊都乘以\exp(-\alpha_M y_i G_M(x_i))\\ \displaystyle \because w_{1,i}=\frac{1}{N}\\ \displaystyle \therefore \prod_{m=1}^{M-1} Z_m w_{M,i} \cdot \exp(-\alpha_M y_i G_M(x_i)) = \frac{1}{N} \exp(-y_i f(x_i)) \\ 由於最終得到的是關於整個數據集的,所以需要兩邊求和。\\ \displaystyle \therefore \prod_{m=1}^{M-1} Z_m \sum_i w_{M,i} \exp(-\alpha_M y_i G_M(x_i)) = \frac{1}{N} \sum_i \exp(-y_i f(x_i))\\ \because Z_M=\sum_i w_{M,i} \exp(-\alpha_M y_i G_M(x_i))\\ \displaystyle \therefore \prod_{m=1}^{M-1} Z_m \cdot Z_M = \frac{1}{N} \sum_i \exp(-y_i f(x_i)) \\ \displaystyle \therefore \prod_{m=1}^{M} Z_m = \frac{1}{N} \sum_i \exp(-y_i f(x_i)),得證.\\ 定理的直觀理解:訓練誤差可以被Z_m的連乘控制住,如果要訓練誤差小,就只要最小化\\每一個Z_m,\displaystyle Z_m=\sum_i w_{mi} \exp(-\alpha_m y_i G_m(x_i)),w_{mi}是通過上一輪訓練得到的,\\G_m是本輪已經訓練得到的,所以已知w_{mi},G_m,求解的是\alpha_m,\\通過最小化Z_m求解\alpha_m= \mathop{\arg \min} \limits_{\alpha_m} Z_m。\\ \displaystyle \frac{\partial Z_m}{\partial \alpha_m} = \sum_i \Big( -w_{mi} y_i G_m(x_i) \exp(-\alpha_m y_i G_m(x_i)) \Big)\\ 即:\displaystyle \alpha_m=\frac{1}{2} \ln \frac{1-e_m}{e_m}

2.AdaBoostm=1MZm=m=1M[2em(1em)]=m=1M(14γm2)exp(2m=1Mγm2)γm=12ememγm12γmγmexp(2m=1Mγm2) 定理2. (二類分類問題AdaBoost的訓練誤差界)\\ \prod_{m=1}^M Z_m = \prod_{m=1}^M [2 \sqrt{e_m(1-e_m)}] = \prod_{m=1}^M \sqrt{(1-4\gamma_m^2)} \leqslant \exp \big( -2 \sum_{m=1}^M \gamma_m^2 \big),\\其中,\displaystyle \gamma_m = \frac{1}{2}-e_m \\   e_m越小,說明當前分類器效果越好,\gamma_m越大,\frac{1}{2}可以看做是分類問題中,隨機猜測分類結果的最大誤差率。\\ \gamma_m可以解釋成當前的基本分類器對於隨機猜測結果的提升程度。提升程度越大,\gamma_m越大,\\上界\displaystyle \exp \big( -2 \sum_{m=1}^M \gamma_m^2 \big)就越小,訓練誤差隨着迭代次數的增加而越小,\\減小的速度是以指數速度變小的,也就是說,訓練次數增多的時候,訓練誤差降低的速度會變快。
證明過程:
Zm=i=1Nwmiexp(αmyiGm(xi))=yi=Gm(xi)wmieαm+yiGm(xi)wmieαmem=Gm(xi)yiwmi,αm=12ln1ememyi=Gm(xi)wmieαm+yiGm(xi)wmieαm=(1em)eαm+emeαmeαm=em1em,eαm=1emem(1em)eαm+emeαm=2em(1em)Zm=2em(1em)γm=12em2em(1em)=14γm2m=1MZm=m=1M[2em(1em)]=m=1M(14γm2)m=1M(14γm2)exp(2m=1Mγm2)ex1xx=0(14γ2)exp(2γ2)f(x)=1x=(1x)12f(x)=12(1x)12f(x)=14(1x)32f(x)x=0:f(x)=f(0)+xf(0)+12xf(0)+ =112x18x2+f(4γ2)12γ22γ4g(x)=exg(x)=ex g(x)=exg(x)x=0g(x)=g(0)+xg(0)+12x2g(0)+ =1+x+12x2+g(2γ2)12γ2+2γ4f(4γ2)=(14γ2)12γ22γ4g(2γ2)=exp(2γ2)12γ2+2γ4γm=12emγm[0,12]0g(2γ2)f(4γ2)12γ22γ412γ2+2γ4f(4γ2)g(2γ2)12γ22γ412γ2+2γ4f(4γ2)g(2γ2)m=1M(14γm2)exp(2m=1Mγm2). \begin{aligned} Z_m =& \sum_{i=1}^N w_{mi} \exp(-\alpha_m y_i G_m(x_i)) \\ =&\sum_{y_i=G_m(x_i) w_{mi} e^{-\alpha_m}} + \sum_{y_i \neq G_m(x_i) w_{mi} e^{\alpha_m}} \end{aligned}\\ \displaystyle \because e_m=\sum_{G_m(x_i) \neq y_i} w_{mi}, \alpha_m=\frac{1}{2} \ln \frac{1-e_m}{e_m}\\ \displaystyle \therefore \sum_{y_i=G_m(x_i) w_{mi} e^{-\alpha_m}} + \sum_{y_i \neq G_m(x_i) w_{mi} e^{\alpha_m}} = (1-e_m)e^{-\alpha_m} + e_m e^{\alpha_m} \\ \displaystyle \because e^{-\alpha_m} = \sqrt{\frac{e_m}{1-e_m}}, e^{\alpha_m} = \sqrt{\frac{1-e_m}{e_m}}\\ \displaystyle \therefore (1-e_m)e^{-\alpha_m} + e_m e^{\alpha_m} = 2 \sqrt{e_m (1- e_m)} \therefore Z_m = 2 \sqrt{e_m (1- e_m)} \\ \displaystyle \because \gamma_m = \frac{1}{2} - e_m \\ \therefore 2 \sqrt{e_m (1- e_m)} = \sqrt{1-4 \gamma_m^2} \\ \displaystyle \therefore \prod_{m=1}^M Z_m = \prod_{m=1}^M [2 \sqrt{e_m(1-e_m)}] = \prod_{m=1}^M \sqrt{(1-4\gamma_m^2)}\\ 再考慮\displaystyle \prod_{m=1}^M \sqrt{(1-4 \gamma_m^2)} \leqslant \exp \big( -2 \sum_{m=1}^M \gamma_m^2 \big)\\ 由e^x和\sqrt{1-x}在點x=0的泰勒展開式推導,泰勒展開是用一個多項式逼近任意一個函數。\\ 考察\sqrt{(1-4 \gamma^2)} \leqslant \exp( -2 \gamma^2)\\ \displaystyle f(x)=\sqrt{1-x}=(1-x)^{\frac{1}{2}} \\ \displaystyle f'(x) = -\frac{1}{2}(1-x)^{-\frac{1}{2}} \\ \displaystyle f''(x) = -\frac{1}{4}(1-x)^{-\frac{3}{2}}\\ f(x)在x=0處的二階泰勒展開爲:\\ \begin{aligned} f(x) &= f(0) + xf'(0) + \frac{1}{2} xf''(0) + \cdots \ \\&= 1 - \frac{1}{2} x - \frac{1}{8} x^2 + \cdots \end{aligned} \\ \therefore f(4 \gamma^2) \approx 1 - 2 \gamma^2 - 2 \gamma^4 g(x) = e^x \\ g'(x) = e^x \ g''(x) = e^x\\ g(x)在x=0處的二階泰勒展開爲:\\ \begin{aligned} g(x) &= g(0) + x g'(0) + \frac{1}{2} x^2 g''(0) + \cdots \ \\&= 1 + x + \frac{1}{2} x^2 + \cdots \end{aligned} \\ \therefore g(-2 \gamma^2) \approx 1 - 2 \gamma^2 + 2 \gamma^4 \\ \therefore \begin{array}{l} f(4 \gamma^2) = \sqrt{(1-4 \gamma^2)} \approx 1 - 2 \gamma^2 - 2 \gamma^4 \\ g(-2 \gamma^2) = \exp( -2 \gamma^2) \approx 1 - 2 \gamma^2 + 2 \gamma^4 \end{array} \\ \displaystyle \because \gamma_m = \frac{1}{2} - e_m ,\gamma_m的取值範圍是\displaystyle [0,\frac{1}{2}]\\ 所以當更高階次方出現的時候,後面的高階項趨近於0,那麼影響g(-2 \gamma^2)和f(4 \gamma^2)關係的只有前面的項,\\判斷1 - 2 \gamma^2 - 2 \gamma^4和1 - 2 \gamma^2 + 2 \gamma^4 的大小,等同於判斷f(4 \gamma^2)和g(-2 \gamma^2)的大小。\\ \because 1 - 2 \gamma^2 - 2 \gamma^4 \leqslant 1 - 2 \gamma^2 + 2 \gamma^4\\ \therefore f(4 \gamma^2) \leqslant g(-2 \gamma^2) \\ \displaystyle \therefore \prod_{m=1}^M \sqrt{(1-4 \gamma_m^2)} \leqslant \exp \big( -2 \sum_{m=1}^M \gamma_m^2 \big) ,得證.

算法——前向算法

有了模型和策略,當擬合加法模型時,需要求解很多的參數,有一個比較簡單的算法(前向分步算法)。

T=(x1,y1),(x2,y2),,(xN,yN)L(y,f(x))b(x;γ);f(x)(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)(3)f(x)=fM(x)=m=1Mβmb(x;γm)m=1Mβm,γmβm,γm 輸入:訓練數據集T={(x_1,y_1),(x_2,y_2),\cdots, (x_N,y_N)},損失函數L(y,f(x)),基函數集{b(x;\gamma)};\\ 輸出:加法模型f(x)。\\ (1)初始化f_0(x)=0。\\ (2)對m=1,2,\cdots,M。\\ (a)極小化損失函數。(\beta_m, \gamma_m) = \mathop{\arg \min} \limits_{\beta,\gamma} \sum_{i=1}^N L(y_i, f_{m-1}(x_i) + \beta b(x_i;\gamma))。\\ (b)更新f_m(x)=f_{m-1}(x) + \beta_m b(x;\gamma_m)。\\ (3)得到加法模型f(x)=f_M(x)=\sum_{m=1}^M \beta_m b(x;\gamma_m)。\\ 這樣,前向分步算法將同時求解從m=1到M所有參數\beta_m,\gamma_m的優化問題簡化爲\\逐次求解各個\beta_m, \gamma_m的優化問題。

提升樹

提升樹與AdaBoost算法的思路是非常像的,也是考慮一個加法模型,AdaBoost算法中沒有規定所用的分類器,提升樹中,基本分類器爲分類樹或迴歸樹(分類樹用來做分類問題,迴歸樹用來做迴歸問題),所用的算法依然是前向分步算法。對於分類樹的提升樹,如果是二分類問題,該算法和AdaBoost算法是等價的。

​ 假如不用平方誤差損失,換成其他的損失函數時,殘差不太好計算。梯度提升算法依然採用擬合每一個訓練數據,由於不是採用平方誤差損失,之前用殘差擬合下一棵樹的方法就不適用了,此時提出梯度提升算法。
T=(x1,y1),(x2,y2),,(xN,yN),xXRn,yYRL(y,f(x))f^(x)(1)f0(x)=argminci=1NL(yi,c)(2)m=1,2,,M(a)i=1,2,,Nrmi=[L(yi,f(xi))f(xi)]f(x)=fm1(x)(b)rmimRmj,j=1,2,,J(c)j=1,2,,Jcmj=argmincxiRmjL(yi,fm1(xi)+c)(d)fm(x)=fm1(x)+j=1JcmiI(xRmj)(3)f^(x)=fM(x)=m=1Mj=1JcmjI(xRmj)rmirmif(x)rmiΘmΘmRmj,j=1,2,,Jcmj ***梯度提升算法*** \\ 輸入:訓練數據集T={(x_1,y_1),(x_2,y_2), \cdots, (x_N,y_N)}, x \in \mathcal{X} \subseteq \text{R}^n, y \in \mathcal{Y} \subseteq \text{R},損失函數L(y,f(x))\\ 輸出:迴歸樹\hat{f}(x)。\\ (1)初始化。 \displaystyle f_0(x)= \mathop{\arg \min} \limits_{c} \sum_{i=1}^N L(y_i, c)\\ (2)對m=1,2,\cdots,M (a)對i=1,2,\cdots,N,計算r_{mi}=-\big[\frac{\partial L(y_i, f(x_i))}{\partial f(x_i)} \big]{f(x)=f_{m-1}(x)} \\ (b)對r_{mi}擬合一個迴歸樹,得到第m棵樹的葉結點區域\text{R}_{mj},j=1,2,\cdots,J\\ (c)對j=1,2,\cdots,J,計算c_{mj}=\mathop{\arg \min} \limits_{c} \sum_{x_i \in \text{R}{mj}} L(y_i, f{m-1}(x_i) + c)\\ (d)更新。\displaystyle f_m(x)=f_{m-1}(x) + \sum_{j=1}^J c_{mi} I(x \in R_{mj})\\ (3)得到迴歸樹。\hat{f}(x) = f_M(x)=\sum_{m=1}^M \sum_{j=1}^J c_{mj}I(x \in R_{mj})\\ **在算法中,依然是需要一個類似與殘差的變量,該值(r_{mi})是用負梯度計算的,\\r_{mi}是損失函數關於f(x)的負梯度,然後用r_{mi}擬合新的迴歸樹,一般情況下是求解\Theta_m,\Theta_m包含兩個部分:\\空間上的劃分\text{R}_{mj},j=1,2,\cdots,J和擬合值c_{mj}。

問題思考

1.在提升算法中,爲什麼可以用負梯度近似代替殘差?

L(yi,f(xi))=[yif(xi)]2L(yi,f(xi))f(xi)=(2[yif(xi)])=2[yif(xi)]=rmi2(c)yif(x)c 答:假設L(y_i,f(x_i))=[y_i-f(x_i)]^2,則\displaystyle -\frac{\partial L(y_i, f(x_i))}{\partial f(x_i)} = -(-2[y_i-f(x_i)]) = 2[y_i-f(x_i)] = r_{mi},\\推廣用到的是一階泰勒展開的近似,從平方損失的例子中可以看到,用負梯度確實可以代替殘差。\\但是在推導的過程中,可以看到前面有一個係數2,所以負梯度只是殘差的代替,並不能等同於殘差。\\這也就是爲什麼在(c)步中要根據原始的y_i和f(x)的形式求解c

2.計算殘差時,爲什麼只能通過殘差求解Rmj,還需要重新計算嗎?

RmjjxiRmjxiRmjyifm1(xi)mRmjcfm1(xi)+ccfm(xi)+cRmjfm(xi)Jmcfm(x)=fm1(x)+j=1JcmjI(xRmj)indicatorfunction1RmjI(xRmj)=1fm(x)cmJcmj1(3)M,JM 答:由於已經確定了每一個葉子結點區域\text{R}_{mj},對於每一個葉子結點j,只需考慮該葉子結點,而不需要考慮\\其他的葉子結點,當求這一個葉子結點(即求分到這個葉子結點的樣本點x_i \in \text{R}_{mj})中的樣本點x_i,\\求這些點的經驗損失和(\text{R}_{mj}上對應樣本點的經驗風險),真實值爲y_i,擬合值爲f_{m-1}(x_i)再加第m步中得到的數,\\此處只關心\text{R}_{mj}區域中的葉子結點部分,對這個葉子結點,新得到的這個數(擬合值)爲c,所以整體的擬合值爲\\f_{m-1}(x_i)+c。\\ 通過經驗風險最小,求得這個葉子結點上那棵新樹對應的c值,f_m(x_i)+c表示爲在\text{R}_{mj}區域範圍的樣本點的\\擬合值f_m(x_i)。所以對於一個新的迴歸樹,已經求了J(第m棵樹中葉子結點的個數)個這樣的c,更新的形式爲\\\displaystyle f_m(x)=f{m-1}(x)+ \sum_{j=1}^J c_{mj} I(x \in \text{R}_{mj}),對於每個樣本點,只在其中的一個指示函數(indicator function)\\中等於1,因爲只能屬於其中的一個\text{R}_{mj},當I(x \in \text{R}_{mj})=1時,累積求和。對於每一棵樹f_m(x),都有一個c_m,\\對每一棵樹上,又劃分了J個區域,所以擬合值爲c_{mj}。對於每一個樣本點,在每一棵樹上,\\都只有一個指示函數爲1。雖然(3)步求和是M,J,但是最後求解時,只有M項的和。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章