勾配ブースティングのDART法について調べてみた

Light-GBMの”boosting”ハイパーパラメータで”dart”というものがあり、しかもKaggleなどのコンペティションではこのオプションが使われていることが多い?これはいったいなんだ?と思ったので調べて分かったことをまとめておこうと思います。

“DART”でネット上を調べてみましたが記事をほとんどみつけることができなかったので、原論文を探してみました。・・ありました!

DART: Dropouts meet Multiple Additive Regression Trees (2015)
https://arxiv.org/pdf/1505.01866.pdf

こちらを読んでみました。

読んで分かったことまとめ(箇条書き)

・DARTとは、勾配ブースティングにおいて過学習を防止するため(*1)にMART(*2)にDrop Outの考え方を導入して改良したものである。

・(*1)勾配ブースティングでは、一般的にステップの終盤になるほど、より極所のデータにフィットするような勾配がかかる問題があった。

・(*2)MARTとは、Multiple Additive Regression Trees (多重加法型回帰樹木)の略称であり、決定木のアルゴリズムで用いられるCART法の予測確度を向上させる目的で, CART樹木にBoostingを加味する方法として考案されたもの。勾配ブースティングのベースとなるアルゴリズムである。
(参考文献) https://www.jsce.or.jp/library/open/proc/maglist2/00897/2008/pdf/A13D.pdf

・DART開発以前の過学習への対応としては、Shrinkage が用いられていた。
この方法では、ステップが進むにつれて、作成される補正木の影響度を小さくしていくために定数Shrinkage Factorを掛け合わせていくというもの。

・Drop OutはDeep Newral Networkの分野で精度向上に多大な貢献をしたテクニックで、他のアルゴリズムへの応用も研究されている。

・たとえばロジスティック回帰へDrop Outを導入し、Randam Forestと同様の考え方でアンサンブル学習を行えるようにした研究などがある。

・DARTの評価のために、Classification, Ranking, Regressionのタスクの精度をMARTと比較し、全てのタスクでMARTを上回る精度を出すことができた。

参考:Light-GBMのBoosting Typeパラメータ設定(GOSS, GBDT, DART)の違いによる精度への影響

Kaggleに良いDiscussionがありましたのでリンクを載せておきます。

https://www.kaggle.com/c/home-credit-default-risk/discussion/60921

・データセットにもよるのかもしれないですが、この実験では、
精度:DART > GBDT > GOSS (他2つと比べて過学習しやすい)
計算速度:GOSS > GBDT > DART (他2つと比べて非常に遅い)

計算コストも鑑みるとデフォルトであるGBDTで十分そうですが、Kaggleのようにわすかな精度向上を競う世界では計算コストを犠牲にしてもDARTを選んだ方が有利なんですね・・・。勉強になりました!

というわけで、本日も最後までご覧いただきありがとうごさいました!

おしまい

+1

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US

アバター
Yuu113
初めまして。Yuu113と申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。