1行定義
アンサンブル学習とは、複数のモデルを学習させ、それらの予測を多数決や平均などで組み合わせて、1つのモデルより高い性能を得る手法のことです。
くわしく
アンサンブル学習は、「1人の判断より、複数の意見をまとめたほうが当たりやすい」という考え方を機械学習に取り入れた手法です。1つひとつは精度がそれほど高くないモデル(弱学習器)でも、うまく組み合わせると精度が上がります。表形式のデータを扱う実務で、広く使われています。
なぜ精度が上がるのか
モデルの誤りがばらばらなら、多数決や平均をとるうちに打ち消し合います。そのため、組み合わせるモデルには多様性が必要です。同じデータで同じように学習したモデルを集めても、誤り方が似ていて効果はほとんどありません。
バギング
学習データから重複を許して無作為に取り出す、ブートストラップサンプリングを繰り返します。少しずつ異なる学習データで複数のモデルを独立に学習し、分類なら多数決、回帰なら平均で予測をまとめます。主に予測のばらつき(バリアンス)を抑え、過学習しやすい決定木を安定させます。各モデルを並列に学習できるのも利点です。
決定木のバギングに、分岐に使う特徴量も無作為に選ぶ工夫を加えたのがランダムフォレストです。
ブースティング
モデルを1つずつ順番に学習します。前のモデルが誤ったデータを重視したり、それまでの予測の誤差を埋めるように次のモデルを作ったりします。主に予測の偏り(バイアス)を減らします。代表例は、誤ったデータの重みを増やすAdaBoostと、損失関数の勾配を使って誤差を補う勾配ブースティングです。順番に学習するため並列化しにくく、追加しすぎると過学習することがあります。
そのほかの組み合わせ方
複数のモデルの予測を入力として、最終的な予測を出す別のモデル(メタモデル)を学習させるスタッキングもあります。決定木とニューラルネットワークのように、種類の異なるモデルを組み合わせることもできます。
覚え方
「バギングは並列に多数決、ブースティングは直列に弱点補強」と覚えます。
G検定での出題
出題のされ方
バギングとブースティングの違い(並列か逐次か、主にバリアンスを減らすかバイアスを減らすか)、ランダムフォレストや勾配ブースティングがどちらに属するか、ブートストラップサンプリングの役割が問われます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
バギングでは、各モデルを互いに独立して学習できるため、複数の計算機で並列に学習を進めやすい。
答えを見る
答え ◯ 正しい
各モデルは別々のブートストラップ標本で学習し、ほかのモデルの結果を必要としません。ブースティングは前のモデルの結果を使うため、順番に学習します。
-
アンサンブル学習では、組み合わせるモデルどうしの予測の誤り方が似ているほど、組み合わせによる精度の向上が大きくなる。
答えを見る
答え × 誤り
同じ誤り方をするモデルを集めても、誤りは打ち消し合いません。誤り方がばらばらな、多様なモデルを組み合わせるほど効果が大きくなります。
-
スタッキングでは、複数のモデルの予測値を入力として、最終的な予測を出す別のモデル(メタモデル)を学習させる。
答えを見る
答え ◯ 正しい
多数決や平均の代わりに、予測の組み合わせ方そのものを学習します。メタモデルが学習データに過剰に合わないよう、交差検証で作った予測値を入力に使うのが一般的です。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目7 教師あり学習)
- Leo Breiman, Bagging Predictors, Machine Learning 24(2), 123–140 (1996)
- David H. Wolpert, Stacked Generalization, Neural Networks 5(2), 241–259 (1992)
- Yoav Freund, Robert E. Schapire, A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting, Journal of Computer and System Sciences 55(1), 119–139 (1997)