機械学習アルゴリズムの新たな女王 — XGBoost

機械学習アルゴリズムの新たな女王 — XGBoost

15年前の初出勤の日のことを今でも覚えています。大学院を終えて、世界的な投資銀行にアナリストとして入社したばかりでした。その日は、ネクタイを直したり、学んだことをすべて思い出そうとしたり、自分がその仕事に十分適しているかどうか考えたりしながら過ごしました。私の不安を感じ取った上司は微笑んでこう言いました。

「心配しないでください!必要なのは回帰モデルだけです!」

「これ知ってる!」って思いました。私は回帰モデル、線形回帰、ロジスティック回帰を知っています。上司の言う通りでした。在職中、私は回帰ベースの統計モデルだけを構築していました。当時、回帰モデリングは予測分析の絶対的な王者でした。 15年を経て、回帰モデリングの時代は終わりました。昔の女王は舞台を去り、その代わりに、流行りの名前を持ち、エネルギーに満ちた新しい女王 XGBoost (Exterme Gradient Boosting) が登場します。

XGBoost とは何ですか?

XGBoost は、勾配ブースティング フレームワークを使用した、決定木に基づく統合機械学習アルゴリズムです。非構造化データ (画像、テキストなど) を含む予測問題では、人工ニューラル ネットワークが他のすべてのアルゴリズムやフレームワークよりも優れたパフォーマンスを発揮する傾向があります。ただし、小規模から中規模の構造化/表形式データに関しては、決定木ベースのアルゴリズムが現時点では最高クラスであると考えられています。長年にわたるツリーベースのアルゴリズムの開発については、下の表を参照してください。

決定木に基づく XGBoost アルゴリズムの進化

XGBoost アルゴリズムはワシントン大学の研究プロジェクトです。 2016 年の SIGGDD カンファレンスで Tianqi Chen 氏と Carlos Guestrin 氏が発表した論文は、機械学習の世界に衝撃を与えました。このアルゴリズムは導入以来、数多くの Kaggle コンペティションで優勝しただけでなく、いくつかの最先端の業界アプリケーションの原動力とも考えられています。その結果、XGBoost オープンソース プロジェクトに貢献するデータ サイエンティストの強力なコミュニティが形成され、GitHub には約 350 人の貢献者と約 3,600 人のコミッターがいます。このアルゴリズムには次の特性があります。

  1. 幅広いアプリケーション: 回帰、分類、ランキング、ユーザー定義の予測問題を解決するために使用できます。

  2. 移植性: Windows、Linux、OS X でスムーズに動作します。

  3. 言語: C++、Python、R、Java、Scala、Julia など、すべての主要なプログラミング言語をサポートします。

  4. クラウド統合: AWS、Azure、Yarn クラスターをサポートし、Flink、Spark、その他のエコシステムと連携します。

XGBoost についての直感を養うにはどうすればいいでしょうか?

決定木は、最も単純な形式では視覚化が容易で、かなり解釈しやすいアルゴリズムですが、次世代のツリーベースのアルゴリズムに対する直感を構築するのは、少し難しい場合があります。ツリーベースのアルゴリズムの開発をよりよく理解するための簡単な例えを示します。

[[338381]]

Unsplash の rawpixel からの写真

