【AI・機械学習】アンサンブル学習とは|バギング・ブースティング・スタッキングの仕組みやアルゴリズム解説

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • 機械学習における「アンサンブル学習」について詳しく知りたい。
  • アンサンブル学習代表手法「バギング」「スタッキング」「ブースティング」を理解したい。
目次

【機械学習】アンサンブル学習とは?

アンサンブル学習とは、複数の機械学習モデル組み合わせにより、高性能な予測モデル構築を目指した学習手法です。

アンサンブル学習の仕組み

アンサンブル学習の特徴として、複雑な機械学習モデル(MLモデル)を1つ作成するのではない点にあります。

弱学習器と呼ばれる予測精度の低い機械学習モデルを複数作成することによって、複数の弱学習器から得られた予測結果を集計・比較し、最終的に精度の高い予測結果を出力することを目指しています。

アンサンブル学習の予測結果統合・比較|多数決・平均・加重平均

アンサンブル学習において、複数の機械学習モデルの予測結果を統合・比較し、最終的な予測結果出力に至るまでの過程を見ていきましょう。

機械学習モデルには大きく分けて「分類」と「回帰」という種類があります。このモデル種類の違いによって、最終的な予測結果出力に至るまでの過程が異なるため、それぞれ分けて解説します。

補足
  • 分類モデル:「True/False」や「0/1」のように、離散型のカテゴリ値を出力
  • 回帰モデル:「0<出力結果<10」のように、連続型の数値を出力

分類モデル

アンサンブル学習に分類モデルを用いた場合、最終的な出力結果を得るのに「多数決」という集計方法が代表的に採用されます。多数決とは、複数の分類モデルから得られた予測結果を集計し、最も多かった結果を最終的な予測結果として採用する方法を指します。

一方で、2値分類の場合「満場一致」という方法が採用される場合もあります。これは、複数のモデルが「True」と予測した場合は最終結果を「True」とし、1つでも「Faluse」が含まれた場合は最終結果も「False」になるという集計方法です。

回帰モデル

アンサンブル学習に回帰モデルを用いた場合、「平均」「加重平均」という方法が代表的に採用されます。複数の回帰モデルから得られた予測結果を集計し、それらの平均値を最終的な予測結果として取り扱うのです。

ここで加重平均とは、平均の発展系と捉えましょう。予測結果のうちどれが重要かあらかじめ優劣(重要度や重みと呼ぶ)を決めておき、その重要度も加味して平均値を算出する方法です。

アンサンブル学習の代表的手法

アンサンブル学習には、「バギング」「ブースティング」という大きく分けて2つの手法があります。さらに、バギングの応用版として「スタッキング」という方法があります。それぞれ1つずつ確認していきましょう。

  • バギング
  • スタッキング
  • ブースティング

【アンサンブル学習】バギング

バギングとは、「Bootstrap Aggregating」の略であり、複数の機械学習モデル(弱学習器)を並列に組み合わせ、高性能な予測モデル構築を目指した学習手法です。

バギング|仕組み

バギングによるモデル学習・推論過程に至るデータ抽出手法として、ブートストラップ法が採用されています。ブートストラップ法では、全データから重複込みでランダムにデータを取り出す復元抽出という抽出方法が採用されています。

上図を見てみましょう。この例では、9種類のサンプルデータがバギング毎にランダムに復元抽出されている様子が示されています。復元抽出されたデータ群(データA〜データN)は機械学習モデル(MLモデル)の学習に使用されます。

この図が示すように、各機械学習モデルには9種類のサンプルデータのランダムなサブセット(データA〜データN)が渡されます。復元抽出を行なうため、各サブセットには重複するサンプルが含まれる場合があります。

ランダムなサブセット1組に対して1つの機械学習モデルを用意して学習を行います。そして、複数の機械学習モデルから予測結果を算出し、多数決や平均値集計に基づき最終的な予測結果を出力するのです。

バギング|メリット

アンサンブル学習の弱点である「バリアンス」を減少可能

構築した1つの機械学習モデルが過学習の状態に陥ると、そのモデルが出力する予測結果には汎化誤差などのノイズが顕著に表れてしまいます。一方でバギングの場合、ブートストラップ法に基づくランダムなデータ抽出でトレーニングデータを複数生成し学習を行っているため、ノイズの影響を受けづらいという特徴があります。

さらに、バギングでは複数の予測結果を集計し最終結果を得る仕組みであるため、その集計過程でノイズの影響を打ち消すことができ、結果的に予測値のバリアンス(予測値がどれだけ散らばっているか)を減少させることができるのです。

並列処理に伴う時間時間の短縮

バギングでは、複数の弱学習器を作成した後、並列処理のもとモデル学習を行ないます。よく比較されるバギングのように、複数モデルを直列に配置して学習を行う必要がないため、全体的な処理時間を短縮できるメリットがあります。

