アンサンブルを学習する — 辞書とLassoの融合
ランダムフォレストも勾配ブースティングも最終的に何千もの木を使う。 しかし「全部の木が本当に必要か?」という問いから出発し、 辞書構築→Lassoポストプロセッシングという二段階アプローチを学ぶ。 さらに多様性を意図的に作るISLEアルゴリズム、そして木をより解釈可能な ルールへと変換するルールアンサンブルを探る。
Lassoポストプロセッシング — 「後でまとめて整理する」
機械学習モデルを本番環境で動かすとき、切実な問題が生じる。ランダムフォレストの1000本の木を全部保存し、 予測のたびに1000回計算するのは重い。もっとコンパクトにできないだろうか?
「精度を保ちながらモデルを軽くしたい」——この実用的な動機から出発したのが、 ここで学ぶアプローチだ。
Friedman と Popescu(2003)は巧みな分割統治法を提案した。
フェーズ1:辞書を作る
まず、アルゴリズムが生成する大量の木(辞書 T_L)をそのまま集める。 ランダムフォレストなら1000本の木、勾配ブースティングなら各ステップで得られる木などを全部収集する。 この段階では何も捨てない。
フェーズ2:Lassoで整理する
次に、その辞書からLasso(ラッソ)を使って 「本当に必要な木」だけを選び、重みを割り当てる。 Lasso とは「不要な変数を強制的にゼロに追い込む統計的手法」だ (第3章で学んだ。係数にL1ペナルティを課すことで、多くの係数が自動的にゼロになる)。 ここでは「変数」の代わりに「木」を整理する。予測関数の形はこうなる:

Lassoは多くの $\alpha_k$ を強制的にゼロに追い込む。 1000本あった木から、わずか40本だけを選んで、ほぼ同じ(あるいはより高い)精度を実現できるのだ。
嬉しい効果:計算量が大幅に削減される。保存するモデルが小さくなり、 将来の予測が速くなる。実験結果では、ランダムフォレスト(1000本)をLassoポストプロセッシングすると 約40本に絞れる。
最適化問題の式はこうだ。左の損失項と右のL1ペナルティのバランスを、λが制御する:
この式を分解すると:
- 左の $\sum L[\ldots]$ は「予測がデータとどれだけずれているか」(損失関数)
- 右の $\lambda\sum|\alpha_m|$ がL1ペナルティ(Lasso)
- λが大きいほど多くの $\alpha_m$ がゼロに近づき、使う木の数が減る
良いアンサンブルに必要な「多様性」
Lassoポストプロセッシングが真の力を発揮するには、辞書 T_L の中の木が「十分に多様」である必要がある。 なぜか?
想像してほしい。100本の木が全部ほぼ同じ予測をするなら、その中から40本を選んでも大した情報は得られない。 しかし、それぞれが少し異なる側面を捉えていれば、少数の組み合わせで豊かな表現力が生まれる。

多様性はどう測るか?
まず「損失 $Q(\gamma)$」を定義する。$\gamma$ とはある基底関数(木)のパラメータ(分岐条件や端末ノードの値など)のこと。$Q(\gamma)$ はその木を1本だけ使ったときの損失だ。 最も良い木を使ったときの損失を $Q(\gamma^*)$ とする。
アンサンブルの「多様性(幅 σ)」は、 ランダムに選んだ γ での損失とベストな γ の損失の差として定義される:
直感的に言えば、σ は「辞書の中の木がどのくらい散らばっているか」を測る量だ:
- σ が小さすぎる:木がみんな似ていて、Lassoが選んでも表現力が増えない
- σ が大きすぎる:無関係な木が多く、ノイズが増える
- σ が適切:多様な木がそろっていて、Lassoが正しく「有用な木だけ」を選べる
適切な多様性こそが、ポストプロセッシングを機能させる鍵なのだ。
ISLEアルゴリズム — 多様性を意図的に生み出す
「多様性を高めるには?」——この問いへの答えがISLE(Importance Sampled Learning Ensemble)だ。
核心はシンプル:ランダムなサブサンプルを使って各木を育てることで、 木の多様性を自然に生み出す。

