アンサンブル学習とは

共同執筆者

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

アンサンブル学習は、複数の学習モデルを組み合わせて、予測の精度を高めます。データ・セットが限られていることに起因する問題に対処するために利用されています。

アンサンブル学習は、機械学習の手法で、より精度の高い予測を得るために、2つ以上の学習モデル(例:回帰モデル、ニューラル・ネットワーク)を組み合わせたものです。言い換えれると、アンサンブル・モデルは、複数の個別のモデルを組み合わせて、単一モデルの場合よりも正確な予測を生成することができます。1この手法は、場合によって、コミッティー・ベースの学習と呼ばれることもあります。アンサンブル学習は、学習モデルの集団性が個別の学習モデルよりも、全体として精度が高いという原則に基づいています。2実際に、研究でも機械学習モデルと畳み込みニューラル・ネットワーク(CNN)により、その有効性が裏付けられています。

用語に関する注意:ベース学習器ベース・モデル、および場合によっては、ベース推定器は、アンサンブル・アルゴリズムで使用される個々のモデルを指します。文献ではさらに、ベース学習器を強い学習器と弱い学習器に分類しています。弱いモデルまたは学習器は、ランダムな推測よりも少し優れたパフォーマンスを達成するモデルとして定義されています。二項分類問題の場合、弱い分類器は、より正式には、約50%の精度を達成する分類器です。対照的に、強いモデルまたは学習器は、優れた予測パフォーマンスを達成し、二項分類では80%以上の精度を達成するものとして定義されています。3

一部のソースでは、アンサンブル手法、特に逐次法が弱い学習器を強い学習器に効果的に押し上げるため、弱い学習器ベース学習器を混同していることに注意してください。4

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

アンサンブル学習を使用する理由

バイアスと分散のトレードオフ

バイアスと分散のトレードオフは、機械学習においてよく知られた問題であり、多くの正規化手法の背後にある原理です。これらは次のように定義できます。

バイアスは、予測値と実測値の平均の差を測定します。バイアスが大きくなると、トレーニング・データ・セットにおけるモデルの予測の精度が低下します。バイアスが大きくなると、トレーニングにおける誤差が大きくなります。最適化とは、バイアスを小さくする試みです。

- 分散は、特定のモデルのさまざまな実現値における予測値の差です。分散が大きくなると、目に見えないデータにおけるモデルの予測精度が低くなります。分散が大きくなると、テストおよび検証における誤差が大きくなります。一般化とは、分散を小さくする試みです。

したがって、偏りと分散は、それぞれトレーニング・セットとテスト・セットに対するモデルの精度と反比例の関係にあります。5これらは、モデルの誤差率を構成する3つのうちの2つで、3つ目は還元不可能な誤差です。この3つ目の用語は、データ・セットに固有のランダム性に起因する誤差を表します。モデルの誤差率は、次の式で定義されています:6

アンサンブル学習における誤差の式

多数のモデルと1つのモデル

1つのモデル・トレーニング・アルゴリズムは、多数の変数(例:トレーニング・データ、ハイパーパラメーターなど)で構成されており、結果として生じるモデルの誤差に影響を与えます。したがって、単一のトレーニング・アルゴリズムであっても、それぞれに独自のバイアス、分散、還元不可能な誤差率を持つ、さまざまなモデルを生成する可能性があります。アンサンブル・アルゴリズムは、複数の多様なモデルを組み合わせることで、個々のモデルの複雑さと利点(特定のデータ・サブセットのバイアスが特に小さい)を維持しながら、全体的な誤差率を小さくすることができます。7

研究によると、一般に、組み合わせたモデル間の多様性が大きいほど、結果として得られるアンサンブル・モデルの精度は高くなります。したがって、アンサンブル学習は、モデルのバイアスを犠牲にすることなく、過学習などの回帰問題に対処できます。実際に、研究によると、多様な非正則化モデルで構成されたアンサンブル(つまり、トレーニング・データに過剰適合するモデル)は、単一の正則化モデルよりも優れています。8さらに、アンサンブル学習の手法は、高次元データに起因する問題の解決に役立ち、次元削減の代替手段として効果的に機能します。

アンサンブル・モデルの種類

文献では、機械学習におけるアンサンブル学習手法は、並列学習と逐次学習の2つのグループに広く分類されています。