バギング|デメリット

機械学習モデルに適合するサブセットに偏りが生じることがある

バギングは、ブートストラップ集約の仕組み(ランダムな復元抽出)を用いてトレーニングデータからサブセットを抽出し、それぞれのサブセットを機械学習モデルへと適合していると前述しました。ここで、復元抽出されたサブセット内のサンプルには偏りが生じる可能性があります。サンプル同士が似通ったサブセットがいくつも抽出されて似通った機械学習モデルが構築されてしまうと、最終的な予測精度にも悪影響を及ぼす可能性があります。

ランダムフォレスト

ランダムフォレストとは、決定木による複数識別器を統合させたバギングベースのアンサンブル学習アルゴリズムです。分類(判別)・回帰(予測)両方の用途で利用可能な点も特徴的です。

ランダムフォレストの仕組みはバギングと同じですが、1点異なる点があります。それは、決定木の分岐に用いる特徴量もランダムに抽出する点です。特徴量もランダム抽出することで、似通った決定木が複数作成されることを防いでいるのです。

予測結果に強い影響を与える特徴量があった場合、その特徴量は高確率で決定木の分岐に採用されます。例えば、データの偏りがある複数のサブセットを用い、かつ特徴量をランダム抽出しなかった場合、多くの決定木は似通った特徴量を利用することになるでしょう。互いに相関のある決定木が複数作成されてしまうと、最終的な予測性能に悪影響を与える可能性が高まります。このような問題に直面しないように、ランダムフォレストでは特徴量もランダム抽出する仕組みが採用されています。

【アンサンブル学習】スタッキング

スタッキングとは、バギングを応用したアンサンブル手法です。

スタッキングアルゴリズムの特徴は、2層のアンサンブルで構成されている点にあります。

1層目はバギングベースの個々の機械学習モデル(MLモデル)で構成されています。1層目で得られた予測結果は2層目に供給されます。2層目では、別の機械学習モデル(ロジスティック回帰が一般的)で構成され、1層目で得られた予測結果をもとに最終的な予測結果を出力する仕組みとなっています。

スタッキングアルゴリズムは、3層目以上で構成される場合もあります。2層目以降のモデルは前の予測結果を学習するため、「前層のモデルのうちどれが一番当たりそうか」を学習することになります。スタッキングではこのような仕組みによって、データの偏りのあるバイアスとデータの散らばりであるバリアンスを上手く調節しているのです。

スタッキング|メリット

複数層のアンサンブルで構成するため予測精度向上が見込める

スタッキングアルゴリズムは、2層以上のアンサンブルで構成されるため、単純なバギングベースのアンサンブルと比較して予測性能が向上する可能性が高まります。

スタッキング|デメリット

処理時間が長期化する可能性あり

スタッキングアルゴリズムは複数層のアンサンブルで構成されるため、層が複雑化するほどモデル学習に費やす計算コストが増大します。結果、全体の処理時間も長期化する傾向にあります。

【アンサンブル学習】ブースティング

ブースティングとは、複数の機械学習モデル(弱学習器)を直列に組み合わせ、高性能な予測モデル構築を目指した学習手法です。

ブースティングの仕組み

  1. ブースティングでは、まず全データから学習データAを非復元抽出し、機械学習モデル(MLモデルA)を学習させます。
  2. 続いて、2つ目のランダムな学習データBを非復元抽出し、上記MLモデルAで誤分類された学習データAの中から50%を追加し、MLモデルBを学習させます。
  3. 1,2のように、直前のMLモデルが誤分類した学習データを重視して後続のMLモデルに学習させることを繰り返しながら、次々にMLモデルを作成していきます。
  4. 複数のMLモデルの予測結果を勘案し、最終的な予測結果を獲得するのがブースティングの仕組みです。

ブースティング|メリット

予測精度が向上が見込める

ブースティングは、機械学習モデルを複数直列に用い、間違って予測した部分を重点的に学習する仕組みであるため、1つの機械学習モデルで予測した場合と比較し、予測性能向上が期待できます。

ブースティング|デメリット

処理時間が長期化する傾向にある

前述したバギングでは機械学習モデルを並列処理のもと学習していましたが、ブースティングの場合、モデルの学習結果を後続のモデルへ活用するため、並列処理ができません。そのため、ブースティングと比較して処理時間が長期化する傾向にあります。

【参考】AI・機械学習における配信情報まとめ

当サイトではAI・機械学習における「基礎」から「最新のプログラミング手法」に至るまで幅広く解説しております。また「おすすめの勉強方法」をはじめ、副業・転職・フリーランスとして始める「AI・機械学習案件の探し方」についても詳しく言及しています。

【仕事探し】副業・転職・フリーランス

【教育】おすすめ勉強法

【参考】記事一覧

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
目次