和風ましらに

機械学習とか勉強したことを書き認めるブログ

機械学習 ~LightGBMの紹介~

LightGBMとは、2017年にMicrosoftから出された機械学習アルゴリズムこちらの論文に詳細は記載されている。

LightGBM 論文中では、LightGBMのことを以下のように紹介してる

We call our new GBDT implementation with GOSS and EFB LightGBM.Our experiments on multiple public datasets show that, LightGBM speeds up the training process of conventional GBDT by up to over 20 times while achieving almost the same accuracy.

つまり、「LightGBMとは、GBDTにGradient-based One-Side Sampling(GOSS)とExclusive Feature Bundling(EFB)をGBDT※に組み合わせたアルゴリズムだ」と言っている。

大きく特徴は以下3点

  1. アルゴリズムの特徴 -精度が高い

Light GBMでは、弱学習器の作り方がXGBoostなどと比較すると微妙に違う。左右均等に木を成⻑させるのではなく、あくまで目的関数を最小にする向きに成⻑させる。 XGBoostが、木の成⻑方法を左右均等に成⻑させる方法を使用しているのに対し、 LightGBM -Tree_growth

LightGBMは、目的関数を最小にさせる方向に、木を成⻑させる方法を採用。(leaf-wise) LightGBM -leaf_wise それによって、より精度の高い学習器の構築を可能にしている。

  1. アルゴリズムの特徴 -演算量が軽い

学習時のデータ使用を効率化する:データの使用方法を効率化することで、演算量を軽くしている。LightGBMでは、学習データの演算量を軽くするために以下の工夫をしている。

  • Gradientbased One-Side Sampling (GOSS) GOSS:データに重み付けをする。勾配の小さいもの(既に学習ができているデータ)は以降の学習で使われにくいようにしてる。

  • データをhistogramの形でくくっている(histogram-based algorithm) データを一つ一つ見るのではなく、いくつかの塊としてみているイメージ。それによって、演算量を軽くしてる。

  • Exclusive Feature Bundling (EFB) EFB:特徴量をバンドルにまとめる役割をしている。それを通じて学習時に使用する特徴量の数を少なくさせようとしている。

※ GBDT (Gradient Boosting Decision Tree) "GBDT implementation"とありますが、Light GBMは正確にはGBDTではありません。損失関数の最適化にはニュートンブースティングを使用しています。