loading...

Azure Machine Learning is the Best Place for LightGBM

konabuta profile image konabuta ・2 min read

LightGBM は Microsoft が主導して開発を進めている勾配ブースティングのライブラリです。数多くの実績があり、Microsoft 社内でも利用されています。

GitHub logo 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.

LightGBM, Light Gradient Boosting Machine

Azure Pipelines Build Status Appveyor Build Status Travis Build Status Documentation Status License Python Versions PyPI Version Join Gitter at https://gitter.im/Microsoft/LightGBM Slack

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 and GPU learning.
  • Capable of handling large-scale data.

For further details, please refer to Features.

Benefitting 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, parallel 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 you…

本投稿では、Azure Machine Learning で LightGBM を利用するメリットや実装方法について説明します。

Azure Machine Learning とは?

Azure が提供する機械学習プラットフォームです。 Python & R のプログラム言語、 機械学習に特化した UI も提供しています。統計解析、従来の機械学習、深層学習、強化学習 (Preview) まであらゆる機械学習要件に対応しています。

azureml

Web ページ : Azure Machine Learning

LightGBM とは?

アルゴリズムの詳細については数多くのブログで説明されているので、ここでは説明を割愛させていただきます。特徴的な点は下記になると思います。

  • 決定木がベースモデル
  • アンサンブル学習としてブースティングを採用
  • Leaf-wise tree growth
  • ヒストグラム法
  • 数多くのハイパーパラメータ

分析コンペなどで優秀な成績を残しています。
参考 : Winning Solutions

モデル学習

Automated Machine Learning

Microsoft の AutoML といえば、 Azure Machine Learning の自動機械学習 Automated Machine Learning です。 Microsoft Research が開発した 協調フィルタリングとベイズ最適化の探索アルゴリズム により効率的に高精度モデルを探索します。

automated-machine-learning

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-output1
hyperdrive-output2

Hyperdrive のアウトプット例になります。パラメータ探索は、 Grid SearchRandom SearchBayesian 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 を利用することができます。

GitHub logo interpretml / interpret-community

The Interpret Community extends Interpret repo with additional interpretability techniques and utility functions to handle real-world datasets and workflows.

Build Status MIT license versions PyPI

Interpret Community SDK

The Interpret Community extends Interpret, an open source python package from Microsoft Research for training interpretable models and helping to explain blackbox systems, with additional interpretability techniques and utility functions to handle real-world datasets and workflows.

This repository contains an SDK and Jupyter notebooks with examples to showcase its use.

Contents

Overview of Interpret-Community

Interpret-Community incorporates community developed interpretability techniques under one roof with a unified set of data structures and visualization. Users could experiment with different interpretability techniques and easily perform comparative analysis to evaluate their brand new explainers. Using these tools, one can explain machine learning models globally on all data, or locally on a specific prediction using the state-of-art technologies in an easy-to-use and scalable fashion. In particular, this open-source toolkit:

  1. Actively incorporates innovative interpretability techniques…

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)

interpret-community
 

他システムとの連携

  • Optuna LightGBM Tuner
    Optuna にて LightGBM 専用の Tuner を提供しています。Azure Machine Learning 上で Optuna のパラメータチューニングを行うことも可能です。

  • Neural Network Intelligence
    Neural Network Intelligenceは、Microsoft Research が開発している AutoML Toookit です。

nni-log
nni-flow

LightGBM における実装例は、下記ドキュメントをご参照ください。

ドキュメント : GBDT in nni

まとめ

Azure Machine Learning は LightGBM に関する機能を数多くご提供しています。ぜひ一度使ってみてください。

参考情報

Discussion

pic
Editor guide