予測の不確かさを扱える新しい勾配ブースティング「NGBoost」

3つの要点

✔️予測の不確かさを扱える勾配ブースティングの新手法「NGBoost」の提案
✔️多変数の予測をするときに問題となる勾配の歪みを自然勾配で補正する
✔️任意の弱学習器・確率分布・スコア関数で使える

実問題では予測の「不確かさ」も知りたい

AIの重要な応用先として気象予測や医療といった領域がありますが、このような問題でAIの予測を元に意思決定をするには予測の「不確かさ」の推定が必要です。

例えば、AIが明日の気温を23℃と予測したとしましょう。このとき、同じ23℃でも、「訓練データで何度も見た典型例でほぼ確実に23℃」と「見たことのないケースで不確かだけれどもおそらく23℃」では意思決定を変えるべきですよね?前者のケースならシャツ一枚で出かけられますが、後者のケースでは寒くなるかもしれないので上着を持って出かけた方が良いでしょう。

余命の予測や株価の予測といったケースでは、不確かさがより一層重要な情報になります。このように、実問題で機械学習を使った意思決定をするときには予測の不確かさも必要になるケースが多くあります。

本記事で紹介するNGBoost (natural gradient boosting; 自然勾配ブースティング) は、データ解析でよく使われるLightGBMやXGBoostと同じ勾配ブースティングの派生アルゴリズムで、複数の分布パラメータの推定を通して不確かさを推定できるようにしました。

ちなみに、この論文の著者にはオンライン講座「Coursera」の設立者としても有名なAndrew Ngがいて、NGBoostの名前に入っています。

背景知識

スコア関数

この問題設定では、モデルの出力は目的変数の確率分布です。したがって、出力される確率分布Pと観測データyから計算されるスコア関数S(予測の誤差)には、負の対数尤度 (→最尤推定; MLE)

や、Continuous Ranked Probability Score (CRPS)

があります。Pは確率密度関数、Fは確率分布関数(Pの積分)で、θは分布パラメータです(正規分布なら平均と標準偏差)。

MLEとCRPSはそれぞれKLダイバージェンスとL2ダイバージェンスに対応します。

一般化自然勾配

スコア関数Sが与えられたとき、通常の勾配は次の式で定められます。

この勾配を分布パラメータの変換に依存しない形にするために、スコア関数Sに対応するダイバージェンスを(局所的な)距離計量とする一般化自然勾配を考えます。

この式を解くと、一般化自然勾配は分布パラメータ空間上のRiemann計量Iの逆行列を通常の勾配にかけた形で表せます。

Riemann計量Iはスコア関数Sによって定められ、MLE、CRPSの場合は次のようになります(MLEの場合はFisher情報行列)。

数式が続いてしまいましたが、ここで普通の勾配と自然勾配を図で比較してみましょう。次の図は、標準正規分布からの乱数を正規分布でモデル化したときの誤差の値を色と等高線で示したもので、各点での勾配の方向が矢印で示されています。左が普通の勾配、右が自然勾配、上がMLE、下がCRPSの場合です。分布パラメータは平均μと標準偏差の対数log σです。通常の勾配は端の方で歪んでいるのに対し、自然勾配はパラメータによる歪みが少なく、勾配降下法で最適なパラメータを見つけやすくなっています。

勾配ブースティング

勾配ブースティングは、複数の弱い学習器を直列に学習させるブースティングの一種で、各学習器は直前の学習器の勾配にフィットするように訓練されます。学習器としては決定木がよく使われ、NGBoostでもXGBoostやLightGBMを踏襲し決定木を採用します。

決定木の勾配ブースティングは目的変数が複数ある場合、ブースティングの各ステージで目的変数の数だけ木を用意しなければなりません。このとき、各ステージの木間でデータの分割が異なるため、スケーリング因子(ステップサイズ)ρを葉ごとに求めることができなくなってしまいます。したがって、従来の手法では確率分布のような多変数の状況への適用に課題がありました。

NGBoostとは

NGBoostは、自然勾配を使うことで上記の課題を解決し、複数の分布パラメータを予測できるようになった勾配ブースティングです。このアルゴリズムは非常に柔軟で、

  • 弱学習器f(決定木など)
  • パラメータθを持つ確率分布P(正規分布、Poisson分布など)
  • スコア関数S(MLE、CRPSなど)

3要素を任意に選ぶことができます。なお、以降は弱学習器に決定木を、確率分布に正規分布を、スコア関数にMLEを採用するものとして説明します。

NGBoostは歪みを補正した自然勾配を使っているため、分布パラメータの個数や葉の数に関わらず各ステージで1つのスケーリング因子ρを決めるだけで学習ができます。したがって、分布パラメータθ、弱学習器f、勾配gが多変数になっていることを除けば、通常の勾配ブースティングとほとんど同じアルゴリズムで書けます


自然勾配を使った場合と使わなかった場合の学習の様子を可視化してみましょう。

通常の勾配を使うと、先ほど見た歪みのために、初期値でうまく予測のできた点にオーバーフィットし、端の方の点に対しては全く予測ができていません。

一方、自然勾配を使うと、どのサンプルに対しても平等に平均と分散の予測ができています

実験結果

実験は非常にシンプルで、UCI Machine Learning Repositoryの10種のデータセットに対して回帰を行い、分布の推定ができる既存手法と二乗平均平方根誤差(RMSE)および負の対数尤度(NLL)を比較したというものです。評価指標はいずれも小さい方が良い値で、標準偏差を含めて最も良い値を太字で示しています。

RMSE、NLLともにほとんどのデータセットでNGBoostが既存手法に対して同等以上のスコアを達成しました。

まとめ

本記事では、自然勾配を使って確率分布の推定を可能にした勾配ブースティングであるNGBoostを紹介しました。

実用の場面では、AIの予測結果を元に意思決定をするとき、予測結果の不確かさは重要な情報です。近年、Kaggleなどで強い支持を集めている勾配ブースティングが不確かさを扱えるようになったことで、これまで以上に広い範囲で使われるようになっていくのではないでしょうか。

NGBoost: Natural Gradient Boosting for Probabilistic Prediction
Written by Tony Duan, Anand Avati, Daisy Yi Ding, Sanjay Basu, Andrew Y. Ng, Alejandro Schuler
(Submitted on 8 Oct 2019)
Subjects: Machine Learning (cs.LG); Machine Learning (stat.ML)
Project Page

この記事をシェアする