ブースティングとバギング: 堅牢な機械学習アルゴリズムを開発する方法

ブースティングとバギング: 堅牢な機械学習アルゴリズムを開発する方法

導入

機械学習とデータ サイエンスでは、単にデータを Python ライブラリに投入してその結果を活用する以上のことが求められます。データ サイエンティストは、成功するシステムを実装するために、データとその背後にあるプロセスを真に理解する必要があります。この記事は、ブースティングとバギングが何であるかを理解できるように、ブートストラップから始めます。

機械学習とデータ サイエンスでは、単にデータを Python ライブラリに投入してその結果を活用する以上のことが求められます。

データ サイエンティストは、成功するシステムを実装するために、データとその背後にあるプロセスを真に理解する必要があります。

これを実現するための重要な方法は、モデルがブートストラップの使用からどのようなメリットを得られるかを知ることです。これらはいわゆるアンサンブルモデルです。アンサンブル モデルの例としては、AdaBoost や Stochastic Gradient Boosting などがあります。

アンサンブルモデルを使用する理由は何ですか?

アルゴリズムの精度を向上させたり、モデルの堅牢性を高めたりするのに役立ちます。この例としては、ブースティングとバギングが挙げられます。ブースティングとバギングは、データ サイエンティストや機械学習エンジニアにとって必須のトピックです。特に、データサイエンス/機械学習の面接を受ける予定がある場合。

本質的に、アンサンブル学習は「アンサンブル」という言葉から来ています。違いは、美しいハーモニーを作り出すために複数の人が異なるオクターブを使用するのではなく、各声が他の声の隙間を埋めるという点です。アンサンブル学習では、同じアルゴリズムの数百から数千のモデルが連携して、正しい分類を見つけます。

アンサンブル学習について考える別の方法は、盲人と象のたとえ話です。それぞれの盲人は象の特徴を見つけ、それぞれが何か違うものだと認識しました。しかし、彼らが集まって問題について話し合えば、自分たちが何を見ているのかを理解できるかもしれない。

ブースティングやバギングなどの手法を使用すると、統計モデルの堅牢性が向上し、分散が低減されます。

さて、問題は、これらの異なる「B」の単語の違いは何なのかということです。

ブートストラップ

まず、ブートストラップの重要な概念について説明しましょう。多くのデータ サイエンティストが「ブースティング」と「バギング」の説明にすぐに飛びつくため、この点は見落とされてしまうことがあります。どちらもブートストラップが必要です。

図1 ブートストラップ

機械学習において、ブートストラップ法は復元抽出法を指します。このタイプのサンプリングはリサンプリングと呼ばれます。これにより、モデルまたはアルゴリズムは、再サンプリングに存在するさまざまなバイアス、分散、特性をより適切に理解できるようになります。データからサンプルを取得すると、再サ​​ンプルには全体に含まれていたものとは異なる特性が含まれるようになります。図 1 に示すように、各サンプル集団には異なる部分があり、同じものは 2 つとして存在しません。これは、データセットの全体的な平均、標準偏差、およびその他の記述指標に影響します。その結果、より堅牢なモデルの開発が可能になります。

ブートストラップは、過剰適合する傾向がある小さなデータセットにも非常に役立ちます。実際、ある企業にこれを推奨したのは、その企業のデータセットが「ビッグデータ」とは程遠いものだったからです。この場合、ブートストラップが解決策となります。ブートストラップを利用するアルゴリズムは、選択した方法 (ブースティングまたはバギング) に応じて、より堅牢になり、新しいデータセットを処理できるためです。

ブートストラップ法を使用する理由は、ソリューションの安定性をテストできるためです。複数のサンプル データセットを使用して複数のモデルをテストすることで、堅牢性を向上させることができます。おそらく、あるサンプル データ セットの平均値は別のサンプル データ セットよりも大きいか、標準偏差が異なります。これにより、過剰適合したモデルや、さまざまなバリエーションを持つデータセットでテストされていないモデルが破壊される可能性があります。

ブートストラッピングが普及した理由の 1 つは、コンピューティング能力の向上です。これにより、これまで異なる再サンプリングを使用して可能だったものよりも何倍も多くの順列が可能になります。ブートストラップはバギングとブースティングの両方で使用され、これについては以下で説明します。

袋詰め

バギングは実際には (Bootstrap Aggregators) を指します。バギング アルゴリズムを引用するほとんどの論文や投稿では、Leo Breiman [1996] による「Bagging Predictors」という論文が引用されています。

Leo はバギングを次のように説明しています:

「バギング予測子は、予測子の複数のバージョンを生成し、それらのバージョンを使用して集約予測子を取得する方法です。」

バギングは分散を減らすのに役立ちます。これらのモデルは非常に正確ですが、トレーニングに使用されたデータに基づいているだけです。これはオーバーフィッティングとも呼ばれます。

関数がデータに適合しすぎると、過剰適合が発生します。これは通常、実際の方程式が複雑すぎて、すべてのデータ ポイントと外れ値を考慮することができないためです。

図2 過剰適合

過剰適合が発生しやすいアルゴリズムのもう 1 つの例は、決定木です。決定木を使用して開発されたモデルには、非常に単純なヒューリスティックが必要です。決定木は、特定の順序で実行される一連の if-else ステートメントで構成されます。したがって、データセットを新しいものに変更すると、以前のデータセットと比較して、基礎となる機能の分布に何らかの偏りや違いが生じる可能性があります。これはデータがモデルに適合しないためです。

バギングは、データをサンプリングして置き換え、データに独自の分散を作成することで、この問題を回避します。バギングは複数の仮説 (モデル) を同時にテストします。これにより、さまざまな特性 (中央値、平均値など) を持つデータで構成される可能性のある複数のサンプルを使用することで、ノイズが削減されます。

