「GBMとXGBoostの違いって何だ?」

「GBMとXGBoostの違いは何ですか?」

GBMとXGBoostのアルゴリズムについては、誰もが知っていると思います。これらは、多くの実世界のユースケースやコンペティションでよく使用されるアルゴリズムであり、そのメトリックの出力は他のモデルよりも良いことがよくあります。

GBMとXGBoostについて知らない方のために説明すると、GBM(Gradient Boosting Machine)とXGBoost(eXtreme Gradient Boosting)はアンサンブル学習の手法です。アンサンブル学習は、複数の「弱い」モデル(通常は決定木)を訓練して組み合わせ、さらなる目的のために使用する機械学習の手法です。

このアルゴリズムは、名前にあるアンサンブル学習のブースティング技術に基づいています。ブースティング技術は、複数の弱い学習者を逐次的に組み合わせ、それぞれが前の学習者の誤りを修正する方法です。各学習者は以前の誤りから学び、前のモデルのエラーを修正します。

GBMとXGBの基本的な類似点はそこですが、違いはどうなのでしょうか?この記事で詳しく説明しますので、それについて見ていきましょう。

GBM(Gradient Boosting Machine)

前述の通り、GBMはブースティングに基づいており、弱学習器を逐次的に反復処理して誤りから学び、頑健なモデルを開発します。GBMは、勾配降下法を使用して損失関数を最小化することにより、各反復ごとにより良いモデルを開発します。勾配降下法は、損失関数など、各反復ごとに関数の最小値を見つける概念です。反復は、停止基準を達成するまで続行されます。

GBMの概念については、以下の画像で確認できます。

上記の画像で、各反復ごとにモデルが損失関数を最小化し、前の誤りから学ぼうとしていることがわかります。最終的なモデルは、モデルからのすべての予測を合計した全体の弱学習器になります。

XGB(eXtreme Gradient Boosting)とGBMとの違い

XGBoostまたはeXtreme Gradient Boostingは、2016年にTiangqi ChenとCarlos Guestrinによって開発された勾配ブースティングアルゴリズムに基づく機械学習アルゴリズムです。基本的なレベルでは、このアルゴリズムも勾配降下法に基づいて次のモデルを改善するために逐次的な戦略を採用しています。ただし、XGBoostのいくつかの違いにより、パフォーマンスとスピードの面でこのモデルは最高のものとされています。

1. 正則化

正則化は、機械学習の技術でオーバーフィッティングを回避するためのテクニックです。モデルを複雑にしすぎず、一般化能力を悪化させないようにするための方法の集合です。多くのモデルがトレーニングデータにうまく適合しすぎるため、重要な技術となっています。

GBMでは、アルゴリズムに正則化は実装されていないため、アルゴリズムは損失関数の最小化にのみ焦点を当てることになります。GBMと比較して、XGBoostは正則化手法を実装してオーバーフィッティングをペナルティとして処理します。

XGBoostは、L1正則化(Lasso)とL2正則化(Ridge)の2種類の正則化を適用することができます。L1正則化は、特徴量の重みや係数をゼロに最小化しようとします(実質的には特徴量の選択になります)、一方、L2正則化は係数を均等に縮小することを試みます(多重共線性の処理に役立ちます)。両方の正則化を実装することにより、XGBoostはGBMよりもオーバーフィッティングを回避することができます。

2. 並列化

GBMは、XGBoostよりもトレーニング時間が遅い傾向があります。なぜなら、後者のアルゴリズムはトレーニングプロセス中に並列化を実装しているからです。ブースティング技術は逐次的であるかもしれませんが、XGBoostプロセス内では並列化が行われることがあります。

並列化は、主に分割イベント中におけるツリーの構築プロセスの高速化を目的としています。すべての利用可能な処理コアを活用することで、XGBoostのトレーニング時間を短縮することができます。

XGBoostプロセスの高速化に関して言えば、開発者はまた、メモリ効率とトレーニング速度の向上のために、データを彼らの開発されたデータ形式であるDMatrixに前処理しました。

 

