XGBoostからNGBoostまで
吉田知貴
システム本部AIシステム部データサイエンス第一グループ
株式会社ディー・エヌ・エー
自己紹介
● 吉田 知貴
○ 名古屋工業大学大学院 情報工学専攻 竹内・烏山研究室 出身
○ 2020年 DeNA入社
○ 趣味: 野鳥撮影
在学時代
● 機械学習の凸最適化の理論研究
○ KDD 2018 | Safe Triplet Screening for Distance Metric Learning
○ KDD 2019 | Learning Interpretable Metric between Graphs: Convex Formulation and Computation with Graph Mining
● 理論系のQiita記事
○ ラグランジュ双対問題について解説: https://qiita.com/birdwatcher/items/b23209f06177373c6df4
○ 機械学習の高速化手法Safe Screeningを解説: https://qiita.com/birdwatcher/items/6c3f86693f02762d05b9
2
目次
3
勾配ブースティング
XGBoost
LightGBM
1
3
CatBoost4
2
NGBoost5
その他6
①:勾配ブースティング
Friedmanによる元祖勾配ブースティング
4
勾配ブースティング
● 残差を埋めるように弱学習器を足していく
モデル (by Friedman)
○ 弱学習器として決定木がよく使われる
5Hands on Machine Learning with Scikit Learn and Tensorflowより
勾配ブースティングの歴史
● Friedmanの勾配ブースティング (1999)
○ 勾配ブースティング発案
近年...
● XGBoost (KDD2016)
○ 正則化, 定式化ベースでの導出, 実装上の工夫
● LightGBM (NIPS2017)
○ 高速化
● CatBoost (NIPS2018)
○ カテゴリ変数の扱い
● NGBoost (2019)
○ 不確かさを扱う
6
Friedmanの勾配ブースティング
7
The Elements of Statistical Learningより
サンプルに対する勾配
勾配を出力するような木を構築
葉の値は損失を下げるように
● 普通の勾配法に基づいた考え方
○ 勾配を決定木で表現して足していく
②:XGBoost
最近のベース手法
8
XGBoostの定式化
● 目的関数
○ 正則化項
9
葉の数 葉の値 (T次元ベクトル)
正則化係数
(葉の数抑制) 正則化係数
(1つの木の影響力抑制 )
一つ前の予測値
損失関数
サンプルに関する和
決定木
XGBoostの考え方 (1/3)
● 最適な葉の値wを求めるために
目的関数の2次近似: ft
に関して0の周りでテイラー展開
10
1次微分 2次微分
wにとって定数
XGBoostの考え方 (2/3)
● 定数除去
● fをwの値で陽に書き表すと...
● wの二次関数になった!!
○ 最適なwが求まる
11
正則化項Ω
葉 j にたどりつくサンプルたち
このとき
XGBoostの考え方 (3/3)
● 分岐時は, 次のスコアが最大になるような分割を探す
○ 最も目的関数(の近似)が下がる分岐を探していることに対応する
● Friedmanとぜんぜん違うように見える...?
○ XGBoostも式変形すると, Friedmanと同じように
(重み付き)勾配にフィットする木を作ることになっていることに注意
12
分岐前 分岐後 左の葉 右の葉 分岐前
XGBoostの工夫
● shirinkage η
○ 木を足すときに, 小さな η を掛ける
○ 小さい値ほど精度があがると言われている
(ESL, Firedman2001)
● feature subsampling
○ ランダムフォレストでも使われてますね
● 分岐時の工夫
○ Exact Greedy Algorithm
■ データをソートして, 順番に分割点を確認
○ Approximate Algorithm
■ 最初に, 特徴分布の分位数で分割の候補を決める
● 各木の作成の最も最初 (global) or 分岐のたびに (local)
■ 各サンプルをその分割された領域にマッピング& 集計しておく
● データのスパース性 (欠損, 0)を利用した高速化
○ デフォルトの分岐を与えておく
● その他システム設計の工夫: 並列化, キャッシュアクセス, ... 13
図:XGBoost論文より
XGBoostライブラリのパラメータ
14https://xgboost.readthedocs.io/en/latest/parameter.html より
③:LightGBM
Kaggleでよく使われる高速化された手法
15
LightGBM
● 高速化する工夫が入っている
○ Gradient-based One-Side Sampling (GOSS)
■ 小さい勾配を持つサンプルを除去
○ Exclusive Feature Bundling (EFB)
■ 排他的な特徴をまとめて扱う
● LightGBMはヒストグラムベース
○ XGBoostはオプションで選べた
16
LightGBMのGOSSについて
1. 勾配の絶対値のトップa × 100%を使う
2. 残りの(1-a) × 100%から, ランダムにb × 100%選ぶ
3. サンプリングされた勾配に (1-a) / b を掛けて, 増幅する
● 近似しない場合との差を不等式で抑えれる理論保証ある点が強い
○ 1-δの確率で...という不等式が示されている
17
LightGBMのライブラリ
● デフォルトでGOSSがOFF
● EFBはON
18https://lightgbm.readthedocs.io/en/latest/Parameters.html より
④:CatBoost
カテゴリ変数に強いが, 遅いのがネック
19
CatBoost
● ターゲットエンコーディングに基づく
○ カテゴリ変数を予測の平均値で置き換える
○ 論文内ではTS (Target Statistic)と呼ばれている
● リークを防ぎつつ, 全訓練データをTSと学習使う
● Ordered TS: (オンライン学習からインスパイアされた)
○ 訓練サンプルにランダムな順列σを導入
○ 各サンプルのカテゴリ値は, 順列σに従ってTSされる
○ 最初の方のサンプルは分散が大きいため, Boostingステップで異なる順列を使う
20
動物 y TS Ordered TS
猫 1 0.5 0
犬 1 2/3 0
鳥 1 1 0
猫 0 0.5 1
犬 0 2/3 1
犬 1 2/3 0.5
順列σ
CatBoost論文内で既存手法への指摘
● 勾配にフィットする木を作成するステップにおいて,
勾配の分布がテストデータと学習データでずれている!! (汎化性能に影響)
→モデルFt-1
の学習にxk
を使っているのが原因
21
勾配 決定木
CatBoostのもう一つの工夫
● Ordered Boosting
○ Ordered TSと同じような考え方
○ 先程の問題を解決するもの
○ ランダムな順列σに従い, 最初のiサンプルまでを使った学習済みモデルMi
とする
○ 計算量がかなり増える
22
サンプル6までを使用したモデル
サンプル7の残差計算に, サンプル7で学習したモデルを使って ない
図:CatBoost論文より
CatBoostのライブラリ
● Ordered Boostingは基本的にデフォルトでOFF
23https://catboost.ai/docs/concepts/python-reference_parameters-list.html より
⑤:NGBoost
不確かさを扱える手法
24
NGBoost
● 不確かさを扱える勾配ブースティング手法
○ 確率分布を返す
● 任意の弱学習器, 確率分布, スコア関数を使える
● 自然勾配を使って学習
25
https://stanfordmlgroup.github.io/projects/ngboost/ より
NGBoostの構成要素
● 弱学習器: f (m)
(x)
○ 決定木など
● 確率分布: Pθ
(y|x)
○ θはパラメータ
■ 正規分布なら θ = (μ, σ)
● スコア関数: S(Pθ
, y)
○ MLE (最尤推定), CRPS (Continuous Ranked Probability Score)など
26
弱学習器 確率分布 スコア関数
図:NGBoost論文より
スコア関数S
モデルが出力する分布Pθ
と観測データyから計算されるスコア (予測誤差)
● 負の対数尤度 (MLE, 最尤推定)
● Continuous Ranked Probability Score (CRPS)
27
一般化自然勾配
● 通常の勾配
○ dがユークリッド空間のノルム
● 一般化自然勾配
○ 分布Pθ
と分布Pθ+d
の離れ具合
○ DS
: ダイバージェンス
28
勾配と自然勾配の違い
● 正規分布における例
● 学習過程:https://stanfordmlgroup.github.io/projects/ngboost/
29
NGBoost論文より
NGBoostのアルゴリズム
30
NGBoost論文より
実験結果
● 分布を推定できる既存手法との比較
● 二乗平均平方根誤差 (RMSE), 負の対数尤度 (NLL)
○ 小さい方が良い
多くのデータセットで, NGBoostが良いスコア
31
https://stanfordmlgroup.github.io/projects/ngboost/ より
⑥:その他
いろんな活躍が期待される決定木ベースの手法たち
32
その他
木を連ねてニューラルネットに対抗しようとしている人たちがいる
● Deep Forest
● Multi-Layered Gradient Boosting Decision Tree
33
https://papers.nips.cc/paper/7614-multi-layered-gradient-boosting-decision-trees.pdf より

