ブースティング(Boosting)
Boosting
概要
ブースティング(Boosting)とは、複数の弱学習器(性能が低い学習器)を逐次的に結合することで、強力な予測モデルを構築するアンサンブル学習の手法です。各ステップで前の学習器が誤分類したデータに重点を置いて次の学習器を学習させることで、予測精度を段階的に向上させていきます。
代表的なブースティング手法には、AdaBoost、勾配ブースティング(Gradient Boosting)、XGBoost、LightGBMなどがあります。特にXGBoostやLightGBMは、Kaggleなどのデータサイエンスコンペティションで圧倒的な成果を上げており、構造化データ(テーブルデータ)に対する予測タスクでは、ディープラーニングを上回ることも多い実用的な手法です。
詳細解説
弱学習器と強学習器
ブースティングの理論的基盤は、「弱学習器を適切に組み合わせれば強学習器を構成できる」というPAC学習理論に基づいています。弱学習器とは、ランダムな予測よりわずかに良い程度の性能しか持たない学習器のことです。例えば、深さ1の決定木(決定株 / Decision Stump)が弱学習器として使われることが多くあります。
ブースティングでは、多数の弱学習器を逐次的に追加し、それぞれの弱学習器に適切な重みを付けて結合することで、高精度な強学習器を構築します。
AdaBoost(Adaptive Boosting)
AdaBoostは、1997年にヨアヴ・フロイントとロバート・シャピアによって提案された最初の実用的なブースティングアルゴリズムです。その仕組みは以下のとおりです。
- 各訓練データに均等な重みを割り当てる
- 弱学習器を学習し、誤分類されたデータの重みを増加させる
- 次の弱学習器は、重みが増加したデータ(前回誤分類されたデータ)を重視して学習する
- 各弱学習器の予測精度に基づいて重み付き投票を行い、最終予測を決定する
このように、前のステップの誤りに焦点を当てて学習を進めることで、難しいデータ点に対する予測精度が向上していきます。
勾配ブースティング(Gradient Boosting)
勾配ブースティングは、1999年にジェローム・フリードマンによって提案された手法で、ブースティングを勾配降下法の枠組みで再定式化したものです。前のモデルの残差(予測誤差)に対して次の学習器をフィットさせることで、予測精度を逐次的に改善します。
勾配ブースティングの特徴は、任意の損失関数を使用できる柔軟性にあります。分類には交差エントロピー損失、回帰には平均二乗誤差などを使用でき、問題に応じた最適化が可能です。
XGBoost(eXtreme Gradient Boosting)
XGBoostは、2016年にティアンチー・チェン(Tianqi Chen)らによって発表された勾配ブースティングの高速・高性能な実装です。以下の特徴があります。
- 正則化:L1/L2正則化を目的関数に組み込み、過学習を抑制
- 並列計算:特徴量の分岐点探索を並列化し、学習を高速化
- 欠損値の扱い:欠損値を自動的に最適な方向に割り当て
- 枝刈り:深さ優先で木を成長させた後に不要な枝を刈り取り、効率的な木を構築
XGBoostはKaggleコンペティションで多くの優勝ソリューションに採用され、構造化データに対する最強の手法の一つとして広く認知されています。
LightGBM
LightGBMは、2017年にMicrosoftが発表した勾配ブースティングの実装で、XGBoostをさらに高速化したものです。GOSS(Gradient-based One-Side Sampling)とEFB(Exclusive Feature Bundling)という独自の手法により、大規模データセットでの学習を高速に行えます。メモリ消費も少なく、特に特徴量の数が多いデータに対して効率的です。
バギングとブースティングの比較
| 比較項目 | バギング(ランダムフォレスト) | ブースティング |
|---|---|---|
| 学習方法 | 独立・並列に学習 | 逐次的に学習 |
| 主な効果 | 分散の低減 | バイアスの低減 |
| 過学習リスク | 比較的低い | 過学習しやすい場合がある |
| データの扱い | ブートストラップサンプリング | 誤分類データに重みを付加 |
| 代表的手法 | ランダムフォレスト | AdaBoost, XGBoost, LightGBM |
歴史・背景
ブースティングの理論的起源は、1990年にロバート・シャピアが証明した「弱学習器から強学習器を構成できる」というPAC学習理論の結果にあります。1997年にフロイントとシャピアが実用的なAdaBoostアルゴリズムを提案し、2003年にはこの業績に対してゲーデル賞が授与されました。
1999年にフリードマンが勾配ブースティングを提案してからは、より柔軟で強力なブースティング手法が次々と開発されました。2016年のXGBoost、2017年のLightGBM、さらにはCatBoost(2018年、Yandex)の登場により、ブースティング手法はテーブルデータに対する機械学習の標準的な手法となりました。
具体的な事例
- Kaggleコンペティション:XGBoostやLightGBMは、構造化データを扱うコンペティションで圧倒的な勝率を誇っています。
- 金融リスク評価:信用リスクの予測、不正取引の検知などにブースティング手法が活用されています。
- 広告のクリック率予測:オンライン広告のCTR(Click Through Rate)予測にLightGBMが広く使われています。
- 需要予測:小売業の在庫管理や電力需要の予測に勾配ブースティング手法が活用されています。
- 医療研究:臨床データからの疾患予測モデルの構築にXGBoostが利用されるケースが増えています。
G検定での出題ポイント
- ブースティングは弱学習器を逐次的に結合して強学習器を構成する手法であることを理解する
- バギング(並列学習・分散低減)とブースティング(逐次学習・バイアス低減)の違いを明確に区別する
- AdaBoostが誤分類データの重みを増やして次の学習器を学習させる仕組みを押さえる
- XGBoostやLightGBMが勾配ブースティングの実装であることを知っておく
- 構造化データ(テーブルデータ)に対してはブースティング手法が強力であることを理解する
- ブースティングは弱学習器を「逐次的に」結合する。前の誤りを修正しながら精度を上げる
- バギングは「並列・独立」に学習器を構築。ブースティングとは学習の仕方が異なる
- AdaBoostは誤分類データの重みを増やし、難しいデータへの対応力を高める
- 勾配ブースティングは前のモデルの残差にフィットさせて改善していく
- XGBoost(2016年)とLightGBM(2017年)はKaggleなどで広く使われる高速実装