まずアルゴリズムが「何をするか」を日本語で説明しよう:
- 定数関数でスタートする
- 毎回「訓練データの一部だけ」をランダムに選んで新しい基底関数を追加する
- M回繰り返したら、辞書 T_ISLE = {b_1, b_2, ..., b_M} の完成
この手順を式で書くと、各ステップ m での基底関数 γ_m は次の最小化問題を解く:
ここで $S_m(\eta)$ は訓練データから η 割をランダムに非復元抽出したサブセットだ。 そしてモデルを更新する:
2つのパラメータの直感的な意味:
- η(サブサンプル率):各木に使うデータの割合。 η = 0.5 なら半分のデータで木を育てる。 少ないデータで育てるほど木がバラバラになり、多様性↑。推奨は η ≤ 1/2
- ν(メモリパラメータ):各ステップの「前のモデルの引き継ぎ率」。 ν が小さい → 毎回ゼロ近くから探索 → 異なる方向を探しやすい → 多様性↑。推奨は ν = 0.1
既存手法との統一的な理解:
この枠組みで見ると、よく知られた手法が特殊ケースとして整理できる:
- バギング:η=1(全データを使う)、ν=0(メモリなし)
- ランダムフォレスト:ISLEに加え、分岐変数もランダムに選ぶ
- 確率的勾配ブースティング(Friedman, 1999):ISLEのレシピをそのまま実行
- 通常の勾配ブースティング(shrinkageあり):η=1 だが幅 σ が不十分
つまり ISLEは「バギングからブースティングまでを一つの枠組みで捉えなおす」のだ。
最後にLassoポストプロセッシングを適用すれば、M本の木からコンパクトな最終モデルが得られる。 これが「Importance Sampled Learning Ensemble(ISLE)」の全体像だ。
ルールアンサンブル — 木を「読める条件文」へ
ここまでは「木をそのまま基底関数として使う」アプローチだった。 しかし木には欠点がある:木が複雑になるほど、「どんな条件があると予測が変わるのか」を 人間が解釈しにくくなる。
ルールアンサンブル(Friedman & Popescu, 2003)は、 この問題を解決する。アイデアはシンプル:木の各ノード経路から「ルール」を取り出し、 それを基底関数として使う。
ここで「ルール」とは指示関数の形をしている。 指示関数 I(条件) とは「条件が成り立てば1、成り立たなければ0を返す関数」のことだ。

たとえば、次のような木の分岐条件をたどると:
木を1つのまとまりとして扱う代わりに、「どの分岐が予測にどれだけ寄与するか」を個別に評価できる。 木の分岐 = 特徴空間の矩形領域への分割、と対応している点が重要だ(上のGIFで確認しよう)。
アンサンブル中の各木 T_m からルール集合を構築し、全木のルールをまとめると辞書になる:
このルール辞書にLassoポストプロセッシングを適用すると、 「どの条件がどのくらい予測に寄与するか」が明確なモデルができあがる。 さらに、各変数の線形項 X_j も辞書に加えると、線形な関係もうまく捉えられる。
ルールアンサンブルの利点:
- 精度向上:モデル空間が拡大し、細かい表現が可能
- 解釈可能性:「X_1 ≥ 2.1 かつ X_3 ∈ {S} のとき +2.3」という形で人間が読める
- 線形効果も捉える:線形項を加えることで純粋な比例関係も表現できる
まとめ — アンサンブルの「設計哲学」
この章で学んだことを整理しよう。
核心のアイデア:多数の木(辞書)を集めてから、Lassoで必要な木だけを選ぶ。
この二段階アプローチが機能するための条件が「多様性(σ)」だった。 辞書の中の木が多様でないと、Lassoがどれを選んでも表現力が増えない。
その多様性を意図的に生み出すのがISLE アルゴリズムだ:
- サブサンプリング(η)で、毎回異なるデータの部分集合を使う
- メモリパラメータ(ν)で、前のステップへの依存度を調整する
- バギング・ランダムフォレスト・ 確率的勾配ブースティングは、ISLEの特殊ケースとして統一的に理解できる
そしてルールアンサンブルは、 「木そのもの」の代わりに「木から抽出した条件文(ルール)」を辞書として使う。 これにより、Lassoで整理したあとに「人間が読める」モデルが得られる。

最終的な設計思想をまとめると:
多様な基底関数を作る(ISLE)→ 必要なものだけ選ぶ(Lasso)→ 必要なら解釈可能な形に変換する(ルール)
この3ステップこそが、アンサンブル学習の 新しい設計哲学だ。大量の木を生成してから選ぶ、という発想の転換が、 精度・効率・解釈可能性の三つを同時に実現する鍵となっている。