一般的なモデル統合手法の紹介: バギング、ブースティング、スタッキング

一般的なモデル統合手法の紹介: バギング、ブースティング、スタッキング

この記事では、ブートストラップ、バギング、ランダム フォレスト、ブースティング、スタッキング、その他多くの基本的なアンサンブル学習モデルなどのよく知られた概念について説明します。

これらすべての方法間のつながりをできるだけ明確にするために、より広範で論理的な枠組みでそれらを提示し、読者が理解し、記憶しやすくなるようにします。

[[265355]]

アンサンブル法とは何ですか?

アンサンブル学習は機械学習のパラダイムです。アンサンブル学習では、複数のモデル(「弱学習者」と呼ばれることが多い)をトレーニングして同じ問題を解決し、それらを組み合わせてより良い結果を実現します。最も重要な仮定は、弱いモデルを適切に組み合わせると、より正確で堅牢なモデルを取得できるということです。

アンサンブル学習理論では、弱い学習者(または基本モデル)を「モデル」と呼び、より複雑なモデルを設計するための構成要素として使用できます。ほとんどの場合、これらの基本モデル自体は、バイアスが高い (自由度が低いモデルなど) か、分散が大きすぎて堅牢性があまり高くない (自由度が高いモデルなど) ため、あまりパフォーマンスがよくありません。

アンサンブル法の考え方は、これらの弱い学習者のバイアスや分散を組み合わせて「強い学習者」(または「アンサンブル モデル」)を作成し、それによってより優れたパフォーマンスを達成することです。

弱い学習者を組み合わせる

アンサンブル学習法を構築するには、まず集約する基本モデルを選択する必要があります。ほとんどの場合 (よく知られているバギング法やブースティング法を含む)、単一の基本学習アルゴリズムを使用するため、さまざまな方法でトレーニングされた均質な弱学習器が得られます。

結果として得られるアンサンブル モデルは「均質」と呼ばれます。ただし、いくつかの異種弱学習器を「異種アンサンブル モデル」に組み合わせるなど、異なる種類の基本学習アルゴリズムを使用する方法もいくつかあります。

弱学習者の選択は、これらのモデルを集約する方法と一致している必要があることに注意することが重要です。バイアスが低く分散が高いベース モデルを選択する場合は、分散を減らす傾向がある集計方法を使用する必要があります。また、分散が低くバイアスが高いベース モデルを選択する場合は、バイアスを減らす傾向がある集計方法を使用する必要があります。

すると、これらのモデルをどのように組み合わせるかという疑問が生じます。弱学習者を組み合わせるために使用できる主な「メタアルゴリズム」は 3 つあります。

  • バギングと呼ばれるこの方法では、通常、均質な弱学習者を考慮し、これらの弱学習者を互いに独立して並行して学習し、何らかの決定論的な平均化プロセスに従ってそれらを組み合わせます。
  • ブースティング、この方法では通常、均質な弱学習者を考慮します。これらの弱い学習器を高度に適応的な方法で順次学習し(各基本モデルは以前のモデルに依存)、何らかの決定論的な戦略に従ってそれらを組み合わせます。
  • スタッキングでは、この方法では通常、異種の弱学習者を考慮し、それらを並行して学習し、「メタモデル」をトレーニングすることでそれらを組み合わせ、異なる弱モデルの予測結果に基づいて最終的な予測結果を出力します。

非常に大まかに言えば、バギングはコンポーネントよりも分散が低いアンサンブル モデルを取得することに重点を置いているのに対し、ブースティングとスタッキングは主にコンポーネントよりもバイアスが低い強力なモデルを生成します (分散も削減できます)。

次のセクションでは、バギング法とブースティング法(スタッキング法よりも広く使用されており、アンサンブル学習の重要な概念について説明することができます)を詳しく紹介し、次にスタッキング法について簡単に概説します。

弱い学習者を組み合わせることで、パフォーマンスの優れたモデルを得ることができます。ベースモデルを組み合わせる方法は、これらのモデルのタイプに適したものでなければなりません。

1. バギングについて

並列アプローチでは、異なる学習者を別々に適合させ、同時にトレーニングできるようにします。最も人気のある方法は「バギング」(「セルフサービス集約」の略)であり、単一のモデルよりも堅牢なアンサンブル モデルを作成することを目的としています。

セルフヘルプ方法:

この統計手法では、B 個の観測値をランダムに選択して置換することにより、サイズ N の初期データ セットからサイズ B のサンプル (ブートストラップ サンプルと呼ばれる) を生成します。

セルフサンプリングプロセスの概略図

