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

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

導入

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

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

推薦する

製造業の未来:AIGCとその他の先進技術

製造業とメタバースMetaverse テクノロジーを製造業に統合すると、企業の運営方法に革命をもたら...

2022年ワールドカップ、審判の補助に人工知能を導入

2022年FIFAワールドカップは、今年11月21日から2022年12月18日までカタールで開催され...

人工知能:「全能」ではない

[[391544]]私の国の人工知能の研究と応用は世界でも比較的進んでいます。メディアは、中国はこの...

ブロックチェーンのコア技術「ハッシュと暗号化アルゴリズム」を公開

[[285099]]ご存知のとおり、ブロックチェーンの主要な技術コンポーネントは、主に P2P ネッ...

人工知能技術はスマートシティの未来となるのでしょうか?

人工知能技術の急速な発展は、私たちの日常生活のあらゆる側面に変革的な影響を及ぼしています。 最も注目...

...

TensorFlow から Theano まで: 7 つのディープラーニング フレームワークの水平比較

ディープラーニング プロジェクトを開始する前に、適切なフレームワークを選択することが非常に重要です。...

機械学習の教訓: 5 つの企業が失敗を共有

機械学習は現在注目されている技術の 1 つであり、多くのビジネスおよびテクノロジー分野の幹部は、自社...

RPA プロジェクトを社内で開発すべきでない理由

ロボティック・プロセス・オートメーション (RPA) は、今日最も急速に成長しているテクノロジーの ...

画像をデジタル化して特徴を抽出するための、事前トレーニング済みのディープラーニングモデル6つ

[51CTO.com クイック翻訳] ユビキタスセンサーは毎日大量の画像を収集しており、人工知能技術...

2020年中国人工知能産業調査レポート

2020年は異例の年でした。新型コロナウイルス感染症のパンデミックは多くの経済生活のリズムを乱し、人...

お茶や水を出すロボットを購入する見込みはありますか?メタとニューヨーク大学がOK-Robotを開発

「xx、テレビ台のリモコンを取ってきて。」 家庭環境では、多くの家族が必然的にこの種の作業を命じられ...

...