バギングとは
バギング(またはブートストラップ・アグリゲーティングとも呼ばれます)が、どのようにして機械学習モデルの精度を向上させ、優れた洞察を開発するのに役立つのかを説明します。
IBM Zのソフトウェアの等角図
バギングとは

バギング(またはブートストラップ・アグリゲーティングとも呼ばれます)は、ノイズの多いデータ・セット内の分散を小さくするために一般的に使用されているアンサンブル学習の手法です。 バギングでは、トレーニング・セット内のランダムなサンプル・データが置換によって選択されます。これは、個々のデータ・ポイントが複数回、選択可能であることを意味します。 いくつかのデータ・サンプルが生成された後、これらの弱いモデルは独立してトレーニングされ、タスクのタイプ(回帰または分類など)に応じて、その予測値の平均、または多数決によって、より精度の高い推定値が得られます。 

ちなみに、ランダム・フォレスト・アルゴリズムはバギング手法を拡張したものとして考えられており、バギング手法とランダム性の特徴の両方を使用して、複数の決定木を集めたランダム・フォレストを作成します。

アンサンブル学習

アンサンブル学習は、大人数グループで行った決定の方が一人のエキスパートの判断に勝るという「群衆の叡智」の考え方に基づいています。 同様に、アンサンブル学習とは、ベースとなる学習器(またはモデル)を集めたグループ(またはアンサンブル)を用いて、最終予測値の精度を高める手法のことです。 ベース学習器、または弱学習器と呼ばれる単一のモデルは、単体では高バリアンスになるか、または高バイアスとなり、うまく機能しない場合があります。 しかし複数の弱学習器を集めた場合は、これらを組み合わせることで、バイアスやバリアンスが低くなり、優れたモデル・パフォーマンスを生み出せるため、強い学習機を生み出すことが可能です。

アンサンブル学習の手法は、多くの場合は、決定木を使用して図解されています。それは、決定木が剪定されていない時には、このアルゴリズムは過学習を起こす(低バリアンス、高バイアス)傾向にあり、決定木が小さい場合は、1つの水準しか持たない決定木である決定株のように、学習不足(低バリアンス、高バイアス)になる可能性があるからです。 あるアルゴリズムが、トレーニング・セットに対して過学習、または学習不足を起こす場合は、新しいデータセットに対して汎用化できないことに注意する必要があります。このため、アンサンブル学習の手法は、新しいデータセットに対してモデルの汎用化を可能にする対処法として使用されています。 決定木は、高バリアンス、または高バイアスの場合を明確に示しますが、その一方で、決定木は、バイアスとバリアンスのトレードオフにおける「スイート・スポット」を見つけるためにアンサンブル学習を活用する、唯一のモデリング手法ではないということは、注目すべき点です。

バギングとブースティング

バギングとブースティングは、アンサンブル学習の主要な2つの手法です。 こちらの調査(PDF、248 KB)(ibm.com外部へのリンク)で示されている通り、この2つの学習手法の主な違いは、そのトレーニング方法にあります。 バギングでは、弱い学習機は並行して訓練されますが、ブースティングでは順番に学習させます。 これは、一連のモデルが構築され、それぞれ新しいモデルの反復により、以前のモデルで誤分類されたデータの重みが増すことを意味します。 この重みを再配分することにより、アルゴリズムが、パフォーマンスを改善する上で焦点を絞る必要のあるパラメータを特定するのに役立ちます。 AdaBoostは、「adaptative boosting algorithm(アダプティブ・ブースト・アルゴリズム)」の略で、このタイプの最初のアルゴリズムの1つであるため、最もよく使用されるブースティング・アルゴリズムの1つとなっています。 その他にも、XGBoost、GradientBoost、BrownBoostなどのブースティング・アルゴリズムがあります。

バギングとブースティングのもう1つの違いは、使用される状況が違うことです。 例えば、バギング手法が主に高バリアンスで低バイアスを示す弱学習器に対して使用されている一方で、ブースティング手法は低バリアンスで高バイアスであることが確認される際に使われます。

バギングの仕組み

1996年、Leo Breiman氏 (PDF、829 KB)(ibm.com外部へのリンク)が、以下の3つの基本手順を持つバギング・アルゴリズムを提唱しました。

  1. ブートストラッピング:  バギングは多様なサンプルを作成するために、ブートストラッピング・サンプリング手法を用いています。 このリサンプリング手法は、ランダムでデータポイントを選択し、置き換えることによって、トレーニング・データ・セットのさまざまなサブセットを生成します。 これは、トレーニング・データ・セットからデータ・ポイントを選択するたびに、同じインスタンスを複数回選択できることを意味します。 結果として、インスタンス毎の値がサンプル内で2回以上繰り返されます。
  2. 並行トレーニング:これらのブートストラップのサンプルはその後、独立かつ並行して弱学習器またはベース学習器と共にトレーニングされます。
  3. アグリゲーション:最後に、タスク(回帰または分類など)に応じて、予測の平均値または多数派を占めた値が、より正確な推定値の計算に使われます。 回帰の場合、個々の分類器が予測したすべての出力値から平均値が取られます。これはソフト投票とも呼ばれています。 分類に問題がある場合は、多数決で最も票の多い分類器が受け入れられます。これは、ハード投票または多数決投票とも呼ばれます。
