機械学習のブースティング

ブースティングは、予測データ分析のエラーを減らすために機械学習で使用される方法です。データサイエンティストは、機械学習モデルと呼ばれる機械学習ソフトウェアをラベル付きデータでトレーニングして、ラベルなしデータについて推測します。1 つの機械学習モデルでは、トレーニングデータセットの精度によっては予測エラーが発生する可能性があります。例えば、猫を識別するモデルが白猫の画像のみでトレーニングされている場合、黒猫を誤認することがあります。ブースティングは、システム全体の精度を向上させるために複数のモデルを順番にトレーニングすることで、この問題を克服しようとします。

ブースティングが重要な理由

ブースティングは、複数の弱学習器を 1 つの強い学習モデルに変換することにより、マシンモデルの予測精度とパフォーマンスを向上させます。機械学習モデルは、次の弱学習器か強学習器である可能性があります。

弱学習器

弱学習器は、ランダムな推測と同様に、予測精度が低くなります。また、過剰適合する傾向があります。つまり、元のデータセットと大きく異なるデータを分類できません。例えば、猫を耳の尖った動物として識別するようにモデルをトレーニングすると、耳が丸まっている猫を認識できない場合があります。

強学習器

強学習器は、より高い予測精度を持っています。ブースティングは、弱学習器のシステムを 1 つの強い学習システムに変換します。例えば、猫の画像を識別するために、先のとがった耳を推測する弱学習器と、猫の目の形をした目を推測する別の学習器を組み合わせます。動物の画像を先のとがった耳で分析した後、システムは猫の目の形をした動物の画像をもう一度分析します。これにより、システムの全体的な精度が向上します。

ブースティングの仕組み

ブースティングの仕組みを理解するために、機械学習モデルがどのように決定を下すかを説明しましょう。実装には多くのバリエーションがありますが、データサイエンティストは、決定木アルゴリズムでブースティングを利用することがよくあります。

決定木

決定木は、機械学習のデータ構造であり、データセットをその機能に基づいてより小さなサブセットに分割することで機能します。決定木は、クラスが 1 つだけになるまで、データを繰り返し分割するという考え方です。例えば、ツリーは一連の「はい」または「いいえ」の質問をし、すべてのステップでデータを分類することがあります。

ブースティングアンサンブル法

ブースティングは、いくつかの弱い決定木を順番に組み合わせることにより、アンサンブルモデルを作成します。個々のツリーの出力に重みを割り当てます。次に、最初の決定木からの誤った分類に高い重みを与え、次のツリーに入力します。多数のサイクルの後、ブースティング手法はこれらの弱いルールを 1 つの強力な予測ルールに結合します。

ブースティングとバギングの比較

ブースティングとバギングは、予測精度を向上させる 2 つの一般的なアンサンブル手法です。これらの学習方法の主な違いは、トレーニングの方法です。バギングでは、データサイエンティストは、複数のデータセットで一度に複数の学習器をトレーニングすることにより、弱学習器の精度を向上させます。対照的に、ブースティングは弱学習器を次々とトレーニングします。

 

ブースティングのトレーニング方法

トレーニング方法は、ブースティングアルゴリズムと呼ばれるブースティングプロセスのタイプによって異なります。ただし、アルゴリズムは、ブースティングモデルをトレーニングするために次の一般的な手順を実行します。

ステップ 1

ブースティングアルゴリズムは、各データサンプルに等しい重みを割り当てます。これは、基本アルゴリズムと呼ばれる最初のマシンモデルにデータをフィードします。基本アルゴリズムは、各データサンプルの予測を行います。

ステップ 2

ブースティングアルゴリズムは、モデルの予測を評価し、より重大なエラーでサンプルの重みを増やします。また、モデルのパフォーマンスに基づいて重みを割り当てます。優れた予測を出力するモデルは、最終決定に大きな影響を及ぼします。

ステップ 3

アルゴリズムは、重み付けされたデータを次の決定木に渡します。

ステップ 4

アルゴリズムは、トレーニングエラーのインスタンスが特定のしきい値を下回るまで、ステップ 2 と 3 を繰り返します。

ブースティングのタイプ

ブースティングには主なタイプが 3 つあります。それは次のとおりです。

アダプティブブースティング

アダプティブブースティング (AdaBoost) は、最も初期に開発されたブースティングモデルの 1 つです。ブースティングプロセスのすべての反復で適応し、自己修正を試みます。 

AdaBoost は、最初は各データセットに同じ重みを与えます。次に、すべての決定木の後にデータポイントの重みを自動的に調整します。次のラウンドで修正できるようにするために、誤って分類されたアイテムにより多くの重みを与えます。残留誤差、または実際の値と予測値の差が許容可能なしきい値を下回るまで、このプロセスを繰り返します。

