スタブ 勾配ブースティングとは何ですか? - Unite.AI
私達と接続
AI マスタークラス:

AI 101

勾配ブースティングとは何ですか?

mm
更新中 on

データ サイエンスのコンテストで非常に役立つ一般的なタイプの機械学習モデルは、勾配ブースティング モデルです。 勾配ブースティング これは基本的に、弱い学習モデルを強い学習モデルに変換するプロセスです。 しかし、これは具体的にどのようにして実現されるのでしょうか? 勾配ブースティング アルゴリズムなどを詳しく見てみましょう。 勾配ブースティングモデルの仕組みを理解する 弱い学習者を強い学習者に変換します。

勾配ブースティングの定義

この記事は、アルゴリズムの基礎となる数学を詳しく説明することなく、勾配ブースティングとは何かを直感的に理解できるようにすることを目的としています。 勾配ブースティングが高レベルでどのように動作するかを理解したら、さらに深く掘り下げて、それを可能にする数学を探索することをお勧めします。

学習者を「後押しする」とはどういう意味かを定義することから始めましょう。 弱い学習者は、学習モデルのプロパティを調整することによって強い学習者に変換されます。 具体的にどのような学習アルゴリズムが強化されているのでしょうか?

ブースティング モデルは、別の一般的な機械学習モデルを拡張することで機能します。 決定木。

A 決定木 モデルは、データセットをより小さな部分に分割することによって機能します。サブセットがそれ以上分割できなくなると、ノードとリーフを含むツリーが作成されます。デシジョン ツリー内のノードでは、さまざまなフィルタリング基準を使用してデータ ポイントに関する決定が行われます。デシジョン ツリーの葉は、分類されたデータ ポイントです。デシジョン ツリー アルゴリズムは数値データとカテゴリ データの両方を処理でき、ツリー内の分割は特定の変数/特徴に基づいています。

ブースティング モデルがトレーニングされる方法の図。
写真: SeattleDataBuy (ウィキメディア コモンズ、CC 4.0 経由) (https://commons.wikimedia.org/wiki/File:Boosting.png)

ブースティング アルゴリズムの XNUMX つのタイプは、 AdaBoostアルゴリズム。 AdaBoost アルゴリズムは、デシジョン ツリー モデルをトレーニングし、すべての観測値に等しい重みを割り当てることから始まります。 最初のツリーの精度が評価された後、さまざまな観測値の重みが調整されます。 分類が容易な観測値の重みは低くなり、分類が困難な観測値の重みは増加します。 XNUMX 番目のツリーは、XNUMX 番目のツリーの予測が最初のツリーの予測よりも正確になることを目的として、これらの調整された重みを使用して作成されます。

モデルは、元のツリーと新しいツリー (またはツリー 1 + ツリー 2) の予測で構成されます。 新しいモデルに基づいて分類精度が再度評価されます。 モデルの計算された誤差に基づいて XNUMX 番目のツリーが作成され、重みが再度調整されます。 このプロセスは、指定された反復回数だけ継続され、最終的なモデルは、以前に構築されたすべてのツリーによって行われた予測の加重合計を使用するアンサンブル モデルになります。

上で説明したプロセスでは、デシジョン ツリーと基本予測子/モデルを使用しますが、ブースティング アプローチは、多くの標準的な分類子モデルや回帰子モデルなどの幅広いモデルで実行できます。 理解すべき重要な概念は、後続の予測子は前の予測子が犯した間違いから学習し、予測子は順番に作成されるということです。

ブースティング アルゴリズムの主な利点は、他の機械学習モデルと比較して、現在の予測を見つけるのにかかる時間が短いことです。 ただし、ブースティング アルゴリズムは過剰適合する傾向があるため、使用する場合は注意が必要です。

グラジエントブースト

次に、最も一般的なブースティング アルゴリズムの XNUMX つを見ていきます。 勾配ブースティング モデル (GBM) は精度が高いことで知られており、AdaBoost で使用される一般的な原理を強化します。

勾配ブースティング モデルと AdaBoost の主な違いは、GBM ではどの学習者がデータ ポイントを誤認しているかを計算する異なる方法を使用することです。 AdaBoost は、重み付けの高いデータ ポイントを調べることで、モデルのパフォーマンスが低下している箇所を計算します。 一方、GBM は勾配を使用して学習器の精度を決定し、モデルに損失関数を適用します。 損失関数は、データセットに対するモデルの適合の精度を測定し、誤差を計算し、その誤差を減らすためにモデルを最適化する方法です。 GBM を使用すると、ユーザーは希望する目標に基づいて指定された損失関数を最適化できます。

最も一般的な損失関数を取る – 平均二乗誤差(MSE) – 例として、 勾配降下 は、損失が最小限になる値を見つけることを目的として、事前定義された学習率に基づいて予測を更新するために使用されます。

わかりやすくするために:

新しいモデルの予測 = 出力変数 – 古い不完全な予測。

より統計的な意味では、GBM はモデルの残差内で関連するパターンを見つけ、パターンに適合するようにモデルを調整し、残差を可能な限りゼロに近づけることを目的としています。 モデルの予測に対して回帰を実行すると、残差は 0 (完全適合) 付近に分布し、GBM は残差内のパターンを見つけて、これらのパターンに基づいてモデルを更新します。

つまり、すべての残差の合計が可能な限り 0 に近づくように予測が更新されます。これは、予測値が実際の値に非常に近づくことを意味します。

GBM では、他のさまざまな損失関数 (対数損失など) を使用できることに注意してください。 簡単にするために、上記では MSE が選択されています。

勾配ブースティングモデルのバリエーション

勾配ブースティング モデルは、データセットに対して過剰適合する傾向がある貪欲なアルゴリズムです。 これは次の方法で防ぐことができます いくつかの異なる方法 GBM のパフォーマンスを向上させることができます。

GBM は、縮小、ツリー制約、確率的勾配ブースティング、およびペナルティ付き学習の XNUMX つの異なる方法で制御できます。

収縮

前述したように、GBM では予測は連続的に合計されます。 「縮小」では、全体の合計に対する各ツリーの追加が調整されます。 アルゴリズムの学習速度を低下させる重みが適用されるため、より多くのツリーをモデルに追加する必要があり、これにより通常はモデルの堅牢性とパフォーマンスが向上します。 トレードオフは、モデルのトレーニングに時間がかかることです。

ツリー制約

ツリーに深さを追加したり、ツリー内のノードやリーフの数を増やしたりするなど、さまざまな調整を行ってツリーを制約すると、モデルのオーバーフィットが困難になります。 分割ごとの最小観測数に制約を課しても、同様の効果があります。 繰り返しになりますが、トレードオフとして、モデルのトレーニングにかかる​​時間が長くなります。

無作為抽出

個々の学習者は、トレーニング データセットのランダムに選択されたサブスタンプに基づいて、確率的プロセスを通じて作成できます。 これにはツリー間の相関を減らす効果があり、過剰適合を防ぎます。 データセットは、ツリーを作成する前、またはツリーの分割を検討する前にサブスタンプすることができます。

罰則付き学習

ツリーの構造を制限することでモデルを制約するだけでなく、回帰ツリーを使用することもできます。 回帰ツリーには各リーフに数値が付加されており、これらは重みとして機能し、L1 正則化や L2 正則化などの一般的な正則化関数で調整できます。

専門分野を持つブロガーおよびプログラマー 機械学習 & 深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。