アルゴリズムの進化の歴史を後押し

背景

現在人気のアルゴリズム、画像とテキストの外側に加えて、ニューラルネットワークは、オーディオおよび他のフィールドは輝き、総合学習xgboost、lightGBM、CatBoostもkaggle機械学習プラットフォーム上で最もホットなツールとなっています。

 

明確なコンセプト:

1、ブースティング(リフト)

(ブースティング適応)を昇圧2、アダプティブ

図3に示すように、勾配ブースティング(勾配リフト)

4、ディシジョン・ツリー(木)

 

A、ブースト

コンセプト(リフティングスキーム)について後押しされて、それがベース分類器によってサポートされていない場合は簡単に(学習サンプルの重みを変更することにより、(いくつかの特定のアルゴリズムに言及していない、家族と呼ばれるアルゴリズムのクラスである)アルゴリズムを強化するために、上記に記載されています分類性能を向上させるために、)これらの組み合わせ線形分類器と分類器を学習する複数のサンプル分布基づいて分類器を訓練するのサンプリング方法を調整することによって変更しました。ここでは、アルゴリズムを強化するための積分アルゴリズムに関するすべての話です

 

二、アダブースト(適応強化アルゴリズム適応ブースト)

 分類作業のために、李ハング「統計的学習方法は、」詳細に記載されています

 

 

 

プロセスを要約すると、以下に示します

 

 

 

 

 

以上の検討の後、我々はすでにコアがアダブーストで識別することができます

1)エラー計算基づく分類

2)ベースの分類器の重みの重みを計算

3)サンプルの重みを更新します

4)最後に、組み合わせ戦略

リターン・ミッションについては、次の手順をアダブースト

 

 

 

 

 

 

三、GBDT GBDTがXGBoost含むツリーアルゴリズムを昇圧すべての勾配を指し、それは、それらを区別するために、また一般的な特にGBDT変種GBDTです:アルゴリズム「マシンを後押し貪欲関数近似Aグラデーション 」 提案だけで一次導関数の情報。)

リファレンスから:https://zhuanlan.zhihu.com/p/46445201

GBDTは、ブースティングアルゴリズムに基づく分類器としてCARTの木(回帰木)です。重量アダブーストと異なるベース分類の異なる訓練サンプルの各調整値、GBDT経験を訓練されたターゲット基地分類を当てはめることにより、残差として。

原則でGBDTの外観は、タスクに戻るために適用されます

 

 

 

最適化理論、非常に精通し、既に勾配降下最適化アルゴリズムは、2を比較するために得るために実際に、私はいつも私はいつもの代わりにGBDTはまだ「急降下」と思い、GBDT「勾配アップグレード」を理解していなかったとなっています「アップグレード勾配」、次のチャートは、ブログ上の比較であります

 

 これは明らかに使用される「勾配降下。」

多くの情報を取った後GBDT「勾配アップグレード」の利用が呼び出され、なぜ、私は最終的に理解しています。ここで、「勾配アップグレードは」ものではなく、「勾配降下」の反対の概念は、逆に、それは解体するべきです

 「傾斜リフト」=「勾配」+「リフト」

「グラデーション」勾配アルゴリズムGBDTおおよそのフィット残差の練習を指し、

「リフト」は、強い弱学習の実践に昇格されたブースティング学習方法に言及します

そして、回帰タスクの実用化のGBDT例を添付

 

 

 

分類タスクに使用GBDT

 二分タスクについては、

 

 

 

 

 

 

 

 最も重要なことは、各分類のタスクベースの分類器のためのフィッティングされた上記は、真のタグと対応する確率とクラス予測残差です。

 

 

四、XGBoost(極端グラデーションブースティング)

名前から見ることができ、xgboostはGBDTの拡張バージョンです。

そのポイントの改善記載されているgbdtのxgboost場合は、すべての詳細私は詳しく説明するいくつかのポイントを選んだので、もう少し必要とします。

簡単な思考が理解ほとんどのために、私たちは考えのxgboostアルゴリズム、ポイントを向上させることが可能なGBDT思考プロセス、外出先を負いません。

図1に示すように、グループは、学習者が選択しました。