特定の仮定の下では、これらのサンプルは非常に優れた統計特性を持ちます。つまり、第一近似では、それらは真の基礎となる(そして多くの場合は未知の)データ分布から直接抽出され、互いに独立しているものとして見ることができます。したがって、それらは真のデータ分布の代表的で独立したサンプル(ほぼ独立しており、同一に分布しているサンプル)であると考えられます。

この近似が成り立つためには、2 つの仮定を検証する必要があります。

まず、初期データセットのサイズ N は、基礎となる分布の複雑さの大部分を捉えるのに十分な大きさである必要があります。このように、データセットからのサンプリングは、真の分布からのサンプリングの良い近似値(代表値)になります。

2 番目に、データセット N のサイズは、ブートストラップ サンプルのサイズ B に比べて十分に大きく、サンプル間の相関 (独立性) があまりないようにする必要があります。ブートストラップ サンプルのこれらの特性 (代表性と独立性) については後で説明するかもしれませんが、読者は常に「これは単なる近似値である」ということを念頭に置いておく必要があります。

たとえば、ブートストラップ サンプルは、統計推定値の分散または信頼区間を推定するためによく使用されます。定義上、統計的推定値はいくつかの観測値の関数です。したがって、ランダム変数の分散はこれらの観測に基づいて計算されます。

このような推定値の分散を評価するには、関心のある分布から抽出されたいくつかの独立したサンプルで推定する必要があります。ほとんどの場合、真に独立したサンプルを考慮するために必要なデータの量は、実際に利用可能なデータの量と比較して大きすぎる可能性があります。

ただし、ブートストラップを使用すると、いくつかのブートストラップ サンプルを生成することができます。これは、「最も代表的な」および「最も独立した」(ほぼ独立しており、同一に分布している) サンプルと見なすことができます。これらのブートストラップされたサンプルを使用すると、各サンプルの値を推定することで推定値の分散を近似することができます。

ブートストラップは、特定の統計推定値の分散または信頼区間を推定するためによく使用されます。

2. ブーストについて

「順次アプローチ」では、組み合わされたさまざまな弱いモデルが互いに独立して適合されなくなります。アイデアは、特定のステップでのモデルのトレーニングが前のステップで適合されたモデルに依存するように、モデルを「反復的に」適合させることです。 「ブースティング」はこれらの方法の中で最も人気のあるものの 1 つであり、結果として得られるアンサンブル モデルは、通常、モデルを構成する弱い学習者よりも偏りが少なくなります。

(1)改善方法

ブースティング法はバギング法と同じように機能します。つまり、一連のモデルを構築し、それらを集約して、パフォーマンスの優れた強力な学習者を取得します。ただし、分散の削減に重点を置くバギングとは異なり、ブースティングは複数の弱い学習器を適応的に順番に適合させることに重点を置いています。つまり、シーケンス内の各モデルは、適合されるにつれて、シーケンス内の前のモデルで適切に処理されなかった観測値にさらに重みを付けます。

直感的に、各モデルは、適合させるのが最も難しい観測値に注目します。したがって、プロセスの最後には、バイアスが低い強力な学習者が得られます (ブースティングには分散を減らす効果もあることに注意してください)。バギングと同様に、ブースティングも回帰問題や分類問題に使用できます。

バイアスを減らすことに重点が置かれているため、ブースティングに使用される基本モデルは通常、分散が低くバイアスが高いモデルになります。たとえば、ツリーをベースモデルとして使用する場合は、主に数層だけの浅い決定木を選択します。

ブースティング弱学習器として低分散・高バイアスモデルを選択するもう 1 つの重要な理由は、これらのモデルではフィッティングの計算オーバーヘッドが低い (パラメータ化時の自由度が低い) ことです。

実際、異なるモデルをフィッティングするための計算は並列処理できないため (バギングとは異なり)、複数の複雑なモデルを順番にフィッティングすると、計算オーバーヘッドが非常に高くなる可能性があります。

弱学習器が選択されたら、それらをどのように適合させるか (現在のモデルを適合させるときに以前のモデルのどの情報を考慮する必要があるか)、およびそれらをどのように集約するか (現在のモデルを以前のモデルにどのように集約するか) を定義する必要があります。次の 2 つのセクションでは、これらの問題について説明し、特に 2 つの重要なブースティング アルゴリズム、アダプティブ ブースティング (adaboost) と勾配ブースティングを紹介します。

つまり、2 つのメタアルゴリズムには、順次プロセスで弱い学習者を作成して集約する方法に違いがあります。適応ブースティング アルゴリズムはトレーニング データセット内の各観測値に付加された重みを更新し、勾配ブースティング アルゴリズムはこれらの観測値の値を更新します。ここでの違いの主な理由は、2 つのアルゴリズムが最適化問題 (最適なモデルの検索 - 弱学習器の加重合計) を異なる方法で解決することです。