各モデルに仮定が設定されたら、モデルでは、分類には投票を使用し、回帰には平均化を使用します。ここで、「Bootstrap Aggregating」の「Aggregating」が役立ちます。各仮説には同等の重みが与えられます。これは、後でブースティングについて説明するときに、2 つのアプローチが異なる点の 1 つです。

図3 バギング

基本的に、これらのモデルはすべて同時に実行され、どの仮説が最も正確であるかを投票します。

これにより、分散が低減され、過剰適合が軽減されます。

ブースト

ブースティングとは、加重平均を使用して弱い学習者を強い学習者に変えるアルゴリズムのグループを指します。バギングとは異なり、バギングでは各モデルを独立して実行し、どのモデルにも優先順位を付けずに最後に出力を集約します。ブースティングは「チームワーク」がすべてです。実行される各モデルによって、次のモデルが重点を置く機能が決まります。

ブースティングにはブートストラップも必要です。しかし、ここにはもう一つの違いがあります。バギングとは異なり、各データ サンプルの重みが増加します。つまり、一部のサンプルは他のサンプルよりも頻繁に実行されます。

データサンプルに重み付けする必要があるのはなぜですか?

図4 ブースティング

boost は各モデルを実行する際に、どのデータ サンプルが最も成功し、どのデータ サンプルが成功しなかったかを追跡します。出力分類エラーが最も多いデータセットには、より大きな重みが与えられます。これらのデータはより複雑であると考えられており、モデルを適切にトレーニングするにはより多くの反復が必要になります。

実際の分類フェーズでは、ブースティングによってモデルも異なる方法で処理されます。ブースティングでは、より良いモデルにより良い重みが与えられるため、モデルのエラー率が追跡されます。

このように、「投票」が行われると、バギングと同様に、より良い結果を持つモデルが最終出力に対してより強い影響力を持つようになります。

要約する

ブースティングとバギングはどちらも分散を減らすのに適した方法です。アンサンブル法は、多くの場合、単一のモデルよりも優れたパフォーマンスを発揮します。これが、多くの Kaggle 受賞者がアンサンブル手法を使用する理由です。ここで説明されていないのはスタッキングです。ただし、これには独自の投稿が必要です。

しかし、それらはすべての問題を解決するわけではなく、それら自体の問題を抱えています。理由はいろいろあります。バギングは、モデルが過剰適合した場合に分散を減らすのに大きな役割を果たします。ただし、2 つの方法のうち、ブースティングの方がより良い選択である可能性が高いです。ブーストによりパフォーマンスの問題が発生する可能性も高くなります。これは、不一致なモデルのバイアスを減らすのにも役立ちます。

ここで経験と専門家の出番です。最初に機能するモデルに飛びつくのは簡単です。ただし、アルゴリズムとその選択のすべての特性を分析することが重要です。たとえば、決定木に特定のリーフ ノードが設定されている場合、次のような疑問が生じます。なぜそのように設定されているのでしょうか。このアイデアをサポートするためにデータ ポイントを視覚化する他の方法がない場合、おそらくそのように実装すべきではありません。

これは、さまざまなデータセットで AdaBoost や Random Forest を試すだけではありません。最終的なアルゴリズムは、アルゴリズムから得られた結果と利用可能なサポートに基づいて決定されます。

<<:  1秒で元の写真に戻る: Adob​​e Photoshop のリバース ツールは、編集した場所を認識して修正するのに役立ちます

>>:  5G + AI はカスタマー サービス業界にどのような大きな影響を与えるでしょうか?

ブログ    
ブログ    
ブログ    

推薦する

オタクなおじさんが独学でAIを学んでマスターレベルを作成し、Twitterで人気になった

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

ディープラーニングモデルの圧縮と加速モデル推論

導入機械学習モデルを本番環境にデプロイする場合、モデルのプロトタイプ作成フェーズでは考慮されていなか...

...

住宅建設はよりスマートになる

スマートホーム革命はここしばらく本格的に始まっています。住宅所有者はデータと IoT テクノロジーを...

2020 年に注目すべき機械学習とデータサイエンスのウェブサイト トップ 20

今日最も進歩的で、最先端で、刺激的なもの…データ サイエンスと機械学習は、今日非常に魅力的で、非常に...

2020 年のトップ産業人工知能アプリケーション

[[337240]]人工知能技術は今、世界を変えつつあります。多くの業界はすでに、ビジネス プロセス...

...

表現学習: 自然言語のための高度なディープラーニング

表現学習では、半教師あり学習と自己教師あり学習の特定の機能を通じて、モデルのトレーニングに必要なデー...

...

テキストアドベンチャーゲームは人工知能の助けを借りて新たな命を吹き込まれる

こんなゲームがあります:あなたの名前はシャオミン、ラリオンの高貴な領主であり、あなたの指揮下に多数の...

AI人材の確保をめぐる秘密の戦い:中国が勝利する可能性は?

[[251811]]画像ソース @Visual China人工知能の概念は、提唱されてから60年以...

...

詳細な分析: AI がイノベーションを容易にする方法

開発手段。イノベーションの結果は、企業が市場のニーズを満たす新製品を継続的に設計・生産することを奨励...

具現化された知能の新時代! VLAは、UIナビゲーションとロボット操作を備えた最強の基本モデルMagmaを歓迎します

既存の大規模言語モデル、画像生成モデルなどは、少数のモーダルデータに対してのみ動作し、人間のように物...

LLVM の創始者、クリス・ラトナー: AI インフラ ソフトウェアを再構築する必要がある理由

かつて人々は AI の美しいビジョンを思い描いていましたが、現状は満足できるものではありません。 A...