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

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

導入

機械学習とデータ サイエンスでは、単にデータを 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 はカスタマー サービス業界にどのような大きな影響を与えるでしょうか?

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

推薦する

英国メディアが人工知能の軍事応用とそのリスクを分析

[[440377]]はじめに12月7日、英国のドローン戦争ウェブサイトは、人工知能が各国の軍事部門に...

デジタル変革と人工知能

[[415031]]今日のビジネスにおける変化の最大の原因は、デジタル変革と呼ばれる取り組みです。つ...

100 日で機械学習: モデルのトレーニングが完了したら、次は何をする?

機械学習をマスターするための 100 日 | 1 日目から 62 日目までのコレクションみなさんこん...

流行は収まったが、学校の開始は何度も延期されている。プログラムシミュレーションでその理由がわかる

全国的な「オンライン授業」が始まって1か月、湖北省以外の省では新型コロナウイルスの新規感染者もそれほ...

自動運転車が将来の都市生活に及ぼす影響

倫理的配慮無人運転車の問題は、自動運転車の倫理性の問題として要約できます。この問題の典型的なバージョ...

DeepMindが乳がん診断AIをリリース:市場に投入するにはまだ多くの課題がある

GoogleのDeepMindチームは最近、「乳がんスクリーニングAIシステムの国際評価」と題した論...

DeLu Deep Visionが蘇州スマート博覧会に登場、3Dフルスタックでマシンビジョンの新時代を切り開く

8月14日、2020年世界人工知能製品応用博覧会(AIExpo2020)が予定通り蘇州国際博覧センタ...

...

...

Microsoft Bing Chat が Chrome と Safari で利用可能になりましたが、いくつかの制限があります

Microsoft の人工知能チャットボット Bing Chat が、Google Chrome お...

...

プログラマーでなくてもわかる「機械学習」の原理

機械学習とは何ですか?一般的なシナリオから始めましょう:ある日、マンゴーを買いに行ったところ、店員が...

清華大学が転移学習アルゴリズムライブラリをオープンソース化:PyTorch実装に基づき、既存のアルゴリズムの簡単な呼び出しをサポート

最近、清華大学ビッグデータ研究センターの機械学習研究部門は、効率的で簡潔な転移学習アルゴリズムライブ...

...