ブースティングは、弱い学習者を繰り返し適合させ、それを統合モデルに集約し、次の基本モデルを適合させるときに現在の統合モデルの長所と短所をより適切に考慮するようにトレーニング データセットを「更新」します。

(2)アダプティブブースティング

適応ブースティング(「アダブースト」とも呼ばれる)では、アンサンブルモデルをL個の弱学習器の重み付き和として定義する。

ここでc_lは係数、w_lは弱学習器である。

このような最適なアンサンブル モデルを見つけることは、「困難な最適化問題」です。したがって、問題を一度に解決する(全体的に最適な加法モデルを提供するすべての係数と弱学習者を見つける)のではなく、より扱いやすい反復的な最適化プロセスを使用します(最適ではないソリューションにつながる可能性があります)。

さらに、現在のアンサンブル モデルに弱学習器を 1 つずつ追加し、各反復で可能な限り最適な組み合わせ (係数、弱学習器) を探します。つまり、s_l を次のように再帰的に定義します。

ここで、c_l と w_l は、s_l がトレーニング データに最適なモデルとなり、s_(l-1) に対して可能な限り最高の改善となるように選択されます。これをさらに次のように表現することもできます。

ここで、E(.) は特定のモデルのフィッティング誤差であり、e(.,.) は損失/誤差関数です。したがって、合計プロセスで L 個のモデルすべてを「グローバルに最適化」するのではなく、「ローカル」最適化を通じて最適解を近似し、強いモデルに弱い学習者を 1 つずつ追加します。

具体的には、バイナリ分類問題を考えるとき、AdaBoost アルゴリズムを次のように書き直すことができます。まず、データセット内の観測値の重みを更新し、現在のアンサンブル モデルによって誤分類された観測値に焦点を当てた新しい弱学習器をトレーニングします。次に、弱モデルのパフォーマンスを表す更新係数に従って、弱学習器を加重合計に追加します。弱学習器が優れているほど、強学習器への貢献が大きくなります。

そこで、バイナリ分類問題に直面しているとします。データセットには N 個の観測値があり、弱いモデルのセットが与えられた場合に adaboost アルゴリズムを使用したいと考えています。アルゴリズムの開始時(シーケンスの最初のモデル)では、すべての観測値の重みは同じ「1/N」になります。次に、以下のステップを L 回繰り返します (順番に L 個の学習者を適用します)。

  • 現在の観測値の重みを使用して、可能な限り弱いモデルを適合させる
  • 弱学習器のスカラー評価指標である更新係数の値を計算します。これは、弱学習器の重みがアンサンブルモデルに対してどの程度であるかを示します。
  • 新しい弱学習器に更新係数を乗じて追加することで強学習器を更新する
  • 新しい観測値の重みを計算します。これは、次の反復でどの観測値に焦点を当てるかを示します (クラスタリング モデルが誤って予測した観測値の重みは増加し、正しく予測された観測値の重みは減少します)

これらの手順を繰り返すことで、L 個のモデルを順次構築し、各学習者のパフォーマンスを表す係数で重み付けされた単純な線形結合に集約します。オリジナルの Adaboost アルゴリズムには、LogitBoost (分類) や L2Boost (回帰) などのいくつかのバリエーションがあり、それらの違いは主に損失関数の選択によって決まることに注意してください。

Adaboost は各反復で観測値の重みを更新します。正しく分類された観測値の重みは、誤って分類された観測値の重みに比べて減少します。最終的なアンサンブル モデルでは、パフォーマンスが優れたモデルに高い重みが付けられます。

スタッキングの概要

スタッキングは、バギングやブースティングとは主に 2 つの点で異なります。まず、スタッキングでは通常、異種の弱学習者(異なる学習アルゴリズムが組み合わされている)が考慮されますが、バギングとブースティングでは主に同種の弱学習者が考慮されます。 2 番目に、スタッキング学習はメタモデルを使用して基本モデルを組み合わせますが、バギングとブースティングは決定論的アルゴリズムに従って弱い学習者を組み合わせます。

スタッキング

すでに述べたように、スタッキングの概念は、いくつかの異なる弱学習器を学習し、メタモデルをトレーニングすることでそれらを組み合わせて、これらの弱モデルによって返された複数の予測結果に基づいて最終的な予測結果を出力することです。

したがって、スタッキング モデルを構築するには、適合させる L 個の学習器とそれらを組み合わせるメタモデルの 2 つを定義する必要があります。