3. ミッシングデータの処理

 

私たちのトレーニングデータセットには、欠損データが含まれている場合があります。これらのデータをアルゴリズムに渡す前に、明示的に処理する必要があります。ただし、XGBoostには組み込みの欠損データハンドラがありますが、GBMにはありません。

XGBoostは、欠損データの処理のために独自のテクニック、スパーシティアウェアスプリットファインディングを実装しています。XGBoostが遭遇するスパースなデータ(欠損データ、密なゼロ、OHE)に対して、モデルはこれらのデータから学習し、最適なスプリットを見つけます。モデルは、スプリット時に欠損データを配置する場所を割り当て、損失を最小化する方向を見つけます。

 

4. 木の刈り込み

 

GBMの成長戦略は、アルゴリズムがスプリットで負の損失に到達した時点でスプリットを停止することです。この戦略は、ローカル最適化に基づいているため、全体像を無視する可能性があり、最適な結果にはならないかもしれません。

XGBoostはGBMの戦略を避け、セットされた最大深度のパラメータが後方に向かって刈り込みを開始するまで木を成長させます。負の損失を持つスプリットは刈り込まれますが、負の損失を持つスプリットが削除されなかった場合もあります。スプリットが負の損失に到達したが、さらなるスプリットが正の場合、全体のスプリットが正である場合は、それは保持されます。

 

5. 組み込みクロスバリデーション

 

クロスバリデーションは、データを複数のイテレーションでシステマティックに分割してモデルの汎化および頑健性能力を評価する技術です。集計された結果は、モデルが過学習しているかどうかを示します。

通常、機械アルゴリズムはクロスバリデーションを実装するために外部のヘルプが必要ですが、XGBoostにはトレーニングセッション中に使用できる組み込みのクロスバリデーションがあります。クロスバリデーションは各ブースティングイテレーションで実行され、生成された木が頑健であることを保証します。

 

まとめ

 

GBMとXGBoostは、多くの実世界のケースや競技で人気のあるアルゴリズムです。概念的には、両方のブースティングアルゴリズムは弱学習者を使用してより良いモデルを実現します。ただし、アルゴリズムの実装にはいくつかの違いがあります。XGBoostは、正則化の埋め込み、並列化の実行、優れた欠損データの処理、異なる木の刈り込み戦略、および組み込みのクロスバリデーション手法を使用してアルゴリズムを強化しています。

 

[Cornellius Yudha Wijaya](https://www.linkedin.com/in/cornellius-yudha-wijaya/)さんは、データサイエンスのアシスタントマネージャー兼データライターです。Allianz Indonesiaで勤務しながら、彼はソーシャルメディアや執筆を通じてPythonとデータのヒントを共有することを大好きです。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

自然言語処理のタクソノミー

「異なる研究分野と最近の自然言語処理(NLP)の進展の概要」

人工知能

「責任あるAIの推進のための新しいパートナーシップ」

「本日、Google、Microsoft、OpenAI、Anthropicが共同でフロンティアモデルフォーラムを設立することを発表しました」

機械学習

「ディープラーニングベースのフレームワークを使用した高速かつ正確な音響ホログラム生成」

DGIST電気工学およびコンピュータサイエンス学科の黄宰潤教授率いるチームは、ホログラムに基づいたリアルタイムでの焦点超音...

機械学習

ビジュアルキャプション:大規模言語モデルを使用して、動的なビジュアルを備えたビデオ会議を補完する

Google Augmented Realityのリサーチサイエンティスト、Ruofei DuとシニアスタッフリサーチサイエンティストのAlex Olwalが投...

機械学習

「ディープラーニングモデルのレイヤーを凍結する方法 - 正しいやり方」

「モデルの微調整を行いたい場合や、処理する例に応じて一部のパラメータを固定することは、しばしば有用です以下の例で示さ...

人工知能

ファッションにおけるGenAI | Segmind Stable Diffusion XL 1.0アプローチ

イントロダクション ファッション業界も例外ではなく、消費者の変化する好みに合わせて革新の最前線に留まる方法を模索してき...