アンサンブル学習 — 弱い学習器の「合唱」が最強の予測器を生む
機械学習モデルを1つ作るより、100個作って多数決した方が正確—— そんな直感を数学で正当化したのがアンサンブル学習だ。 なぜ「集めると強くなる」のか?どう組み合わせれば最良か?なぜ過学習しにくいのか? この3つの問いに答えながら、バギング・ランダムフォレスト・ブースティングが 実は同じ数学的枠組みの仲間だったという事実を明らかにする。
弱い学習器が集まると、なぜ強くなるのか?
一人の専門家が間違えても、百人の専門家に多数決を取れば正解率が上がる——アンサンブル学習の根本的な直感はここにある。
しかし「ただ集める」だけでは不十分だ。同じ間違いをする専門家を百人集めても意味がない。 重要なのは多様性だ。
ここでいう「弱い学習器」とは、単独では精度が低いシンプルな予測モデルのことだ。 例えば「もし年齢が30歳以上なら購入する」という1つの条件だけで判断するような浅い決定木が典型例だ。 こうした弱い学習器を重み付きで組み合わせると、下のアニメーションのように個々には波打つ曲線も、 合わさることで本来のパターンに近い滑らかな予測が生まれる。

アンサンブル学習の基本式を数学で書くとこうなる。$T_k(x)$ は第 $k$ 番目の弱い学習器(木)、$\alpha_k$ はその貢献度(重み)だ:
これまでに学んだ手法を振り返ると、すべてがこの形式に収まることがわかる:
- バギング: 均等な重み($\alpha_k = 1/K$)で木の多数決
- ランダムフォレスト: ランダム性を加えた木の平均
- ブースティング: 逐次的に最適化された重み付きの和
第16章の核心的な問いは: 「どの弱い学習器をどれだけ組み合わせれば最良か?」だ。
ブースティングは正則化回帰だった
ブースティングが「なぜ過学習しにくいのか」は長い間謎だった。 直感的には、数千本の木を加えていけばいつか過学習するはずだ。しかし実験では、 イテレーションを重ねても性能がなかなか悪化しない。
その謎を解く鍵は正則化パスにある。「正則化」とはモデルが複雑になりすぎることにペナルティを課す仕組みだ。 「正則化パス」とは、そのペナルティ強度 $\lambda$ を変化させたときに係数がどう変わるかの軌跡のことだ。
$K$ 個の木の辞書があるとき、最適な組み合わせを求める最適化問題は (Lassoを覚えている方にはおなじみの形式だ):
ここで $J(\alpha)$ が正則化項だ:
- Ridge回帰: $J(\alpha) = \sum_{k=1}^{K} |\alpha_k|^2$(L2ペナルティ: 全係数を均等に縮小)
- Lasso: $J(\alpha) = \sum_{k=1}^{K} |\alpha_k|$(L1ペナルティ: 不要な係数を完全にゼロにする)
前進ステージワイズ回帰(Forward Stagewise Regression)は、Lassoの解のパスを近似するアルゴリズムだ。 各イテレーションで1つの基底関数だけを小さなステップ幅 $\epsilon$ で更新する:

下のアニメーションで、$\lambda$(ペナルティ強度)を変化させたときに各木の重み(係数)がどう変わるかを 左(Lasso)と右(前進ステージワイズ)で比較している。両者の最終的な値は似ているが、 Lassoは途中で急激に変化するのに対し、前進ステージワイズは滑らかに変化する。
第10章で学んだ勾配ブースティングは、この前進ステージワイズ回帰の一般版だ。 つまり、ブースティングとはL1正則化(Lasso)の近似を行っていたのだ。 これがブースティングの「遅い過学習」の数学的な説明になっている。
$\lambda$ を大きくすると多くの係数がゼロに圧縮される(スパース解)。$\lambda \to 0$ でフルフィットになる。
「スパース性に賭けよ」原則
L1(Lasso)とL2(Ridge)のどちらを使うべきか? その答えは問題の「スパース性」にかかっている。
スパース(Sparse)とは「疎」の意味で、「真の係数のうち、ほとんどがゼロで、 ごく少数だけが意味を持つ」状態を指す。例えば1000個の予測変数があっても、 実際に価格に影響する変数は5つだけ、というような場合がスパースな問題だ。
- スパースな問題: 真の係数のうちゼロでないものが少ない(多くの特徴量は無関係)
- 密な問題: ほとんどの係数が非ゼロ(多くの特徴量が関連)