More Related Content

PDF
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
PDF
PRML Chapter 14
PDF
PDF
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
PDF
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
PDF
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
PDF
BlackBox モデルの説明性・解釈性技術の実装
PDF
合成変量とアンサンブル:回帰森と加法モデルの要点
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
PRML Chapter 14
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
BlackBox モデルの説明性・解釈性技術の実装
合成変量とアンサンブル:回帰森と加法モデルの要点

What's hot (20)

PPTX
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
PPTX
[DL輪読会]相互情報量最大化による表現学習
PDF
ドメイン適応の原理と応用
PDF
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
PDF
pymcとpystanでベイズ推定してみた話
PDF
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
PDF
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
PPTX
強化学習 DQNからPPOまで
PDF
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
PPTX
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
PDF
SSII2021 [OS2-03] 自己教師あり学習における対照学習の基礎と応用
PPTX
モデル高速化百選
PDF
[DL輪読会]`強化学習のための状態表現学習 -より良い「世界モデル」の獲得に向けて-
PDF
GAN(と強化学習との関係)
PDF
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
PPTX
強化学習アルゴリズムPPOの解説と実験
PDF
最適輸送の解き方
PDF
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
PDF
ブースティング入門
PPTX
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
[DL輪読会]相互情報量最大化による表現学習
ドメイン適応の原理と応用
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
pymcとpystanでベイズ推定してみた話
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
強化学習 DQNからPPOまで
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
SSII2021 [OS2-03] 自己教師あり学習における対照学習の基礎と応用
モデル高速化百選
[DL輪読会]`強化学習のための状態表現学習 -より良い「世界モデル」の獲得に向けて-
GAN(と強化学習との関係)
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
強化学習アルゴリズムPPOの解説と実験
最適輸送の解き方
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
ブースティング入門
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Ad

