Upgrade to Pro — share decks privately, control downloads, hide ads and more …

勾配ブースティングについて調べてみた ~XGBoostの理論~

勾配ブースティングについて調べてみた ~XGBoostの理論~

Transcript

  1. 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
  2. 3 Gradient boosting decision tree(GBDT)とは 特徴量:(例) • 年齢:10才 • 性別:女

    • 親の身長:160cm • 健康状態:良好 • 運動習慣:週2回 予測する値: 身長:136cm(実際) 決定木 性別 年齢<14 年齢<18 親の身長>178 推定値:130cm
  3. 4 Gradient boosting decision tree(GBDT)とは 特徴量:(例) • 年齢:10才 • 性別:女

    • 親の身長:160cm • 健康状態:良好 • 運動習慣:週2回 予測する値: 身長:136cm(実際) ランダムフォレスト 推定値:130cm 推定値:133cm 推定値:135cm 平均して... 推定値:133cm
  4. 5 Gradient boosting decision tree(GBDT)とは 特徴量:(例) • 年齢:10才 • 性別:女

    • 親の身長:160cm • 健康状態:良好 • 運動習慣:週2回 予測する値: 身長:136cm(実際) GBDT 推定値: 130cm 推定値: 135cm 正解はあと6cm 高いなー 推定値: 139cm 推定値: 136cm 正解はあと3cm 低いなー 当たった!
  5. 7 やりたいこと ・ ・ ・ t-1 個の モデル t 個目の

    モデル (作成済み) (作りたい) 精度の高い t-1 個のモデル(決定木)を用いて、 実際の値と予測値の差が小さくなるような t 個目のモデルを作りたい 方針: t 個目のモデル決定時の 損失関数(実際の値と予測値のズレ) をt-1 個のモデル等を用いて表現し、 最小化する ・ ・
  6. 9 ツリーモデルの定義 ツリーアンサンブルモデル(予測値)の出力(前頁) 葉の index 1 2 3 4 葉の

    出力値 w 1 w 2 w 3 ω 4 input x 0   qとωのイメージ output index:3 出力値:ω 3 ex. 記号
  7. 11 やりたいこと ・ ・ ・ t-1 個の モデル t 個目の

    モデル (作成済み) (作りたい) 精度の高い t-1 個のモデル(決定木)を用いて、 実際の値と予測値の差が小さくなるような t 個目のモデルを作りたい 方針: t 個目のモデル決定時の 損失関数(実際の値と予測値のズレ) をt-1 個のモデル等を用いて表現し、 最小化する ・ ・ ・
  8. 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
  9. 16 のg i , h i は, (損失関数の1, 2次の勾配) t-1

    個の決定木の結果(予測値)と実際の値から計算可能 t個目の損失関数の最小化 損失関数を最小にする t 個目の決定木の葉j が返すべき結果
  10. 17 XGBoostのGBDT | やりたいこと ・ ・ ・ t-1 個の モデル

    t 個目の モデル (作成済み) (作りたい) 精度の高い t-1 個のモデル(決定木)を用いて、 実際の値と予測値の差が小さくなるような t 個目のモデルを作りたい ・ ・ 木の構造q(x)が固定の場合: XGBoostの最適解の近似値
  11. 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