ある不動産会社が、二乗誤差を損失関数とする勾配ブースティングで物件の価格(百万円)を予測している。学習データは物件A、B、Cの3件で、価格はそれぞれ30、40、80である。初期の予測値は3件の価格の平均値とする。1本目の決定木は各物件の残差(正解−現在の予測値)を学習し、物件Cに対しては残差をそのまま出力した。学習率を0.1とするとき、1本目の木を加えた後の物件Cの予測値として、最も適切なものを1つ選べ。
正解と解説を見る
解説
正解 A
この問題の論点:勾配ブースティングの予測値の更新
ポイント
勾配ブースティングでは、残差を学習した木の出力に学習率を掛けた分だけ予測値を更新します。1本の木で正解に合わせず、少しずつ近づけます。
選択肢ごとの解説
- A
適切 正解
初期の予測値は(30+40+80)÷3=50です。物件Cの残差は80−50=30です。木の出力30に学習率0.1を掛けた3を足すので、50+3=53になります。正解の80には一度に合わせません。
- B
不適切
47は、木の出力に学習率を掛けた3を足さずに引いた値(50−3)です。木が学習するのは「正解−予測値」なので、足すことで予測は正解に近づきます。引くと80から遠ざかります。
- C
不適切
58は、残差ではなく価格80そのものに学習率を掛けて足した値(50+0.1×80)です。各決定木が学習するのは目標値そのものではなく、それまでの予測で残った誤差(残差)です。
- D
不適切
80は、学習率を掛けずに残差30をそのまま足した値です。学習率で1本ごとの修正を小さくし、多くの木で少しずつ正解に近づけると、過学習を抑えやすくなります。
補足
二乗誤差を(1/2)(y−F)²と書くと、予測値Fで微分した勾配は−(y−F)です。符号を反転した負の勾配は残差y−Fに一致するため、二乗誤差では「残差を学習する」と表現できます。損失関数を変えると、次の木が学習する値も変わります。学習率を小さくすると1本ごとの修正が小さくなる分、同じ精度に達するまでに多くの木が必要になります。
試験での狙われ方
計算そのものより、「次の木は残差(損失の負の勾配)を学習する」「学習率を小さくすると必要な木の本数が増える」という仕組みを問う形が考えられます。
参考
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目7 教師あり学習)
- Friedman, Greedy Function Approximation: A Gradient Boosting Machine, The Annals of Statistics 29(5) (2001)
- scikit-learn User Guide, Ensembles (Gradient-boosted trees(Shrinkage via learning rate))