ベース学習者としてのCART(回帰木)を使用してGBDTは、我々はまた、他のベース学習者を支援検討することができますので、xgboostも線形学習者をサポートしています

2、損失関数を選択します。

GBDTほとんどの場合、下の二乗誤差を使用すると、損失関数として、我々はまた、彼らの損失関数を実現するのでxgboost、優れた損失関数を考慮することができます。

3、スプリットポイントの機能と特徴選択。

前記CARTツリー、具体的にはシリアル全ての特徴点及び特徴分割のトラバーサル、最小二乗誤差特徴と断片化ポイントを選択を使用してGBDT特徴スプリットポイントの選択方法。

このプロセスは、我々は、各機能が並行して実行することができるが、サンプルは、グローバル多重化と特性の結果に従ってソートすることができれば、大幅に計算効率を向上させることができるだけでなく、そうxgboost行うには損失関数の計算と分割点に注意してください。

また、それぞれの木の特性GBDT選択ポリシーが同じ、小さな分散、多様性の欠如である、我々は列(確率変数の選択)アイデアの森のランダムなサンプルを描くことができ、xgboostもこれを実現します。

戦略をフィッティング残差の4は、異なる木

残差の使用の代わりに、残留フィッティングの一次導関数のGBDT利点(明らかの一次導関数をフィッティング、良好なナンセンスああであり、代わりに残差の第一導関数を用いて、残差の原因を得ることが困難であることが多くの情報を、説明されるべきですより速くフィット、および機能の二乗誤差と損失するためには、最初の誘導体では、残留に等しい)、その後、我々は提案の二次導関数を使用することはできません、我々は勾配降下とニュートンの法則を考え何を発散フィットの残差は、答えはイエスです、そしてxgboostはそうすることで、二次微分戦略を適合させることにより、関数xgboost(ステップ2を参照)の損失を計算しました。機能の喪失はまた、より良いxgboost汎化性能が作る、正則を通じて考慮に構造的リスク、構造的なリスクを取って、アカウントへのリスクの経験を取るだけでなく、可能性が低いオーバーフィッティングにあります。

 

五、LightGBM

そのようなほとんどのデータセットのパフォーマンスなどの精度、効率及びメモリ消費の点で、アルゴリズムは、良好xgboost以上です。

私たちは、上記の考え方に従う方法をさらに最適化するためのアルゴリズムGBクラス上の基礎xgboostの最適化について考え続けています。

1は、問題が連続特徴選択と機能の分割ポイントが選択されている最も時間がかかるプロセスを高め、xgboostは、事前に注文した事前ソートによって最適化されていますが、あまりにも多くのサンプルは、機能の列挙値、または意志を対応する場合原因の問題は時間がかかりすぎます。各バケットを通過するときに我々は、スプリットポイントの選択に予め機能サンプルを分けた樽(ビン)の方法により、ヒストグラム(ヒストグラム)アルゴリズムを考えることができますので、それは少し精度を失うことになるが、効果的に、運用効率を向上させることができますそれは、他の最適化によって相殺することができます。

図2に示すように、ノード分割戦略。GBDTは、分割処理とツリーをxgboost使用レベル単位(同様のトラバーサル順序)分割され、均等に分割寄与を処理し、このアプローチは、同一層内の異なるサブノードが大きく変化してもよいです。葉単位(同様の深さ優先トラバーサル)分割方式、分割する最も深いサブノードに最大の寄与を選択する各工程を用いlightGBM。

3、サンプリング方法。かどうかGBDTまたはxgboostは、我々は常に残留が少ない一定のしきい値より大きい場合、その勾配の面でサンプルの大多数のためのケースがあるかもしれストップトレーニング、フィット残差にベース学習者を訓練しています小さなされ、我々はこれであろう、サンプルの勾配より少ない数(ランダムサンプリング)を低減、毎回新しいトレーニングベースの学習者は、予約勾配より大きなサンプルを期待することができるように、サンプルの勾配の小さな部分は、依然として大きいましたそれはGOSS法(勾配ベースのワンサイドサンプリング)です。

 

OK ,,,彼らは初版、その背後にある反復最適化に満足していないことを書かれました。私はcatboostを修理したいと思います。

おすすめ

転載: www.cnblogs.com/tianyadream/p/12470503.html