左が「スパースな問題」(棒の高さ=係数の大きさ)、右が「密な問題」だ。 L1(Lasso)は高い棒(重要な特徴量)だけを選び出し、右のように全棒が均等な場合はL2(Ridge)の方が適している。
実験で確かめよう。50個の観測値、300個の独立なガウス予測変数を用意し、3つのシナリオを考える:
- 真の係数がすべて非ゼロ(密な問題)
- 真の係数が10個だけ非ゼロ(スパースな問題)
- 真の係数が30個だけ非ゼロ(やや疎な問題)
結果: スパースな問題ではLassoが圧勝、密な問題ではRidgeが優れる。
では現実の機械学習問題はどちらか? 著者たちの主張は明快だ: 「スパース性に賭けよ」。
なぜなら、もし問題が本当に密であれば、どんな手法も難しい。しかしスパースであれば、 L1系の手法で大きな利益が得られる。密な問題にL1を使っても大きな損はない。 だからL1(Lasso、ブースティング)を基本戦略とするのが合理的だ。
ブースティングはマージン最大化をしている
(このセクションはSVMの知識があるとより深く理解できるが、知らなくても 「余裕をもって正しく予測する」という直感だけで先に進める。)
分類問題(犬か猫か、成功か失敗かを判断する問題)を考えよう。 モデルが「犬である確率が99%」と答えた場合と「51%」と答えた場合、どちらが安定した予測か明らかだ。 この「余裕の大きさ」をマージンと呼ぶ。 マージンが大きいほど、ノイズがあっても正しく分類できる。
ブースティングの「遅い過学習」を説明するもう一つの視点がこのマージン理論だ。 正規化されたL1マージンの定義は:
$y_i \in \{-1, +1\}$ は正解ラベル、$f(x_i)$ はモデルの予測スコアだ。 両者の符号が一致(正しく分類)していれば積は正になる。 この量を全訓練点 $i$ で最小のものが「マージン」だ。

横軸がブースティングのイテレーション数、縦軸がマージンを示している。 イテレーションが増えるにつれてマージンが大きくなっていく様子がわかる。
理論的に証明されていること: ブースティングは各イテレーションでマージンを増大させる方向に動く。そしてLassoの正則化パスで $\lambda \to 0$ の極限をとると、 解はマージン最大化の解に収束する。つまり、ブースティングはSVMと同じ「マージン最大化」を(異なる方法で)実現していたのだ。
ただし注意が必要だ。マージンが最大化された後もブースティングを続けると過学習が始まる。 実用的には早期停止や正則化パラメータの調整が必要だ。
アンサンブルを賢く学ぶ — ISLEフレームワーク
バギング・ランダムフォレスト・勾配ブースティングは、それぞれ異なるアルゴリズムのように見える。 しかし、ISLE(Importance Sampled Learning Ensembles: 重要度サンプリングによるアンサンブル学習)フレームワークは、 これらを統一的に記述できることを示す。
アイデアはシンプルだ: まず多様な木を大量に生成し(辞書構築)、 次にその中から重要なものだけをLassoで選ぶ(後処理)。 下のアニメーションで「多数の木が生成されたあと、少数だけが選ばれる」2段階の過程を確認しよう。

ISLEアルゴリズムの手順:
- 初期予測 $f_0(x)$ を設定
- 各ステップで全データのうち $\eta$ 割だけを使い、現在の誤差(残差)に最も当てはまる木 $b(x; \gamma_m)$ を探す
- 小さなステップ幅 $\nu$ で更新:
パラメータ $\eta$(データの何割を使うか)と$\nu$(各ステップの更新幅)の値によって、既存の手法が再現される:
| 手法 | $\eta$(データ使用率) | $\nu$(更新幅) | 追加のランダム性 |
|---|---|---|---|
| バギング | 1.0(全データ・置換あり) | 0 | なし |
| ランダムフォレスト | 1.0 | 0 | 分割変数をランダム選択 |
| 確率的勾配ブースティング | ≈0.5 | 小さい | なし |
実践的な推奨値:$\nu = 0.1$、$\eta \leq 2/3$(データの2/3以下)
ISLEの重要な利点は、全ての木を逐次的に探索する代わりに、まず多様な木を生成し、 後処理としてLassoで最適な組み合わせを選ぶことだ。これにより計算コストを大幅に削減できる。
ルールアンサンブル — 解釈可能なアンサンブル学習
アンサンブル学習の弱点は解釈のしにくさだ。 数百本の木の平均が「なぜその予測をしたか」を説明するのは難しい。 銀行がローンを断る際には「なぜ断ったか」を説明する義務がある(GDPR等の規制)。 医療診断でも「なぜ陽性と判定したか」の説明が求められる。
ルールアンサンブル(Rule Ensembles)はこの問題を解決する。 決定木の各ノードは「もし条件Xなら」というルールを定義している。 下のアニメーションのように、木の各パス(根から葉へのルート)を一つのルールとして抜き出すことができる。

例えば、木から抽出されるルールは以下のような指示関数で表される:
ここで $I(\cdot)$ は指示関数で、「条件が成り立てば1、成り立たなければ0」を返す。$I(x_1 < 2.1)$ は「変数 $x_1$ が2.1未満のとき1、そうでないとき0」という意味だ。
これらのルールを辞書として使い、Lassoで最適な組み合わせを学習する:
この手法の利点:
- 解釈可能: 「部屋数が6以上で、かつ地域の犯罪率が低い場合、価格が上昇する」のような自然言語に近い形式
- 柔軟性: 木では難しい「特徴量の線形効果」も組み合わせられる
- 性能: 通常のツリーアンサンブルとほぼ同等の予測精度
アンサンブル学習の最終的なメッセージ:精度と解釈可能性は必ずしもトレードオフではない。 正則化(Lasso)を賢く使えば、多数の候補から本当に重要なルールだけを抽出できる。 スパース性に賭け、多様なモデルを生成し、賢く選ぶ——これがアンサンブル学習の本質だ。