優秀な資格を持つ数人の候補者を面接する採用担当者であると想像してください。ツリーベースのアルゴリズムの進化における各ステップは、面接プロセスのバージョンと考えることができます。

  1. 意思決定ツリー: すべての採用マネージャーは、教育レベル、経験年数、面接のパフォーマンスなどの一連の基準を持っています。意思決定ツリーは、採用担当者が独自の基準に基づいて候補者を面接するのと似ています。

  2. バギング: 面接官が 1 人ではなく、それぞれが投票権を持つ面接官のパネルがあると想像してください。バギング集約では、民主的な投票プロセスを通じてすべての面接官の意見を統合し、最終決定を下します。

  3. ランダム フォレスト: これはバギングに基づくアルゴリズムですが、主な違いは、機能のサブセットのみがランダムに選択されることです。言い換えれば、各面接官は候補者に対してランダムに選択されたいくつかの資格テストのみを実施します (例: プログラミング スキルをテストする技術面接と非技術スキルを評価する行動面接)。

  4. ブースティング: これは、各面接官が前の面接官からのフィードバックに基づいて評価基準を変更する代替アプローチです。これにより、より動的な評価プロセスを導入することで、面接プロセスの効率が「向上」します。

  5. 勾配ブースティング: 勾配降下法によってエラーを最小化する特殊なケース。たとえば、戦略コンサルティング会社がケース面接で不適格な候補者を排除するために使用されます。

  6. XGBoost: XGBoost は、強化された勾配ブースティングと考えてください (「エクストリーム勾配ブースティング」と呼ばれるのには理由があります)。これはソフトウェアとハ​​ードウェアの最適化テクノロジーの完璧な組み合わせであり、最短時間で、少ないコンピューティング リソースで優れた結果を達成できます。

XGBoost のパフォーマンスが優れているのはなぜですか?

XGBoost と Gradient Boosting Machines (GBM) はどちらも、勾配降下構造を使用して弱学習者 (CART) の学習能力を向上させるアンサンブル ツリー手法です。ただし、XGBoost は、システムの最適化とアルゴリズムの強化を通じて基本的な GBM フレームワークを改善します。

XGBoost が標準 GBM アルゴリズムを最適化する方法

  1. 並列化: XGBoost は並列化を使用してシーケンス ツリーの構築プロセスを実装します。これが可能なのは、基本学習器を構築するために使用されるループが交換可能であるためです。外側のループはツリーのリーフ ノードを列挙し、2 番目の内側のループは特徴を計算します。これが可能なのは、基本学習器を構築するために使用されるループが交換可能であるためです。外側のループはツリーのリーフ ノードを列挙し、2 番目の内側のループは特徴を計算します。このループのネストにより、内側のループ (2 つのループのうち、より計算量の多いループ) が完了するまで外側のループを開始できないため、並列化が制限されます。したがって、実行時間を改善するために、ループの順序は初期化によって入れ替えられ、すべてのインスタンスのグローバルスキャンによってソートされ、並列スレッドが使用されます。このスイッチは、計算における並列化のオーバーヘッドを相殺することで、アルゴリズムのパフォーマンスを向上させます。

  2. ツリーの剪定: GBM フレームワークのツリー分割停止基準は本質的に貪欲であり、分割ポイントでの負の損失基準に依存します。最初に条件を使用してからツリーを後方に剪定する代わりに、XGBoost は指定された「max_depth」パラメータを使用します。この「深さ優先」アプローチにより、計算パフォーマンスが大幅に向上します。

  3. ハードウェア最適化: このアルゴリズムは、ハードウェア リソースを効率的に利用するように設計されています。これは、勾配統計を保存するために各スレッドに内部バッファを割り当てることで、キャッシュ認識を通じて実現されます。 「アウトオブコア」計算などのさらなる機能強化により、メモリに収まらない大きなデータ フレームを処理しながら、使用可能なディスク領域が最適化されます。

アルゴリズムの強化:

  1. 正則化: 過剰適合を防ぐために、L1 リッジ L2 正則化を通じてより複雑なモデルにペナルティを課します。

  2. スパース性の認識: XGBoost は、トレーニング損失に基づいて最適な欠損値を自動的に「学習」することで、スパースな特徴の入力を自然に可能にし、データ内のさまざまな種類のスパース性パターンをより効率的に処理します。

  3. 加重分位点スケッチ: XGBoost は、分散加重分位点スケッチ アルゴリズムを使用して、加重データ セット間の最適な分割ポイントを効率的に見つけます。

  4. 相互検証: アルゴリズムには各反復での相互検証メソッドが組み込まれているため、この検索を明示的にプログラムしたり、実行に必要なブースティング反復の正確な数を指定したりする必要がなくなります。

証拠はどこにあるのですか?

scikitlearn の「Make_nuclassification」パッケージを使用して、20 個の特徴 (2 つは有益、2 つは冗長) を持つ 100 万個のデータ ポイントのランダム サンプルを作成しました。ロジスティック回帰、ランダム フォレスト、標準勾配ブースティング、XGBoost などのいくつかのアルゴリズムをテストしました。