Similar to XGBoostからNGBoostまで (20)

PPTX
miru2020-200727021915200727021915200727021915200727021915.pptx
PPTX
GBDTアルゴリズムを比べてみる
PDF
Dive into XGBoost.pdf
PDF
LightGBM: a highly efficient gradient boosting decision tree
PPTX
Gradient Tree Boosting はいいぞ
PPTX
Xgboost for share
PPTX
0610 TECH & BRIDGE MEETING
PDF
Kaggleのテクニック
PDF
20170422 数学カフェ Part1
PDF
PRML 第14章
PDF
Jubatusにおける大規模分散オンライン機械学習
PDF
レコメンドアルゴリズムの基本と周辺知識と実装方法
PDF
多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)
PDF
それっぽく感じる機械学習
PDF
KDD2013読み会: Direct Optimization of Ranking Measures
PDF
SVM実践ガイド (A Practical Guide to Support Vector Classification)
PPTX
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
PPT
Lp Boost
PDF
SGD+α: 確率的勾配降下法の現在と未来
PDF
Jubatusの特徴変換と線形分類器の仕組み
miru2020-200727021915200727021915200727021915200727021915.pptx
GBDTアルゴリズムを比べてみる
Dive into XGBoost.pdf
LightGBM: a highly efficient gradient boosting decision tree
Gradient Tree Boosting はいいぞ
Xgboost for share
0610 TECH & BRIDGE MEETING
Kaggleのテクニック
20170422 数学カフェ Part1
PRML 第14章
Jubatusにおける大規模分散オンライン機械学習
レコメンドアルゴリズムの基本と周辺知識と実装方法
多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)
それっぽく感じる機械学習
KDD2013読み会: Direct Optimization of Ranking Measures
SVM実践ガイド (A Practical Guide to Support Vector Classification)
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
Lp Boost
SGD+α: 確率的勾配降下法の現在と未来
Jubatusの特徴変換と線形分類器の仕組み
Ad

XGBoostからNGBoostまで