Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
0 勾配ブースティングについて調べてみた ~ XGBoostの理論 ~ 2023-08-25 第57回NearMe技術勉強会 Mio Takakuwa
Slide 2
Slide 2 text
1 目次 1. 勾配ブースティング木の概要 2. XGBoostの理論
Slide 3
Slide 3 text
2 勾配ブースティング決定木とは Gradient boosting decision tree(GBDT) 有名なフレームワーク ○ XGBoost (2014): eXtreme Gradient Boosting (全ての葉を分岐) ○ LightGBM(2016): Light Gradient Boosting Machine (情報利得が大きいものだけ分岐) 決定木 + アンサンブル学習 + 勾配降下法 https://lightgbm.readthedocs.io/en/stable/Features.html
Slide 4
Slide 4 text
3 Gradient boosting decision tree(GBDT)とは 特徴量:(例) ● 年齢:10才 ● 性別:女 ● 親の身長:160cm ● 健康状態:良好 ● 運動習慣:週2回 予測する値: 身長:136cm(実際) 決定木 性別 年齢<14 年齢<18 親の身長>178 推定値:130cm
Slide 5
Slide 5 text
4 Gradient boosting decision tree(GBDT)とは 特徴量:(例) ● 年齢:10才 ● 性別:女 ● 親の身長:160cm ● 健康状態:良好 ● 運動習慣:週2回 予測する値: 身長:136cm(実際) ランダムフォレスト 推定値:130cm 推定値:133cm 推定値:135cm 平均して... 推定値:133cm
Slide 6
Slide 6 text
5 Gradient boosting decision tree(GBDT)とは 特徴量:(例) ● 年齢:10才 ● 性別:女 ● 親の身長:160cm ● 健康状態:良好 ● 運動習慣:週2回 予測する値: 身長:136cm(実際) GBDT 推定値: 130cm 推定値: 135cm 正解はあと6cm 高いなー 推定値: 139cm 推定値: 136cm 正解はあと3cm 低いなー 当たった!
Slide 7
Slide 7 text
6 XGBoost:Gradient Tree Boosting
Slide 8
Slide 8 text
7 やりたいこと ・ ・ ・ t-1 個の モデル t 個目の モデル (作成済み) (作りたい) 精度の高い t-1 個のモデル(決定木)を用いて、 実際の値と予測値の差が小さくなるような t 個目のモデルを作りたい 方針: t 個目のモデル決定時の 損失関数(実際の値と予測値のズレ) をt-1 個のモデル等を用いて表現し、 最小化する ・ ・
Slide 9
Slide 9 text
8 ツリーモデルの定義 ツリーアンサンブルモデル ツリーアンサンブルモデル(予測値)の出力 記号 https://xgboost.readthedocs.io/en/stable/tutorials/model.html
Slide 10
Slide 10 text
9 ツリーモデルの定義 ツリーアンサンブルモデル(予測値)の出力(前頁) 葉の index 1 2 3 4 葉の 出力値 w 1 w 2 w 3 ω 4 input x 0 qとωのイメージ output index:3 出力値:ω 3 ex. 記号
Slide 11
Slide 11 text
10 損失関数 λ=0なら従来の 勾配ブースティングと 同じらしい...
Slide 12
Slide 12 text
11 やりたいこと ・ ・ ・ t-1 個の モデル t 個目の モデル (作成済み) (作りたい) 精度の高い t-1 個のモデル(決定木)を用いて、 実際の値と予測値の差が小さくなるような t 個目のモデルを作りたい 方針: t 個目のモデル決定時の 損失関数(実際の値と予測値のズレ) をt-1 個のモデル等を用いて表現し、 最小化する ・ ・ ・
Slide 13
Slide 13 text
12 t個目の損失関数の最小化 1項目に関して、2次のテイラー展開をすると、 ここで次のように表記する (決定木)を調節して、 損失関数を小さくしたい
Slide 14
Slide 14 text
13 t個目の損失関数の最小化 定数項は最小化に関係ないので無視 損失関数の定義 テイラー展開 (前ページ最後の式) この式の最小化のため、式を変形していく 決定木 葉の出力値
Slide 15
Slide 15 text
14 t個目の損失関数の最小化 葉のindex (j) 1 2 3 4 データの集合 I 1 I 2 I 3 I 4 葉の出力値 葉のindexがjの葉に入っているデータの集合を とする ex. 3番目の葉に x 2 ,x 5 , x 6 が 入っているなら、 I 3 = {2, 5, 6} ‥T ‥ x 1 ,x 3 x 4 x 7 ,x 9 x 12 x 2 ,x 5 x 6 x 8 ,x 10 x 11 x 1 ~ x 12
Slide 16
Slide 16 text
15 t個目の損失関数の最小化 全データ一度に足しあげる ↓ 葉の中の和を出した後、 それぞれを足す ツリーアンサンブル モデルの定義 葉の出力値の2乗和
Slide 17
Slide 17 text
16 のg i , h i は, (損失関数の1, 2次の勾配) t-1 個の決定木の結果(予測値)と実際の値から計算可能 t個目の損失関数の最小化 損失関数を最小にする t 個目の決定木の葉j が返すべき結果
Slide 18
Slide 18 text
17 XGBoostのGBDT | やりたいこと ・ ・ ・ t-1 個の モデル t 個目の モデル (作成済み) (作りたい) 精度の高い t-1 個のモデル(決定木)を用いて、 実際の値と予測値の差が小さくなるような t 個目のモデルを作りたい ・ ・ 木の構造q(x)が固定の場合: XGBoostの最適解の近似値
Slide 19
Slide 19 text
18 参考文献 ● LightGBM documentation: https://lightgbm.readthedocs.io/en/stable/ ● LightGBMの論文:Guolin Ke et al., “LightGBM: a highly efficient gradient boosting decision tree”, 2017, (https://dl.acm.org/doi/10.5555/3294996.3295074) ● XGBoostのdocumentation: https://xgboost.readthedocs.io/en/stable/tutorials/model.html ● XGBoostの論文:Tianqi Chen et al. “XGBoost: A Scalable Tree Boosting System” https://arxiv.org/abs/1603.02754 ● 参考になる記事 ○ https://kefism.hatenablog.com/entry/2017/06/11/182959 ○ https://qiita.com/kenmatsu4/items/226f926d87de86c28089 ○ https://qiita.com/triwave33/items/aad60f25485a4595b5c8
Slide 20
Slide 20 text
19 Thank you