バギングのメリットと課題

分類や回帰の問題にバギングの手法を使用する場合は、主なメリットと課題としては、以下が挙げられます。

バギングの主なメリット:
  • 実装が簡単:scikit-learn(sklearnとも呼ばれる)などのPythonライブラリーは、基本の学習器や推定器の組み合わせを容易にし、モデルのパフォーマンスを向上させます。 scikit-learnの文書(IBM外部へのリンク)には、モデルの最適化に使用できるモジュールについて記載されています。
  • バリアンスの縮小:バギングは学習アルゴリズム内におけるバリアンスを小さくします。 これは、脱落値が高バリアンスにつながる可能性のある高次元のデータに対して特に有用で、過学習する傾向が高くなり、新しいデータセットに対して精度の高い汎用化を防ぎます。

バギングの主な課題:

  • 解釈可能性の喪失:予測の際の平均化により、バギングを通してビジネスの精密な洞察を導き出すことは難しくなってしまいます。 個々のデータ・ポイントよりも出力が正確になる一方で、より正確な、または完全なデータセットであれば、単一の分類器または回帰モデル内でより精度の高い予測を出すことも可能です。
  • 計算負荷が高い:反復の回数が増加するほど、バギングは遅くなり、より負荷の高い作業になっていきます。 そのため 、リアルタイムで動作するアプリケーションには適していません。 クラスター化されたシステムや多数のプロセッシング・コアは、大規模なテスト・セット上で、迅速にバギングのアンサンブルを作成するために理想的です。
  • 柔軟性が低い:バギングは安定性の低いアルゴリズムに対して有効な手法です。 モデルのデータセット内のバリアンスが少ないため、安定性が高い、またはバイアスが大きいのものに対しては、使用する際のメリットは小さくなります。 機械学習の実践ガイド(IBM外部へのリンク)に記載されているように、「線形回帰モデルをバギングすると、b が十分に大きいものに対しては元の予測を返すだけに留まります。」
バギングの用途

バギングは多くの業界で使用されており、GRAMMY Debates with IBM Watsonなど、現実世界での価値と興味深い視点の両方に対する洞察を提供しています。 主なユースケースには以下が挙げられます。

  • 医療:バギングは医療データの予測を作成する際にも使用されてきました。 例えば、この調査(PDF 2.8 MB)(ibm.com外部へのリンク)で示されているように、アンサンブル手法は特定の形質を識別するための遺伝子および/またはタンパク質の配列ような、一連のバイオインフォマティクスの問題に対して用いられてきました。 具体的なユースケースを知りたい方は、こちらの調査(ibm.com外部へのリンク)を参照してください。さまざまなリスクの予測子に基づいた糖尿病の発症予測における、バギングの用途について詳しく説明されています。
  • IT:バギングは、ネットワーク侵入検知システムなど、ITシステムにおける適合率と正確率の向上にも貢献しています。 こちらの調査(ibm.com外部へのリンク)では、バギングが、いかにしてネットワーク侵入検知の精度を高め、偽陽性の割合を減らせるかについて取り上げています。
  • 環境:バギングなどのアンサンブル学習の手法は、リモート・センシングの分野で用いられてきました。 詳しくは、こちらの研究調査(ibm.com外部へのリンク)で、沿岸部における湿地タイプのマッピングにおける使用法について説明されています。
  • 財務:バギングは金融業界のディープ・ラーニング・モデルでも活用され、不正行為の検知、信用リスク評価、オプション価格の問題など重要な業務の自動化に貢献してきました。 こちらの研究(ibm.com外部へのリンク)では、融資のデフォルト・リスクを評価するにあたり、他の機械学習手法よりも、バギングが活用されてきたケースについて説明されています。 こちらの調査(ibm.com外部へのリンク)は、銀行などの金融機関でクレジット・カードの不正行為のリスクを最小に抑えるために、バギングがどのように役立つかを取り上げています。
関連ソリューション
IBM SPSS Modeler

IBM SPSS Modelerは、データ・パターンの検出、予測精度の向上、意思決定の改善を支援するための予測分析を提供します。

IBM SPSSModelerの詳細はこちら
Watson Studio

信頼性の高いAIを、任意のクラウド上で構築して拡大できます。 ModelOps用のAIライフサイクルを自動化します。

Watson Studioの詳細はこちら
バギングと ブースティング

IBMデータ・サイエンス・コミュニティーを通して、データサイエンスと機械学習についてさらに詳しく知ることができます。

IBMデータ・サイエンス・コミュニティーの詳細はこちら
詳細情報はこちら

IBMのソリューションは、機械学習のライフサイクルをエンドツーエンドでサポートします。 IBM SPSS ModelerやWatson StudioのようなIBMのモデリング・ツールが、様々なモデルの作成やその精度向上の調整にどのように役立ち、予測や細かいデータ分析の改善をどのように支えているかについて説明します。 IBMidを登録して、IBMデータサイエンス・コミュニティーに参加し、データサイエンスと機械学習について詳細をご覧ください。

IBMのデータサイエンス・コミュニティー今すぐ参加する