【こうばいぶーすてぃんぐ】

勾配ブースティング とは?

最終更新:
💡 勾配を手掛かりに、予測へ修正を足していく

現在の予測に対する損失の勾配を使い、予測を修正するモデルを順番に追加するアンサンブル学習。決定木を使う実装が代表的。二乗誤差では残差を学習する形になるが、修正対象は損失関数によって異なる。

📌 このページのポイント
今の予測へ、修正を足す 二乗誤差・1サンプルの模式例 現在の予測 6 正解は10 残差は4 修正を学ぶ木 4を返す例 学習率0.5 修正量は2 更新した予測 6 + 2 = 8 残差は2 次の修正へ 一般には、損失の負の勾配を学ぶ 直前の木だけでなく、全体の予測を見る モデルを足せば必ず高精度、ではない
値と学習率は説明用で、推奨設定ではありません。木が修正をちょうど4と予測した場合を示しています。単純な残差を学ぶのは二乗誤差の場合で、分類などでは損失に応じた勾配と予測への変換を使います。
ひよこ ひよこ
どういうしくみなの?
ペンギン先生 ペンギン先生
まず初期の予測を用意し、今のモデル全体の予測がどこを修正すべきか調べる。決定木などでその修正を学び、学習率で調整して足すよ。次は更新した全体の予測を基に、さらに修正を学ぶんだ。直前の木だけの誤差を見るわけではないよ。
ひよこ ひよこ
勾配は何を表すの?
ペンギン先生 ペンギン先生
予測を変えたときに損失がどう変わるかを表す微分だよ。その負の勾配を手掛かりに、損失を減らす方向へ修正する。二乗誤差では正解から予測を引いた残差に対応するけど、どの損失でも単純な残差を使うわけではないんだ。
ひよこ ひよこ
たくさんの木をどうまとめるの?
ペンギン先生 ペンギン先生
木が返す修正の値を、初期予測へ順番に足すんだ。回帰ならその合計を予測値として使う方式がある。分類では合計したスコアを確率などへ変換するので、木の答えを多数決する方式とは違うよ。
ひよこ ひよこ
表形式なら必ず一番強い?
ペンギン先生 ペンギン先生
保証はないよ。決定木を使う勾配ブースティングは表形式の回帰・分類で使われるけど、データと評価条件による。XGBoostもその実装の一つだよ。古いコンペの実績を、今のあらゆる問題で勝てる証拠にはできないんだ。
ひよこ ひよこ
モデルを足し続ければ精度は上がる?
ペンギン先生 ペンギン先生
学習データに合わせ過ぎる場合があるよ。学習率、木の深さや葉の数、追加する数を調整し、学習に使わない検証データで確かめる。検証で改善しなくなったら止める早期終了もある。追加数だけで良いモデルとは決められないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「勾配ブースティング」って出てきたら「勾配を使い、予測に修正モデルを順番に足す学習手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Gradient Boosting」 = 勾配による強化
💬 Gradientは「勾配(傾き)」、Boostingは「強化・後押し」。勾配(微分)を使って予測を少しずつ強化していく手法だよ

参考資料

← 用語集にもどる