AI(人工知能)用語集

知ったかぶり解消!機械学習アルゴリズムのバギングとは?

バギング

機械学習モデルの予測精度を上げるために、アンサンブル学習という手法がありますよね。本記事ではアンサンブル学習手法のひとつであるバギングについて解説します。

このアンサンブル学習は実務で広く用いられる手法ですが、このバギングを学ぶことで社会で応用されている機械学習手法をより詳しく理解することが可能になるでしょう。

アンサンブル学習とは

そもそもアンサンブル学習とは複数の機械学習モデルを組み合わせて予測を行うことで、より精度の高いモデルを構築するための手法です。複数のモデルで予測を行うことで、単一のモデルのみを利用する場合よりも多様なデータに対してうまく予測を行うことができます。

この分野ではいかに多様なモデルを効率的に構築できるかが鍵となります。

アンサンブル学習のモデルには大きく分けてバギングとブースティングがありますが、バギングについて詳しく知る前にバギングとブースティングについて簡単に紹介しましょう。

バギングの概要

バギングはアンサンブル学習アルゴリズムのひとつで、複数の弱識別器をブートストラップサンプルでそれぞれ学習させたもののことを利用して予測を行う手法です。弱識別器をブートストラップサンプルで並列に学習することができるため、ブースティングと比較して学習が高速に動作します。

ブースティングの概要

ブースティングはバギングと対に語られることの多い手法で、複数の弱識別器を逐次的に直列に学習を進めます。ブースティングの代表的なモデルにAdaBoost(アダブースト)があり、このモデルでは直前の弱識別器が正しく予測できなかったデータの重みを大きくすることで、次の弱識別器が直前に識別できなかったデータによりフィットするように学習が進みます。

アンサンブル学習にはバギングとブースティングという大きな分類があり、バギングを改良したものとにランダムフォレスト、ブースティングを改良したものに勾配ブースティングという手法が存在。これらの手法はその高い性能から、実務やKaggleなどの最先端のデータサイエンス系のコンペティションなどで広く用いられている。

バギングをもっと詳しく理解しよう

バギングはBootstrap AGGregatINGからその名がつけられており、その名の通りブートストラップサンプルを利用して複数の識別器を学習させます。

それぞれの弱識別器が利用するデータがブートストラップサンプルであるため学習データ間に多様性が生じ、それによってバギングモデル全体として過剰適合を防ぐことができます。推論時には単純に各弱識別器の平均や多数決を利用します。

またブートストラップサンプリングとはあるデータ集合から復元抽出(重複を許して新たなデータ集合を構築すること)を行う手法のことです。この手法を用いることでひとつのデータ集合からいくつもの標本集合を作成することができ、様々なデータへの当てはまりを確認することが可能になるんですね。

ここで簡潔にバギングのメリット・デメリットをまとめてみましょう。

バギングのメリット

  • ブートストラップサンプルを用いるため、並列に学習を行うことができる
  • データによる弱識別器間の多様性から、過剰適合しにくい
  • アルゴリズム自体が非常にシンプル

バギングのデメリット

  • ブートストラップサンプルの多様性のみに依存するため、思ったよりも性能が上がらないことが多い

バギングとランダムフォレスト

バギングのデメリットである多様性の生じにくさを解消したモデルがランダムフォレストです。

ランダムフォレストは基本的にはバギングと同様の学習を行いますが、決定木のノード分割時に特徴量をランダムに選択して学習を行います。それによってデータの行方向の多様性を与えるバギングがさらに列方向にも多様性を持てるようになりました。

バギングの学習手法を踏襲しているため学習は並列に行え、かつ特徴量を選択する箇所しか手順も増えないため、計算コストはバギングと大きく変わりません。

まとめ

バギングについて重要な点をまとめましょう。

  • 機械学習アルゴリズムのひとつで、アンサンブル学習というカテゴリに属する
  • ブートストラップサンプルを用いることで弱識別器に多様性が生じ、結果的によりより性能を出せるようになったモデル
  • 学習を並列に行えるため、訓練が高速に動作する
  • このモデルを改良した手法がランダムフォレストで、簡単な特徴量選択の仕組みでより多様な弱識別器の構築に成功した
以上、ご覧いただきありがとうございました。

燃やせ探究心!突き詰めろ美しきソースコード!オタフ☆クラブ

みんなのAI(人工知能)用語集

トップへ戻る
タイトルとURLをコピーしました