AdaBoost は多くの予測子で使用でき、通常、他のブースティングアルゴリズムほど感度が高くありません。このアプローチは、特徴間に相関関係がある場合やデータの次元が高い場合にはうまく機能しません。全体として、AdaBoost は分類問題に適したタイプのブースティングです。

勾配ブースティング

勾配ブースティング (GB) も、シーケンシャルトレーニング手法であるという点で AdaBoost に似ています。AdaBoost と GB の違いは、GB が誤って分類されたアイテムにより大きな重みを与えないことです。代わりに、GB ソフトウェアは、現在の基本学習器が常に前の基本学習器よりも効果的であるように、基本学習器を順次生成することによって損失関数を最適化します。この手法は、AdaBoost のようにプロセス全体でエラーを修正するのではなく、最初に正確な結果を生成しようとします。このため、GB ソフトウェアはより正確な結果をもたらす可能性があります。勾配ブースティングは、分類と回帰ベースの問題の両方に役立ちます。

極端な勾配ブースティング

極端な勾配ブースティング (XGBoost) は、複数の方法でコンピューティング速度とスケールインの勾配ブースティングを改善します。XGBoost は CPU で複数のコアを使用するため、トレーニング中に学習を並行して行うことができます。これは、広範なデータセットを処理できるブースティングアルゴリズムであり、ビッグデータアプリケーションにとって魅力的です。XGBoost の主な機能は、並列化、分散コンピューティング、キャッシュの最適化、およびアウトオブコア処理です。

ブースティングの利点

ブースティングには、次の主な利点があります。

実装のしやすさ

ブースティングには、間違いから学ぶ、理解しやすく解釈しやすいアルゴリズムがあります。このようなアルゴリズムはデータの前処理を必要とせず、欠落したデータを処理するための組み込みルーチンがあります。さらに、ほとんどの言語には、パフォーマンスを微調整できる多くのパラメータを含むブースティングアルゴリズムを実装するためのライブラリが組み込まれています。

バイアスの削減

バイアスとは、機械学習の結果に不確実性または不正確さが存在することです。ブースティングアルゴリズムは、複数の弱学習器をシーケンシャルな方法で組み合わせ、観測を繰り返し改善します。このアプローチは、機械学習モデルで一般的な高バイアスを減らすのに役立ちます。

コンピューティング効率

ブースティングアルゴリズムは、トレーニング中、予測精度を高める機能を優先します。これらは、データ属性を削減し、大規模なデータセットを効率的に処理するのに役立ちます。

ブースティングの課題

ブースティングモードの一般的な制約は次のとおりです。

外れ値データに対する脆弱性

ブースティングモデルは、データセットの他の部分とは異なる外れ値またはデータ値に対して脆弱です。各モデルは前のモデルの障害を修正しようとするため、外れ値によって結果が大幅に歪む可能性があります。

リアルタイムの実装

また、アルゴリズムは他のプロセスよりも複雑であるため、リアルタイムの実装にブースティングを使用するのは難しい場合があります。ブースティング方法は適応性が高いため、モデルのパフォーマンスにすぐに影響するさまざまなモデルパラメータを使用できます。

AWS がブースティングで行えるサポート

AWS ネットワークサービスは、企業に以下を提供するように設計されています。

Amazon SageMaker

Amazon SageMaker は、機械学習専用に構築された幅広い機能セットをまとめたものです。これを使用して、高品質の機械学習モデルをすばやく準備、構築、トレーニング、デプロイできます。

Amazon SageMaker Autopilot

Amazon SageMaker Autopilot は、機械学習モデルを構築する手間のかかる作業を取り除き、データに基づいてモデルを自動的に構築およびトレーニングするのに役立ちます。SageMaker Autopilot では、表形式のデータセットを提供し、予測するターゲット列を選択します。これは、数値またはカテゴリにすることができます。SageMaker Autopilot は、さまざまなソリューションを自動的に探索して、最適なモデルを見つけます。その後、ワンクリックでモデルを本番に直接デプロイするか、Amazon SageMaker Studio を使用して推奨ソリューションを繰り返して、モデルの品質をさらに向上させることができます。

Amazon SageMaker Debugger

Amazon SageMaker Debugger を使用すると、トレーニングメトリクスをリアルタイムでキャプチャし、エラーを検出したときにアラートを送信することで、機械学習モデルを簡単に最適化できます。これにより、画像を誤って識別するなどの不正確なモデル予測を即座に修正できます。

Amazon SageMaker は、大規模な深層学習モデルとデータセットをトレーニングするための高速で簡単な方法を提供します。SageMaker 分散トレーニングライブラリは、大規模なデータセットをより高速にトレーニングします。

今すぐ AWS アカウントを作成 して Amazon SageMaker を使用開始しましょう。

AWS 機械学習の次のステップ