たとえば、分類問題の場合、弱学習器として KNN 分類器、ロジスティック回帰、SVM を選択し、メタモデルとしてニューラル ネットワークを学習することにすることができます。ニューラル ネットワークは、3 つの弱い学習者の出力を入力として受け取り、その入力に基づいて最終的な予測を返します。

そこで、L 個の弱学習器で構成されるスタッキング アンサンブル モデルを適合させたいとします。以下の手順に従う必要があります。

  • トレーニングデータを2つのグループに分ける
  • L個の弱学習器を選択し、それらを使用して最初のデータセットを適合させる
  • L個の学習者のそれぞれに2番目のデータセットの観測値を予測させる
  • 弱学習者による予測を入力として、2番目のデータセットにメタモデルを適合させる

前のステップでは、弱学習者のトレーニングに使用されたデータの予測はメタモデルのトレーニングには関係がないため、データセットを 2 つに分割しました。したがって、データセットを 2 つの部分に分割することの明らかな欠点は、ベース モデルのトレーニングにデータの半分しか使用できず、メタ モデルのトレーニングには残りの半分しか使用できないことです。

この制限を克服するために、ある種の「k 分割クロストレーニング」手法 (k 分割クロス検証で行われるものと同様) を使用できます。すべての観測はメタモデルのトレーニングに使用できます。つまり、どの観測に対しても、弱学習者の予測は、k-1 個のデータ フォールド (検討対象の観測を除く) でこれらの弱学習者のインスタンスをトレーニングすることによって行われます。

つまり、k-1 個のデータでトレーニングし、残りのデータで予測を行います。このプロセスを繰り返し実行することで、観測データの任意の部分に対する予測結果を得ることができます。これにより、データセット内の各観測に対して予測を生成し、これらすべての予測を使用してメタモデルをトレーニングできるようになります。

スタッキング アプローチでは、下位層の弱い学習者によって返された出力に基づいて、最も正確な出力を生成するメタモデルをトレーニングします。

オリジナルリンク:

https://towardsdatascience.com/ensemble-methods-bagging-boosting-and-stacking-c9214a10a205

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  顔認識の歴史的な禁止が導入され、警察は犯罪者を捕まえるために顔認識を使用できなくなった

>>:  NASAのジェット推進研究所が人工知能に取り組んでいる様子をご覧ください

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

0 コーパスで「ラベル付け」してより良い多言語翻訳結果を得る方法

[[409976]]今日の多言語翻訳モデルのほとんどは、英語中心のデータセットで統合モデルをトレーニ...

最高人民検察院は、虚偽訴訟の監視に人工知能とビッグデータを活用することを検討している。

虚偽の訴訟は、他人の正当な権利と利益を侵害するだけでなく、社会の健全性を著しく損ない、司法の公平性、...

...

...

自動運転システムのテストに関する簡単な説明

1. 自動運転システムレベルテストの基本理論1.1 自動運転テストシナリオの構成1.1.1 フレーム...

大規模言語モデルとベクトルデータベースに基づくニュース推奨システムの開発

翻訳者|朱 仙中レビュー | Chonglou近年、 ChatGPTやBardなどの生成AIツールの...

...

グラフ機械学習の特徴伝播を用いた欠損データの再構築

この論文で紹介されている特徴伝播​​は、グラフ機械学習アプリケーションで欠落している特徴を処理するた...

コードを書けるAIがオープンソース化! Codex よりも優れた C 言語を書き、12 のプログラミング言語をマスターする

Codex よりも優れた C 言語を記述できる AI コード生成モデルがオープンソース化されました。...

TextRankアルゴリズムを使用した自動テキスト要約

【51CTO.com クイック翻訳】1. はじめにテキスト要約は、自然言語処理 (NLP) の分野に...

人工知能の65年の簡単な歴史:マッカーシーからヒントンまで、人類はどのようなAIを追求しているのでしょうか?

人工知能の発展は65年の歴史があり、厳しい冬も栄光も経験してきました。シンボリックエキスパートシステ...

WAVE SUMMIT での Baidu Wang Haifeng: ディープラーニングが人工知能を産業大量生産に導入

「ディープラーニングは人工知能を大規模な工業生産の段階に押し上げています。ディープラーニングのフレー...

ビデオ会議に最適な AI アプリケーション

人工知能はさまざまな方法でビジネスを支援しています。 COVID-19パンデミックの間、多くの企業は...

国勢調査ではAISのAIロボットが初めて「世帯内に入る」

「こんにちは、泰達街人口調査事務所です。」現在、第7回全国人口調査が盛んに行われている。天津浜海新...

人工知能が仕事を奪っていますが、将来の職場で私たちは何のために戦うのでしょうか?

病院では、人工知能 (AI) は人間の医師よりもレントゲンの分析が得意です。法律事務所では、AI は...