「GBMとXGBoostの違いって何だ?」
「GBMとXGBoostの違いは何ですか?」
GBMとXGBoostのアルゴリズムについては、誰もが知っていると思います。これらは、多くの実世界のユースケースやコンペティションでよく使用されるアルゴリズムであり、そのメトリックの出力は他のモデルよりも良いことがよくあります。
GBMとXGBoostについて知らない方のために説明すると、GBM(Gradient Boosting Machine)とXGBoost(eXtreme Gradient Boosting)はアンサンブル学習の手法です。アンサンブル学習は、複数の「弱い」モデル(通常は決定木)を訓練して組み合わせ、さらなる目的のために使用する機械学習の手法です。
このアルゴリズムは、名前にあるアンサンブル学習のブースティング技術に基づいています。ブースティング技術は、複数の弱い学習者を逐次的に組み合わせ、それぞれが前の学習者の誤りを修正する方法です。各学習者は以前の誤りから学び、前のモデルのエラーを修正します。
- 「ChatGPTのような言語モデルに関するプライバシー上の懸念:このAI論文が潜在的なリスクと保護対策を明らかにする」
- アリババAIは、Qwen-1.8B、Qwen-7B、Qwen-14B、Qwen-72B、およびQwen Chatシリーズを含むQwenシリーズをオープンソース化しました
- 2024年にSQLの概念をマスターするためのトップ10冊の書籍
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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- テンセントAI研究所では、GPT4Videoを紹介していますこれは統合マルチモーダル大規模言語モデルであり、指示に従った理解と安全意識のある生成を目指しています
- 「ロボットのビジョン-言語プランニングにおけるGPT-4Vの力を発揮する方法は?ViLaと出会ってください:長期計画のためにGPT-4Vを活用するシンプルで効果的なAIメソッド」
- 「AppleがオープンソースのMLフレームワーク「MLX」を発表」
- ムーブワークスのCEO兼創業者であるBhavin Shah—シリコンバレーの起業の旅、AIのスケーリングの課題、イノベーション文化、戦略的パートナーシップ、規制上のハードルの克服、ユーザーとのAIとの対話、エンタープライズの将来のビジョン
- 27/11から03/12までの週の主要なコンピュータビジョン論文のトップ重要度
- 小さな言語モデル(SLM)とその応用について知るべきすべてのこと
- このAI論文は、「GREAT PLEA」倫理的フレームワークを提案しています:医療における責任あるAIのための軍事に焦点を当てたアプローチ