LightGBM は Microsoft が主導して開発を進めている勾配ブースティングのライブラリです。数多くの実績があり、Microsoft 社内でも利用されています。
microsoft / LightGBM
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.
Light Gradient Boosting Machine
LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed and efficient with the following advantages:
- Faster training speed and higher efficiency.
- Lower memory usage.
- Better accuracy.
- Support of parallel, distributed, and GPU learning.
- Capable of handling large-scale data.
For further details, please refer to Features.
Benefiting from these advantages, LightGBM is being widely-used in many winning solutions of machine learning competitions.
Comparison experiments on public datasets show that LightGBM can outperform existing boosting frameworks on both efficiency and accuracy, with significantly lower memory consumption. What's more, distributed learning experiments show that LightGBM can achieve a linear speed-up by using multiple machines for training in specific settings.
Get Started and Documentation
Our primary documentation is at https://lightgbm.readthedocs.io/ and is generated from this repository. If you are new to LightGBM, follow the installation instructions on that site.
Next…
本投稿では、Azure Machine Learning で LightGBM を利用するメリットや実装方法について説明します。
Azure Machine Learning とは?
Azure が提供する機械学習プラットフォームです。 Python & R のプログラム言語、 機械学習に特化した UI も提供しています。統計解析、従来の機械学習、深層学習、強化学習 (Preview) まであらゆる機械学習要件に対応しています。
Web ページ : Azure Machine Learning
LightGBM とは?
アルゴリズムの詳細については数多くのブログで説明されているので、ここでは説明を割愛させていただきます。特徴的な点は下記になると思います。
- 決定木がベースモデル
- アンサンブル学習としてブースティングを採用
- Leaf-wise tree growth
- ヒストグラム法
- 数多くのハイパーパラメータ
分析コンペなどで優秀な成績を残しています。
参考 : Winning Solutions
モデル学習
Automated Machine Learning
Microsoft の AutoML といえば、 Azure Machine Learning の自動機械学習 Automated Machine Learning です。 Microsoft Research が開発した 協調フィルタリングとベイズ最適化の探索アルゴリズム により効率的に高精度モデルを探索します。
LightGBM は回帰、分類、時系列予測の全てのシナリオでアルゴリズム候補となっており、私の個人的な印象にはなりますが、上位の精度を出すことが多いです。
LightGBM Estimator
LightGBM は並列学習に対応しており、大量データのハンドリングも出来ます。Microsoft 社内では、Bing のログ解析に LightGBM が利用されています。
また、Azure Machine Learning には LightGBM 専用の Estimator が提供されており、マネージドなインフラを利用できるので、すぐに大規模学習を実行することができます。
Bing チームも Azure Machine Learning の LightGBM Estimator を用いており、最大 13TB 以上のデータを 100台以上の計算環境で並列学習しています。
training_data_list=["binary0.train", "binary1.train"]
validation_data_list = ["binary0.test", "binary1.test"]
lgbm = LightGBM(source_directory=scripts_folder,
compute_target=cpu_cluster,
distributed_training=Mpi(),
node_count=100, # 100台並列の場合
lightgbm_config='train.conf',
data=training_data_list,
valid=validation_data_list
)
experiment = Experiment(ws, name='lightgbm-estimator-test')
run = experiment.submit(lgbm, tags={"test public docker image": None})
ドキュメント : Bing accelerates model training with LightGBM and Azure Machine Learning
ハイパーパラメータチューニング
Hyperdrive
Hyperdrive は Azure Machine Learning が提供するハイパーパラメータチューニング機能になります。LightGBM を利用する際はパラメータチューニングすることが多いので、Hyperdrive の利用は欠かせません。
Hyperdrive のアウトプット例になります。パラメータ探索は、 Grid Search
、Random Search
、Bayesian Optimization
をサポートしています。
ドキュメント : Azure Machine Learning でモデルのハイパーパラメーターを調整する
モデル推論
LightGBM は ONNX に変換することができます。onnxmltools が変換ツールです。Azure Machine Learning で ONNX の推論環境を構築することもできます。
※ ONNX を利用してモデルの相互運用性が向上します。ONNX はオープンソースのモデルフォーマットで、あらゆるプログラム環境で動作します。
ドキュメント : ONNX と Azure Machine Learning:ML モデルの作成と能率化
モデル解釈
LightGBM のモデルから出力される変数の重要度はモデルに影響している説明変数を理解するために用いられます。モデル解釈手法の Global Surrogate
は、LightGBM のような解釈可能なサロゲートモデルを利用して、複雑な機械学習モデルのグローバル(広域的)解釈を行います。
Azure Machine Learning では Microsoft が OSS で公開しているモデル解釈フレームワーク Interpret Community を利用することができます。
interpretml / interpret-community
Interpret Community extends Interpret repository with additional interpretability techniques and utility functions to handle real-world datasets and workflows.
Interpret Community SDK
Interpret-Community is an experimental repository extending Interpret, with additional interpretability techniques and utility functions to handle real-world datasets and workflows for explaining models trained on tabular data. This repository contains the Interpret-Community SDK and Jupyter notebooks with examples to showcase its use.
Contents
- Overview of Interpret-Community
- Installation
- Documentation
- Supported Models
- Supported Interpretability Techniques
- Use Interpret-Community
- Visualizations
- Contributing
- Code of Conduct
Overview of Interpret-Community
Interpret-Community extends the Interpret repository and incorporates further community developed and experimental interpretability techniques and functionalities that are designed to enable interpretability for real world scenarios. Interpret-Community enables adding new experimental techniques (or functionalities) and performing comparative analysis to evaluate them.
Interpret-Community
- Actively incorporates innovative experimental interpretability techniques and allows for further expansion by researchers and data scientists
- Applies optimizations to make it possible to run interpretability techniques on real-world datasets at scale
- Provides improvements such as the capability to "reverse the…
Global Surrogate
のようなグローバル解釈だけでなく、SHAP
などのローカル(局所的)解釈もサポートしています。簡単なコーディングと使いやすいダッシュボードが特徴です。
from interpret.ext.glassbox import LGBMExplainableModel
explainer = MimicExplainer(model,
x_train,
LGBMExplainableModel,
augment_data=True,
max_num_of_augmentations=10,
features=breast_cancer_data.feature_names,
classes=classes)
他システムとの連携
Optuna LightGBM Tuner
Optuna にて LightGBM 専用の Tuner を提供しています。Azure Machine Learning 上で Optuna のパラメータチューニングを行うことも可能です。Neural Network Intelligence
Neural Network Intelligenceは、Microsoft Research が開発している AutoML Toookit です。
LightGBM における実装例は、下記ドキュメントをご参照ください。
ドキュメント : GBDT in nni
まとめ
Azure Machine Learning は LightGBM に関する機能を数多くご提供しています。ぜひ一度使ってみてください。
参考情報
Channel 9 AI Show (Azure AI の最新機能や動向を動画で紹介)
Top comments (0)