1行定義
勾配ブースティングとは、それまでの予測の誤りを減らすように弱い学習器を1つずつ追加していく、ブースティング系のアンサンブル学習の手法のことです。
くわしく
勾配ブースティングは、単純なモデルを順番に足し合わせて、少しずつ予測を改善していく手法です。部品には、深さを制限した小さな決定木がよく使われます。決定木を使う場合は、勾配ブースティング決定木(GBDT)とも呼ばれます。2001年にジェローム・フリードマンが論文で一般的な枠組みとして示しました。
しくみ
最初のモデルで予測すると、正解とのずれが残ります。2本目の木は、このずれを小さくする方向を学習します。その予測に学習率(0.1など)を掛けて、少しだけ1本目の予測に足します。3本目は、1本目と2本目を足した予測に残るずれを学習します。これを数百回ほど繰り返します。
「どの方向に直せば誤差が減るか」は、損失関数の勾配(傾き)から求めます。予測を負の勾配の方向へ少しずつ動かすので、勾配降下法を、パラメータの更新ではなくモデルの足し算で行っていると考えられます。損失関数に二乗誤差を使う場合、負の勾配は正解と予測の差(残差)に比例します。そのため「残差を次の木が学ぶ」と言い換えられます。
長所と注意点
売上、顧客属性、センサー値などの表形式のデータでは、高い精度を出しやすい手法として広く使われています。XGBoost、LightGBM、CatBoostは、勾配ブースティングを高速に実装した代表的なライブラリです。
一方、木を増やすほど学習データへの誤差は下がり続けるので、増やしすぎると過学習します。検証用データの成績が改善しなくなった時点で止める早期終了や、学習率を小さくして木の本数を調整する方法で対策します。
ランダムフォレストとの違い
ランダムフォレストは、決定木を互いに独立に作って平均します。勾配ブースティングは、前の木までの結果をもとに次の木を作るため、木を1本ずつ順番に学習します。
覚え方
「前の木の答案に残った誤りを、次の木が赤ペンで直す」と覚えます。
G検定での出題
出題のされ方
ランダムフォレスト(バギング)との違いや、前のモデルの誤りを損失関数の勾配を使って次の決定木に学ばせる仕組み、学習率や木の本数と過学習の関係が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| 勾配ブースティングこのページの用語 | それまでの予測の誤りを減らすように弱い学習器を1つずつ追加していく、ブースティング系のアンサンブル学習の手法 |
| ランダムフォレスト | データと特徴量を無作為に選んで多数の決定木を作り、それらの予測を多数決や平均でまとめるアンサンブル学習の手法 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
勾配ブースティングでは、前の木までの予測結果をもとに次の木を作るため、木を1本ずつ順番に学習する。
答えを見る
答え ◯ 正しい
各木を独立に作るランダムフォレストとの大きな違いです。木の単位では並列に学習できません。
-
勾配ブースティングは、木の本数を増やすほど汎化性能が必ず向上するため、早期終了などの工夫は必要ない。
答えを見る
答え × 誤り
本数を増やすと学習データへの誤差は下がり続けますが、増やしすぎると過学習します。検証用データの成績を見て止めます。
-
XGBoostやLightGBMは、勾配ブースティングを高速に計算できるように実装したライブラリである。
答えを見る
答え ◯ 正しい
どちらも決定木を使う勾配ブースティングの実装で、表形式のデータの予測によく使われます。