本記事のサマリ
本記事では、勾配ブースティング木の考え方について説明します。まず、最初に前向き段階的加法的モデリングと呼ばれるアルゴリズムを紹介します。次に、最急降下法と勾配ブースティング木の漸化式の関係性について説明します。最後に、これらをまとめた勾配ブースティング木のアルゴリズムを示します。なお、本記事に記載の数式や文字は全て「統計的機械学習の基礎」にならっており、本記事では定義しません。
前向き段階的加法的モデリング
前向き段階的加法的モデリングとは、目的関数をについて近似的に最小化する手法の一つです。アルゴリズムを図1に示します。
勾配ブースティング木を一言で表すと、前向き段階的加法的モデリングにおいて予測関数を、
に制約して解くアルゴリズムです。
(1)式に現れるについて、もう少し詳細に説明します。図1の2-1と(1)式をあわせると、
となります。は、終端領域とその領域のパラメータです。多くの損失関数において、が決まれば、は容易に求まるという関係が知られています。なので、図1の2-1をを求めるステップと、を求めるステップに分けて計算を行います。
最急降下法(の推定方法)
勾配ブースティング木では、を求めるステップにおいて、最急降下法の考え方を用います。まずは、(3)式と(4)式をご覧ください。(3)式は最急降下法の漸化式、(4)式は(1)式から導出される漸化式です。
二つの漸化式を比較すると、最後のとだけが異なることがわかります。そこで、特徴量を、目的変数をとした回帰木をあてはめます。具体的には、
の最小化を行います。なお、ステップ幅は重要ではないので1としています。図2にイメージ図を載せておきます。
の推定方法
が推定できたら、を推定します。(2)式を変形すると、
となります。これについては、
を使うと、比較的簡単に導出できます。
勾配ブースティング木のアルゴリズム
以上をまとめると、勾配ブースティング木のアルゴリズムは図3のようになります。
なお、初期化の仕方については「統計的機械学習の基礎」に説明がありませんでした。しかし、目的関数がであることを踏まえると、自然な初期化だと思います。
まとめ
今回は勾配ブースティング木のアルゴリズムの考え方について記事を書きました。正直、勾配ブースティング木を正しく理解することは難しく、今でも完全に理解したわけではありません。
ただ、完璧に理解したわけではないものの、勾配ブースティング木を理解するポイントは、データに回帰木をあてはめるのではなく、勾配に回帰木をあてはめることだということはなんとか理解できました。最初にこの考え方に触れたときは、自分の中にない考え方だったので、非常に驚きました。
次回の記事では、損失関数が最小二乗誤差のときの勾配ブースティング木を、Pythonでスクラッチ実装した結果について書こうと思います。