ホーム›Part 2 機械学習の基礎›2.5

Part 2 · 機械学習の基礎

2.5 決定木とアンサンブル

質問を重ねて判断する

読了目安 10分発展前提:2.4 ロジスティック回帰▶ 動画(約5分)

この回で分かること

  • 決定木 が「はい/いいえの質問を重ねて判断する」しくみと、質問の選び方(ジニ不純度)を説明できる
  • 多くのモデルの多数決(アンサンブル)で性能が上がる理由と、その前提(間違いの独立)を説明できる
  • 決定木の読みやすさと、深くしすぎたときや学習範囲の外での弱点を説明できる

直感で理解する

2.4 の割り込み予測に、手がかりをもう1つ加えます。「ウインカーを出しているか」です。20回の場面を集めると、横方向の速度だけでも、ウインカーだけでも、きれいには分けられません。ゆっくり寄ってきてもウインカーを出していれば割り込むことが多く、ウインカーなしでも速く寄ってくれば割り込むことがあります。

人が判断するなら、「速く寄ってきている?」「ウインカーは?」と、質問を順に重ねるでしょう。決定木 は、この質問の並びをデータから自動で作ります。

横方向の速度 ≥ 0.6 m/s? ウインカーを出している? ウインカーを出している? 割り込む 3/3 割り込む 3/4 横方向の速度 ≥ 0.25? 割り込まない 0/8 割り込む 3/3 割り込まない 0/2 はい いいえ はい いいえ はい いいえ はい いいえ
20場面から学習した決定木。上から質問に答えていき、たどり着いた葉(色つきの箱)で判定する。「3/4」は、その葉に入った4場面のうち3場面が割り込んだという意味。数値は説明用の例。

読み方は、上から質問に答えていくだけです。たとえば「横方向の速度 0.3 m/s、ウインカーあり」なら、最初の質問が「いいえ」、次が「はい」、その次(0.25 以上か)が「はい」で、「割り込む」の葉にたどり着きます。ロジスティック回帰の境界は1本の直線でしたが、決定木なら「ウインカーありなら 0.25 m/s から、なしなら 0.6 m/s から」のように、条件によって境界を変えられます。20場面のうち、この木が間違えるのは1場面だけです。

数式で確かめる

① 質問の選び方:ジニ不純度

1つの箱の中で「割り込む」と「割り込まない」がどれだけ混ざっているかを、ジニ不純度 で測ります。

$$G = 1 - \sum_{k} p_k^{2}$$

\(p_k\) は、箱の中で分類 k が占める割合です。全部が同じ分類なら G = 0(まったく混ざっていない)、2つが半々なら G = 0.5(いちばん混ざっている)になります。最初の20場面(割り込み9、なし11)は G = 1 − 0.45² − 0.55² ≈ 0.495 です。

質問の候補ごとに、分けたあとの2つの箱の不純度を、場面数で重み付けして平均します。

最初の質問の候補分けたあとの不純度(重み付き平均)
横方向の速度 ≥ 0.6 m/s0.316(いちばん小さい)
横方向の速度 ≥ 0.25 m/s0.360
ウインカーを出している0.375
(分けない)0.495

たとえば「速度 ≥ 0.6」で分けると、「はい」の箱は7場面中6場面が割り込みで G ≈ 0.245、「いいえ」の箱は13場面中3場面で G ≈ 0.355、平均は (7 × 0.245 + 13 × 0.355) ÷ 20 ≈ 0.316 です。不純度が最も下がる質問を選び、分かれたそれぞれの箱で同じことをくり返すと、図の木ができます。決定木は勾配降下法ではなく、このように質問を1つずつ選んで作ります。

② アンサンブル:多数決で強くする

1本の木は、データが少し変わるだけで形が大きく変わる、不安定なモデルです。そこで、たくさんのモデルを作って多数決をとります。これを アンサンブル と呼びます。3つのモデルがそれぞれ80%正しく、間違いが 独立(1.1)なら、多数決が正しい確率は次のとおりです。

$$0.8^3 + 3 \times 0.8^2 \times 0.2 = 0.896$$

3つとも正しい場合と、ちょうど1つだけ間違える場合の合計です。モデルを5つにすると約94%、11個にすると約99%まで上がります(1.3 の二項分布)。代表的な方法が2つあります。

  • ランダムフォレスト:使うデータや質問の候補をランダムに変えながら多数の木を作り、多数決(数値の予測なら平均)をとる
  • 勾配ブースティング:前の木が間違えた所を次の木が補うように、木を1本ずつ足していく

ただし、上の計算は「間違いが独立」という前提の上に成り立っています。同じデータで学んだモデルは、同じ苦手な場面(逆光など)で一緒に間違えやすく、多数決の効果は計算よりずっと小さくなります。1.1 で見た共通原因と同じ問題です。

自動運転との接点

  • 人が読める判断ロジック:小さな決定木は、そのままルールとして人が読んで確かめられます。判断の根拠を説明する必要がある場面で役立ちます。ただし、数百本の木のアンサンブルになると、人が読むのは難しくなります。
  • 多数決は冗長化と同じ:複数のモデルやセンサの結果を組み合わせるとき、効果を決めるのは「どれだけ違う間違え方をするか」です。同じデータ・同じ方式では共通原因で一緒に間違えやすいので、異なるセンサや異なる方式を組み合わせる(多様性)ことが大切です。→ 4.3 センサとフュージョン、4.7 安全の3本柱
  • 範囲の外では「平らな」予測:決定木は、学習したデータの範囲の外でも、端の葉と同じ答えを返し続けます。直線のように外れていくわけではありませんが、正しいとも限りません。見たことのない条件への予測には、どのモデルでも注意が要ります。→ 2.8 データの分け方と分布シフト
  • 深くしすぎると「覚えすぎ」:質問をどこまでも増やせば、訓練データは全部正解にできますが、新しいデータには弱くなります。→ 2.6 過学習と正則化

まとめ

  • 決定木は、はい/いいえの質問を重ねて判断する。質問は、分けたあとの不純度(ジニ不純度)が最も下がるものを選ぶ
  • 小さな木は人が読めるが、不安定。多くのモデルの多数決や平均(アンサンブル)で、精度と安定性が上がる
  • 多数決の効果は、間違いが独立なほど大きい。同じデータ・同じ方式のモデルは、共通原因で一緒に間違えやすい

確認クイズ

Q1. ある箱に、割り込んだ場面が3つ、割り込まなかった場面が1つ入っています。ジニ不純度は?

割合は 0.75 と 0.25 なので、G = 1 − 0.75² − 0.25² = 1 − 0.5625 − 0.0625 = 0.375 です。

Q2. 図の木で、「横方向の速度 0.8 m/s、ウインカーなし」の場面はどう判定される?

最初の質問(0.6 m/s 以上か)が「はい」、次の質問(ウインカー)が「いいえ」で、「割り込む 3/4」の葉にたどり着きます。判定は「割り込む」ですが、この葉では4場面のうち1場面が割り込まなかったので、確実ではありません。

Q3. それぞれ90%正しいモデルが3つあります。間違いが独立なら、多数決が正しい確率は?

0.9³ + 3 × 0.9² × 0.1 = 0.729 + 0.243 = 0.972、つまり約97%です。

Q4. 同じ訓練データで作った3つのモデルの多数決が、Q3 の計算ほど強くならないのはなぜ?

同じデータで学んだモデルは、同じ苦手な場面で一緒に間違えやすく、間違いが独立ではないからです(共通原因)。効果を上げるには、違うデータ・違う方式・違うセンサを組み合わせて、間違え方をばらけさせる必要があります。

もっと知りたい人へ