Ensemble
アンサンブル学習がどのように精度を向上させ過学習を低減するか解説します。Ultralytics YOLO26のような複数のモデルを組み合わせて、優れたコンピュータビジョンの結果を得る方法を学びましょう。
Ensemble learning is a robust strategy in machine learning (ML) where multiple independent models, often referred to as "weak learners," are combined to produce a single predictive output. The fundamental premise is that a group of models can often achieve higher accuracy and better generalization than any single model acting alone. By aggregating the predictions from diverse algorithms, ensemble methods effectively reduce the risk of overfitting to the training data, smooth out random errors, and improve overall system stability. This approach is analogous to consulting a panel of experts rather than relying on the opinion of a single individual to make a critical decision.
Link to this sectionアンサンブル学習のメカニズム#
アンサンブル手法の有効性は、バイアス・バリアンスのトレードオフを操作する能力にあります。個々のモデルは、高いバリアンス(ノイズへの感度)や高いバイアス(過度な単純化)に悩まされる可能性があります。アンサンブルは、以下の特定の技術を通じてこれらの問題を軽減します。
- バギング (ブートストラップ集約): この手法は、同一アルゴリズムの複数のインスタンスを、データセットの異なるサブセットで学習させるものです。最も有名な例はランダムフォレストアルゴリズムであり、これは多数の決定木の判断を集約してバリアンスを低減します。
- ブースティング: バギングとは異なり、ブースティングはモデルを順番に学習させます。新しいモデルはそれぞれ、前のモデルによって生じた誤差を修正することに焦点を当てます。LightGBMやCatBoostのような一般的なフレームワークは、これを利用して極めて精度の高い予測システムを作成します。
- スタッキング (スタックされた一般化): これには、複数の異種ベースモデル(例:ニューラルネットワークとサポートベクターマシン)の予測を組み合わせるために、新しい「メタモデル」を学習させることが含まれます。
Link to this sectionコンピュータビジョンにおけるアンサンブル#
コンピュータビジョン (CV)の分野では、コンペティションや重要な安全アプリケーションにおいてパフォーマンスを最大化するために、アンサンブルが頻繁に使用されます。物体検出の場合、これは多くの場合、同一の画像に対してYOLO26の異なるバージョンといった複数のモデルを実行することを含みます。その結果得られたバウンディングボックスは、非最大値抑制 (NMS)やWeighted Box Fusion (WBF)といった手法を用いて統合され、最も可能性の高い物体の位置が導き出されます。
Link to this section実社会での応用#
アンサンブル手法は、予測の信頼性が極めて重要な業界では一般的です。
-
医療診断と画像診断: ヘルスケアにおいて、偽陰性を回避することは極めて重要です。アンサンブルは、X線で学習させた畳み込みニューラルネットワーク (CNN)とVision Transformer (ViT)を組み合わせて異常を検出することがあります。モデル間の合意はより高い信頼スコアを提供し、放射線科医が腫瘍の検出や稀な病気の診断を行うのを支援します。
-
金融不正検知: 金融機関は、取引パターンを分析するためにアンサンブルを使用します。ロジスティック回帰モデルと勾配ブースティングマシンを組み合わせることで、システムは単一のモデルでは見逃してしまうような微細な不正の兆候を検知しつつ、誤警報率を低く保つことができます。
Link to this sectionPythonによるモデルアンサンブルの実装#
複数の学習済みモデルを読み込み、同じ入力に対して予測を生成することで、基本的な推論アンサンブルをシミュレートできます。Ultralytics Platformを使用すると、これらのバリエーションを簡単に学習させることができます。以下の例は、2つの異なるUltralytics YOLOモデル(YOLO26nおよびYOLO26s)を読み込んで、画像上の検出結果を検証する方法を示しています。
from ultralytics import YOLO
# Load two distinct YOLO26 model variants
# 'n' (nano) is faster, 's' (small) is more accurate
model_nano = YOLO("yolo26n.pt")
model_small = YOLO("yolo26s.pt")
# Define the image source
source = "https://ultralytics.com/images/bus.jpg"
# Run inference with both models
results_n = model_nano(source)
results_s = model_small(source)
# Compare the number of objects detected by each model
print(f"Nano Model Found: {len(results_n[0].boxes)} objects")
print(f"Small Model Found: {len(results_s[0].boxes)} objects")Link to this sectionアンサンブルとデータ拡張の違い#
アンサンブル学習とデータ拡張を区別することが重要です。
- アンサンブルはアーキテクチャと予測フェーズに焦点を当て、複数の学習済みモデルを組み合わせて結果を向上させます。
- データ拡張は学習データフェーズに焦点を当て、(回転や反転などを介して)データセットの多様性を人工的に高めることで、単一のより堅牢なモデルを学習させます。
データ拡張は単一モデルの学習を助けますが、アンサンブル学習は複数のモデルが互いの出力を検証するのを助けます。両方の戦略は、インスタンスセグメンテーションや姿勢推定のようなタスクで最先端の結果を達成するために、しばしば併用されます。






