アンサンブル学習とは

あんさんぶるがくしゅうensemble learning

1行定義

アンサンブル学習とは、複数のモデルを学習させ、それらの予測を多数決や平均などで組み合わせて、1つのモデルより高い性能を得る手法のことです。

くわしく

アンサンブル学習は、「1人の判断より、複数の意見をまとめたほうが当たりやすい」という考え方を機械学習に取り入れた手法です。1つひとつは精度がそれほど高くないモデル(弱学習器)でも、うまく組み合わせると精度が上がります。表形式のデータを扱う実務で、広く使われています。

なぜ精度が上がるのか

モデルの誤りがばらばらなら、多数決や平均をとるうちに打ち消し合います。そのため、組み合わせるモデルには多様性が必要です。同じデータで同じように学習したモデルを集めても、誤り方が似ていて効果はほとんどありません。

バギング

学習データから重複を許して無作為に取り出す、ブートストラップサンプリングを繰り返します。少しずつ異なる学習データで複数のモデルを独立に学習し、分類なら多数決、回帰なら平均で予測をまとめます。主に予測のばらつき(バリアンス)を抑え、過学習しやすい決定木を安定させます。各モデルを並列に学習できるのも利点です。

決定木のバギングに、分岐に使う特徴量も無作為に選ぶ工夫を加えたのがランダムフォレストです。

ブースティング

モデルを1つずつ順番に学習します。前のモデルが誤ったデータを重視したり、それまでの予測の誤差を埋めるように次のモデルを作ったりします。主に予測の偏り(バイアス)を減らします。代表例は、誤ったデータの重みを増やすAdaBoostと、損失関数の勾配を使って誤差を補う勾配ブースティングです。順番に学習するため並列化しにくく、追加しすぎると過学習することがあります。

そのほかの組み合わせ方

複数のモデルの予測を入力として、最終的な予測を出す別のモデル(メタモデル)を学習させるスタッキングもあります。決定木とニューラルネットワークのように、種類の異なるモデルを組み合わせることもできます。

覚え方

「バギングは並列に多数決、ブースティングは直列に弱点補強」と覚えます。

G検定での出題

バギングとブースティングの違い(並列か逐次か、主にバリアンスを減らすかバイアスを減らすか)、ランダムフォレストや勾配ブースティングがどちらに属するか、ブートストラップサンプリングの役割が問われます。

◯×チェック

  1. バギングでは、各モデルを互いに独立して学習できるため、複数の計算機で並列に学習を進めやすい。

    答えを見る

    答え ◯ 正しい

    各モデルは別々のブートストラップ標本で学習し、ほかのモデルの結果を必要としません。ブースティングは前のモデルの結果を使うため、順番に学習します。

  2. アンサンブル学習では、組み合わせるモデルどうしの予測の誤り方が似ているほど、組み合わせによる精度の向上が大きくなる。

    答えを見る

    答え × 誤り

    同じ誤り方をするモデルを集めても、誤りは打ち消し合いません。誤り方がばらばらな、多様なモデルを組み合わせるほど効果が大きくなります。

  3. スタッキングでは、複数のモデルの予測値を入力として、最終的な予測を出す別のモデル(メタモデル)を学習させる。

    答えを見る

    答え ◯ 正しい

    多数決や平均の代わりに、予測の組み合わせ方そのものを学習します。メタモデルが学習データに過剰に合わないよう、交差検証で作った予測値を入力に使うのが一般的です。

練習問題

アンサンブル学習の問題(4問)
  1. バギングとブースティング
  2. ランダムフォレストの木の本数とOOB
  3. アンサンブルとバイアス・バリアンス
  4. ブートストラップ標本の作り方

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術7

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習