- 並列法は、各ベース学習器を他の学習器と個別にトレーニングします。その名前のとおり、並列アンサンブルはベース学習器を並列に、互いに独立にトレーニングします。

- 逐次法は、直前のステップで学習されたモデルの誤差を最小化するように、新しいベース学習器をトレーニングします。つまり、逐次法では、ベース・モデルを段階的に、順次構築します。9

並列アンサンブルと逐次アンサンブルを示した図

並列法は、さらに同種と異種に分けられます。同種並列アンサンブルは、同じベース学習アルゴリズムを使用して、すべてのコンポーネント・ベース学習器を生成します。異種並列アンサンブルは、異なるアルゴリズムを使用して、ベース学習器を生成します。 10

投票

アンサンブル法では、ベース学習器を最終的な学習器にどのように組み合わせるのでしょうか。いくつかの手法(例:スタッキング)では、個別の機械学習アルゴリズムを使用して、ベース学習器からアンサンブル学習器に学習させます。しかし、ベース学習器の予測を統合する一般的な方法の1つは投票、より正確には多数決です。

多数決では、特定のデータ・インスタンスに対する各ベース学習器の予測が考慮され、大多数の学習器の予測によって決定された最終的な予測が出力されます。例えば、二項分類問題では、多数決は、特定のデータ・インスタンスの各ベース分類器から予測を取得し、多数決の予測を最終予測として使用します。加重多数決は、この手法の拡張であり、特定の学習器の予測に他の学習器よりも大きな重みを与えます。11

アンサンブル学習法

おそらく、最も一般的なアンサンブル学習法の3つは、バギング、ブースティング、スタッキングです。実際、これらは、逐次、並列、同種および異種のアンサンブル法の違いの一例です。

この概要は、網羅的ではないことに注意してください。アンサンブル法には、ブレンディングや加重平均アンサンブルなど、他にもいくつかの手法があります。ここで紹介しているものは、文献の中で最も顕著な方法のいくつかを調査することを目的としています。

バギング

バギングは、ブートストラップ集約法とも呼ばれる同種の並列法です。特定の学習データ・セットの変更された反復を使用して、同じ学習アルゴリズムで複数のベース学習器をトレーニングします。12PythonのScikit-learnのアンサンブル・モジュールには、BaggingClassifierなどのバギングを実装するための関数があります。

具体的には、バギングでは、ブートストラッピングと呼ばれる手法を用いて、1つの初期トレーニング・データ・セットから複数の新しいデータ・セットを導き出し、複数のベース学習器をトレーニングします。その仕組みですが、トレーニング・データ・セットにn個のトレーニング・サンプルが含まれているとします。ブートストラッピングは、そのセットからn個のデータ・インスタンスを新しいサブサンプル・データ・セットにコピーします。初期インスタンスには複数回出現するものもあれば、完全に除外されるものもあります。これらは、ブートストラッピングのサンプルです。このプロセスをx回繰り返すと、元のデータ・セットのx回の反復が生成され、それぞれには初期セットのn個のサンプルが含まれます。その後、初期セットの各反復を使用して、同じ学習アルゴリズムで個別のベース学習器をトレーニングします。13

アンサンブル学習の文脈におけるバギングを示した図

ランダム・フォレストはバギングを拡張したもので、特にランダムな決定木のアンサンブルを構築するためにバギングを使用することを意味します。これは標準的な決定木とは異なり、後者はすべての特徴をサンプリングして分割に最適なものを特定します。対照的に、ランダム・フォレストは、特徴のランダムな部分集合を繰り返しサンプリングして、決定ノードを生成します。14

スタッキング

スタッキング(もしくは、スタック一般化15)は、メタ学習として知られているものを例示する異種並列法です。メタ学習では、複数のベース学習器のアウトプットでメタ学習器をトレーニングします。スタッキングとは、学習器ごとに異なる学習アルゴリズムを用いて、同じデータ・セットから複数のベース学習器を学習させることです。各ベース学習器は、未見のデータ・セットに対して予測を行います。これらの最初のモデル予測はコンパイルされ、メタモデルである最終的なモデルのトレーニングに使用されます。16

アンサンブル学習の文脈におけるスタッキングを示した図