SKLearn を使用した Make_Classification データセットでの XGBoost と他の ML アルゴリズムの比較

上の図に示すように、XGBoost モデルは他のアルゴリズムと比較して、予測パフォーマンスと処理時間の組み合わせが最も優れています。他の厳密なベンチマーク研究でも同様の結果が出ています。最近のデータサイエンス コンテストで XGBoost が広く使用されているのも不思議ではありません。

「迷ったら XGBoost を使いましょう」 — Owen Zhang

では、常に XGBoost を使用するべきでしょうか?

機械学習(あるいは人生)に関しては、ただで得られるものなどありません。データ サイエンティストとして、私たちは手元にあるデータに対して考えられるすべてのアルゴリズムをテストし、最適なアルゴリズムを特定する必要があります。さらに、適切なアルゴリズムを選択するだけでは十分ではありません。また、ハイパーパラメータを調整して、データセットに適したアルゴリズム構成を選択する必要があります。さらに、最適なアルゴリズムを選択する際には、計算の複雑さ、解釈可能性、実装の容易さなど、他にも考慮すべき点がいくつかあります。ここで機械学習は科学から芸術へと移行し始めますが、正直なところ、ここで魔法が起こるのです。

将来はどうなるのでしょうか?

機械学習は非常に活発な研究分野であり、XGBoost に代わる実用的な代替手段がすでにいくつか存在します。 Microsoft Research は最近、勾配を強化する LightGBM フレームワークをリリースしましたが、これは大きな可能性を秘めています。 Yandex Technology が開発した CatBoost は、印象的なベンチマーク結果を達成しました。予測性能、柔軟性、解釈可能性、実用性の点で XGBoost よりも優れたモデル フレームワークが登場するのは時間の問題です。しかし、強力な挑戦者が現れるまでは、XGBoost は機械学習の世界を支配し続けるでしょう。

<<:  看護ロボットは医療従事者の仕事に完全に取って代わることができるのでしょうか?

>>:  ドローンによる配達は近づいているが、商業利用にはまだ問題点を解決する必要がある

ブログ    
ブログ    
ブログ    

推薦する

あなたの AI は規制に対応できる準備ができていますか?

現在、人工知能 (AI) に関する同様の規制が世界中の複数の地域で施行され始めており、GDPR に関...

AIが顧客関係管理を改善する3つの方法

AI には、CRM に関連する手動プロセスから組織を解放し、顧客エンゲージメント、販売分析情報、ソー...

「初の常温常圧超伝導体」に対する共同研究者の反応:内容に欠陥あり

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

言語学における人工知能技術の応用

1990年代初頭、中国の著名な学者である周海中氏は、人工知能技術がさまざまな分野で広く使用され、予想...

...

...

アルトマンのYCスピーチ: ChatGPTを攻撃する者は死ぬ、私ができるからといって、あなたにもできるとは限らない

ウルトラマンのシンプルな言葉はAIスタートアップ企業を震え上がらせた。 「Shelling」Open...

AI バイアスを検出して防止するにはどうすればよいでしょうか?

[[417154]] [51CTO.com クイック翻訳]あらゆる AI アプリケーションの成功は...

ChatGPT Enterprise Editionがリリースされ、OpenAIはこれをこれまでで最も強力なバージョンと呼んでいる

執筆者:Qianshan過去 1 か月間、OpenAI に関する物議を醸す報道が多くありました。一方...

世界主要7カ国のAI戦略を総ざらい

21 世紀が近づくにつれ、各国の成功または失敗はもはや国民と政府指導者だけに依存するものではなくなり...

...

人工知能は人間が理解できない量子実験を設計する

[[412058]]北京時間7月19日、量子物理学者のマリオ・クライン氏は、2016年初頭にウィーン...

人工知能アルゴリズムが構造生物学の難問を解決

新しい人工知能アルゴリズムは、RNA 分子の正しい 3 次元構造を間違ったものから選び出すことができ...