機械学習は、さまざまな複雑な回帰タスクや分類タスクの予測モデルを構築するための最も人気のあるテクノロジーの 1 つです。 勾配ブースティングマシン (GBM) は、最も強力なブースティング アルゴリズムの 1 つと考えられています。
機械学習では非常に多くのアルゴリズムが使用されていますが、世界中の機械学習コミュニティではブースティング アルゴリズムが主流になっています。ブースティング手法はアンサンブル学習の概念に従っており、複数の単純なモデル (弱学習器または基本推定器) を組み合わせて最終出力を生成します。 GBM は、弱い学習器を強い学習器に変換する機械学習のアンサンブル手法としても使用されます。このトピックでは、 「機械学習におけるGBM」 勾配機械学習アルゴリズム、機械学習におけるさまざまなブースティング アルゴリズム、GBM の歴史、仕組み、GBM で使用されるさまざまな用語などについて説明します。ただし、開始する前に、まず、機械学習におけるブースティングの概念とさまざまなブースティング アルゴリズムを理解してください。
機械学習におけるブースティングとは何ですか?
ブースティングは、さまざまな弱分類器から強分類器を構築するために使用される一般的な学習アンサンブル モデリング手法の 1 つです。まず、利用可能なトレーニング データ セットからプライマリ モデルを構築し、次にベース モデルに存在するエラーを特定します。エラーを特定した後、2 番目のモデルが構築され、さらにこのプロセスで 3 番目のモデルが導入されます。このようにして、モデルが正しく予測する完全なトレーニング データ セットが得られるまで、より多くのモデルを導入するプロセスが続けられます。
AdaBoost (適応ブースティング) は、機械学習の歴史において、さまざまな弱分類器を 1 つの強分類器に結合する最初のブースティング アルゴリズムです。主に、二項分類などの分類タスクを解決することに焦点を当てています。
アルゴリズムをブーストする手順:
アルゴリズムを強化するには、次のような重要な手順がいくつかあります。
- 異なるデータポイントを持つデータセットを考慮し、それを初期化します。
- ここで、各データポイントに等しい重みを与えます。
- この重みをモデルの入力として仮定します。
- 誤って分類されたデータ ポイントを特定します。
- ステップ 4 でデータ ポイントの重みを増やします。
- 適切な出力が得られた場合は、このプロセスを終了し、そうでない場合は、手順 2 と 3 を再度実行します。
例:
予測を行う 3 つの異なるモデルがあり、それらがまったく異なる方法で機能すると仮定します。たとえば、次の図に示すように、線形回帰モデルはデータの線形関係を示しますが、デシジョン ツリー モデルはデータの非線形性を捉えようとします。
さらに、これらのモデルを個別に使用して結果を予測するのではなく、これらをシリーズまたは組み合わせの形式で使用すると、すべての基本モデルよりも正確な情報を含む結果のモデルが得られます。言い換えれば、各モデルの個別の予測を使用する代わりに、これらのモデルからの平均予測を使用すると、データからより多くの情報を取得できるようになります。これはアンサンブル学習と呼ばれ、ブースティングも機械学習のアンサンブル手法に基づいています。
機械学習のアルゴリズムを強化する
機械学習には主に 4 つのブースティング アルゴリズムがあります。これらは次のとおりです。
機械学習における GBM とは何ですか?
Gradient Boosting Machine (GBM) は、機械学習で最も人気のある前方学習アンサンブル手法の 1 つです。これは、回帰および分類タスクの予測モデルを構築するための強力な手法です。
GBM は、デシジョン ツリーなどの弱い予測モデルのアンサンブルの形式で予測モデルを取得するのに役立ちます。決定木が弱学習器として機能する場合、結果として得られるアルゴリズムは勾配ブースト ツリーと呼ばれます。
これにより、さまざまな学習者モデルからの予測を組み合わせて、正しい予測を持つ最終的な予測モデルを構築することができます。
しかし、ここで、同じアルゴリズムを適用している場合、複数の決定木が単一の決定木よりも優れた予測をどのようにして与えることができるのかという疑問が生じるかもしれません。さらに、各決定木はどのようにして同じデータから異なる情報を取得するのでしょうか?
したがって、これらの質問に対する答えは、最適な分割を選択するために各デシジョン ツリーのノードで特徴の異なるサブセットが使用されるということです。これは、各ツリーが異なる動作をするため、同じデータから異なる信号をキャプチャすることを意味します。
GBMはどのように機能しますか?
一般に、ほとんどの教師あり学習アルゴリズムは、線形回帰、ペナルティ付き回帰モデル、デシジョン ツリーなどの単一の予測モデルに基づいています。しかし、ML には、アンサンブルを介したさまざまなモデルの組み合わせに依存する教師ありアルゴリズムがいくつかあります。言い換えれば、複数の基本モデルが予測に寄与する場合、ブースティング アルゴリズムによってすべての予測の平均が適応されます。
勾配ブースティング マシンは次の 3 つの要素で構成されます。
- 損失関数
- 学習能力が低い人
- 加算モデル
この3つの要素を詳しく理解しましょう。
1. 損失関数:
ただし、機械学習には、解決されるタスクの種類に応じて使用できる損失関数の大きなファミリーがあります。損失関数の使用は、ロバスト性などの条件付き分布の特定の特性の要求によって推定されます。タスクで損失関数を使用する場合、損失関数と、対応する負の勾配を計算する関数を指定する必要があります。これら 2 つの関数を取得したら、勾配ブースティング マシンに簡単に実装できます。ただし、GBM アルゴリズム用にすでにいくつかの損失関数が提案されています。
文字列から整数へのコンバーター
損失関数の分類:
応答変数 y のタイプに基づいて、損失関数は次のようにさまざまなタイプに分類できます。
- ガウス L2 損失関数
- ラプラス L1 損失関数
- フーバー損失関数、δ 指定
- 分位点損失関数、α 指定
- 二項損失関数
- アダブースト損失関数
- 生存モデルの損失関数
- 損失関数のカウントデータ
- カスタム損失関数
2. 弱い学習者:
弱学習器は、過去のエラーから学習する基本学習器モデルであり、機械学習のアルゴリズムを強化するための強力な予測モデル設計の構築に役立ちます。一般に、デシジョン ツリーはブースティング アルゴリズムの弱学習器として機能します。
ブースティングは、ベース モデルからの出力を向上させるために継続的に機能するフレームワークとして定義されます。多くの勾配ブースティング アプリケーションでは、弱学習器のさまざまなクラスを自由に「プラグイン」できます。したがって、決定木は弱 (基本) 学習器に最もよく使用されます。
弱い学習者を訓練する方法:
機械学習では、トレーニング データセットを使用して基本学習者をトレーニングし、前の学習者からの予測に基づいて、前のツリーで最大の誤差または残差があったトレーニング データの行に焦点を当てることでパフォーマンスを向上させます。例えば。浅いツリーは、いくつかの分割が含まれているため、デシジョン ツリーに対して弱い学習者であると考えられます。一般に、ブースティング アルゴリズムでは、最大 6 つの分割を持つツリーが最も一般的です。
以下は、各ツリーが前のツリーの残差を含むシーケンス内にある場合の、パフォーマンスを向上させるための弱学習器のトレーニングのシーケンスです。さらに、前のツリーのエラーから学習できるように、新しいツリーをそれぞれ導入しています。これらは次のとおりです。
- データセットを検討し、そのデータセットに決定木を当てはめます。
F1(x)=y - 次のデシジョン ツリーを前のツリーの最大誤差に適合させます。
h1(x)=y?F1(x) - ステップ 1 と 2 の両方を追加して、この新しいツリーをアルゴリズムに追加します。
F2(x)=F1(x)+h1(x) - 再度、次の決定木を前の木の残差で当てはめます。
h2(x)=y?F2(x) - ステップ 3 で行ったのと同じことを繰り返します。
F3(x)=F2(x)+h2(x)
何らかのメカニズム (相互検証など) が停止を指示するまで、このプロセスを続けます。ここでの最終モデルは、b 個の個別ツリーの段階的加算モデルです。
f(x)=B∑b=1fb(x)したがって、ツリーは貪欲に構築され、Gini などの純度スコアに基づいて最適な分割ポイントを選択するか、損失を最小限に抑えます。
3. 加算モデル:
加算モデルは、モデルに木を追加することとして定義されます。一度に複数のツリーを追加するべきではありませんが、モデル内の既存のツリーが変更されないように、追加する必要があるのは 1 つのツリーのみです。さらに、損失を減らすために木を追加することで勾配降下法を優先することもできます。
過去数年間、勾配降下法は、回帰式の係数やニューラル ネットワークの重みなどのパラメータのセットを最小化するために使用されてきました。誤差または損失を計算した後、重みパラメータを使用して誤差を最小限に抑えます。しかし最近、ほとんどの ML 専門家は、これらのパラメーターの代わりに弱学習器サブモデルまたはデシジョン ツリーを好んでいます。その場合、エラーを削減し、モデルのパフォーマンスを向上させるために、モデルにツリーを追加する必要があります。このようにして、新しく追加されたツリーからの予測が既存の一連のツリーからの予測と組み合わされて、最終的な予測が得られます。このプロセスは、損失が許容レベルに達するか、改善が必要なくなるまで続きます。
この方法は、関数型勾配降下法または関数を使用した勾配降下法とも呼ばれます。
エクストリームグラディエントブースティングマシン (XGBM)
XGBM は、GBM と非常によく似た動作をする勾配ブースティング マシンの最新バージョンです。 XGBM では、前のツリーのエラーから学習して改善するツリーが (一度に 1 つずつ) 順次追加されます。 XGBM と GBM のアルゴリズムは外観と操作性が似ていますが、次のようにいくつかの違いがあります。
- XGBM は、さまざまな正則化手法を使用してモデルの過小適合または過適合を軽減し、勾配ブースティング マシンよりもモデルのパフォーマンスを向上させます。
- XGBM は各ノードの並列処理に従いますが、GBM は従わないため、勾配ブースティング マシンよりも高速になります。
- XGBM は、デフォルトでモデルが処理するため、欠損値の代入を取り除くのに役立ちます。これらの値を右ノードに置くべきか左ノードに置くべきかを自ら学習します。
光勾配ブースティングマシン (Light GBM)
Light GBM は、その効率性と高速性により、Gradient Boosting Machine のさらにアップグレードされたバージョンです。 GBM や XGBM とは異なり、複雑さを感じることなく大量のデータを処理できます。一方、数が少ないデータ ポイントには適していません。
Light GBM は、レベルごとの成長ではなく、ツリーのノードのリーフごとの成長を好みます。さらに、ライト GBM では、プライマリ ノードが 2 つのセカンダリ ノードに分割され、その後、分割する 1 つのセカンダリ ノードが選択されます。このセカンダリ ノードの分割は、2 つのノードのうちどちらの方が損失が大きいかによって決まります。
Javaユーザー入力
したがって、リーフごとの分割により、大量のデータが与えられる場合には、Light Gradient Boosting Machine (LGBM) アルゴリズムが他のアルゴリズムよりも常に優先されます。
キャットブースト
catboost アルゴリズムは主に、データセット内のカテゴリ特徴を処理するために使用されます。 GBM、XGBM、および Light GBM アルゴリズムは数値データ セットに適していますが、Catboost はカテゴリ変数を数値データに処理するように設計されています。したがって、catboost アルゴリズムは、カテゴリ特徴量を他のアルゴリズムには存在しない数値変数に変換するための必須の前処理ステップで構成されます。
ブースティングアルゴリズムの利点:
- ブースティング アルゴリズムはアンサンブル学習に従うため、モデルは打ち負かすことのできないより正確な予測を行うことができます。
- ブースティング アルゴリズムは、さまざまな損失関数を最適化し、いくつかのハイパーパラメーター調整オプションを提供できるため、他のアルゴリズムよりもはるかに柔軟です。
- 数値変数とカテゴリ変数の両方に適しているため、データの前処理は必要ありません。
- データセット内の欠損値を補完する必要はなく、欠損データが自動的に処理されます。
ブースティング アルゴリズムの欠点:
以下に、ブースティング アルゴリズムの欠点をいくつか示します。
- アルゴリズムをブーストすると、外れ値が過度に強調されるだけでなく、過剰適合が発生する可能性があります。
- 勾配ブースティング アルゴリズムはエラーを最小限に抑えるために継続的に焦点を合わせており、複数のツリーが必要なため、計算コストが高くなります。
- これは時間がかかり、メモリを大量に消費するアルゴリズムです。
- 解釈の余地はあまりありませんが、これはさまざまなツールを使用して簡単に対処できます。
結論:
このようにして、機械学習における予測モデリングのためのブースティング アルゴリズムを学習しました。また、GBM、XGBM、light GBM、Catboost など、ML で使用されるさまざまな重要なブースティング アルゴリズムについても説明しました。さらに、さまざまなコンポーネント (損失関数、弱学習器、および加法モデル) と GBM がそれらとどのように連携するかを見てきました。現実世界のシナリオでの展開においてブースティング アルゴリズムがどのように有利であるかなど。