メタ学習器をトレーニングするためには、ベース学習器のトレーニングに使用したデータ・セットとは異なるデータ・セットを使用することが重要であることに注意してください。同じデータ・セットを使用してベース学習器とメタ学習器をトレーニングすると、過学習になってしまう可能性があります。これには、テスト・セット・データとして機能させるために、ベース学習器のトレーニング・データからデータ・インスタンスを除外する必要がある場合があり、これがメタ学習のトレーニング・データになります。文献では、これらのデータ・セットが重複しないようにするためのクロスバリデーションなどの手法が推奨されていることがよくあります。17

バギングと同様に、Pythonのsklearn.ensembleモジュールでは、スタッキング手法を実装するためのさまざまな関数が提供されています。

ブースティング

ブースティング・アルゴリズムは、逐次アンサンブル手法です。ブースティングには多くのバリエーションがありますが、すべて同じ一般的な手順に従います。ブースティングは、ある初期データ・セットd学習器をトレーニングします。結果として得られる学習器には通常、データ・セット内の多くのサンプルを誤って分類してしまうという弱点があります。バギングと同様に、ブースティングは初期データ・セットからインスタンスをサンプリングして新しいデータ・セット(d2)を作成します。ただし、バギングとは異なり、ブースティングでは、最初のモデルまたは学習器から誤って分類されたデータ・インスタンスが優先されます。新しい学習器は、この新しいデータ・セット(d2)でトレーニングされます。次に、3番目のデータ・セット(d3)がd1およびd2からコンパイルされ、d1d2が一致しない2番目の学習器の誤分類されたサンプルとインスタンスが優先されます。このプロセスをn回繰り返すと、n個の学習器が生成されます。ブースティングは、すべての学習器を結合して重み付けし、最終的な予測を生成します。18

アンサンブル学習の文脈におけるブースティングを示した図

ブースティング・アルゴリズムは、新しいデータ・セットを作成するときに、誤って予測されたデータ・インスタンスの優先順位付け方法が大きく異なります。最もよく知られている2つのブースティング法がこれを示しているかもしれません。

- アダプティブ・ブースティング(AdaBoost)は、モデルの誤差に重みを付けます。つまり、次の学習器をトレーニングするためのデータ・セットの新しい反復を生成する際に、前の学習者の誤分類サンプルに重みを付けて、次の学習器がこれらの誤分類サンプルを優先するようにします。

- 勾配ブースティング、新しい学習器をトレーニングする際に、残差を利用します。勾配ブースティングは、誤分類されたサンプルに重み付けをするのではなく、次のモデルの目標予測値を設定するために、前のモデルの残差を使用します。このようにして、1つのモデルが残した誤差のギャップを埋めようとします。19

残念ながら、sklearnにはブースティングを実装するための事前定義された関数はありません。しかし、Extreme Gradient Boosting(XGBoost)オープンソース・ライブラリーでは、Pythonで勾配ブースティングを実装するためのコードが提供されています。

最近の研究

学習器をトレーニングするための大規模でフェア・ユースなラベル付きデータ・セットを取得することの難しさを考えると、アンサンブル学習は、より少ないデータで学習器のパフォーマンスを向上させる試みとして、多くの応用がなされています。例えば、最近のいくつかの研究では、データ・セット20の異なる表現で複数のモデルをトレーニングしたり、いくつかのバイアス・モデルを組み合わせたりするなど、コンピューター・ビジョン・タスクのアンサンブル手法を用いてモデルの一般化能力を向上させるという有望な結果が示されています。21

アンサンブル手法は一般化能力を向上させる可能性がある一方で、不公平性を生じさせてしまう可能性があります。機械学習において、公平性とは、通常、機密データを用いてトレーニングされた学習器に起因する自動化システム内の(多くの場合、少数派グループに対する)アルゴリズム・バイアスを軽減しようとする試みを指します。いくつかの研究で、アンサンブル・モデルの公平性を向上させるためのメトリクス、前処理、および後処理の手法が提案されています。22AIにおける公平性と倫理的慣行を改善するための継続的な努力は、今後の研究において極めて重要なテーマになります。

関連ソリューション
IBM watsonx.ai

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。

watsonx.aiをご覧ください。
人工知能ソリューション

業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

AIソリューションはこちら
AIコンサルティングとサービス

AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

AIサービスはこちら
次のステップ

AI開発ライフサイクル全体にわたる機能にワンストップでアクセスできます。使いやすいインターフェース、ワークフロー、業界標準のAPIやSDKを利用して、強力なAIソリューションを構築できます。

watsonx.aiの詳細はこちら デモを予約