YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

アンサンブル

アンサンブル学習がどのように精度を向上させ、過学習を削減するかを知りましょう。Ultralytics YOLO26のような複数のモデルを組み合わせて、優れたコンピュータビジョン結果を得る方法を学びましょう。

アンサンブル学習は、複数の独立したモデル(しばしば「弱学習器」と呼ばれる)を組み合わせて単一の予測出力を生成する、機械学習 (ML)における堅牢な戦略です。基本的な前提は、単一のモデルが単独で動作するよりも、複数のモデルのグループの方が高い精度と優れた汎化性能を達成できることが多いということです。多様なアルゴリズムからの予測を集約することで、アンサンブル手法は過学習のリスクを効果的に低減し、ランダムなエラーを平滑化し、システム全体の安定性を向上させます。このアプローチは、重要な決定を下す際に、一人の個人の意見に頼るのではなく、専門家パネルに相談することに似ています。

アンサンブル学習のメカニズム

アンサンブルメソッドの有効性は、バイアス-バリアンスのトレードオフを操作する能力にあります。個々のモデルは、高いバリアンス(ノイズへの感度)または高いバイアス(過度の単純化)に悩まされる可能性があります。アンサンブルは、特定の技術を通じてこれらの問題を軽減します。

  • バギング(ブートストラップ集約): この手法は、データセットの異なるサブセットで同じアルゴリズムの複数のインスタンスをトレーニングすることを含みます。最も有名な例はRandom Forestアルゴリズムで、これは多くの決定木の決定を集約して分散を減らします。
  • Boosting: バギングとは異なり、ブースティングはモデルを逐次的に訓練します。各新しいモデルは、以前のモデルが犯したエラーを修正することに焦点を当てます。LightGBMCatBoostのような人気のあるフレームワークは、これを利用して高精度な予測システムを構築します。
  • Stacking (Stacked Generalization): これは、複数の異種ベースモデル(例:ニューラルネットワークサポートベクターマシン)の予測を組み合わせるために、新しい「メタモデル」を訓練することを含みます。

コンピュータビジョンにおけるアンサンブル

コンピュータビジョン (CV)の分野では、アンサンブルは競技会や重要な安全アプリケーションで性能を最大化するために頻繁に使用されます。オブジェクトdetectの場合、これはしばしば、YOLO26の異なるバージョンなど、複数のモデルを同じ画像で実行することを含みます。結果として得られるバウンディングボックスは、最も可能性の高いオブジェクト位置を導き出すために、Non-Maximum Suppression (NMS)Weighted Box Fusion (WBF)のような技術を使用してマージされます。

実際のアプリケーション

アンサンブル手法は、予測の信頼性が最重要視される業界で広く普及しています。

  1. Medical Diagnosis and Imaging: ヘルスケアにおいて、偽陰性を避けることは極めて重要です。アンサンブルは、X線画像で訓練された畳み込みニューラルネットワーク(CNN)Vision Transformer(ViT)を組み合わせて異常をdetectする場合があります。モデル間の合意により、より高い信頼度スコアが得られ、放射線科医が腫瘍をdetectしたり、希少疾患を診断したりするのを支援します。
  2. 金融詐欺検出: 金融機関はアンサンブルを使用して取引パターンを分析します。ロジスティック回帰モデルと勾配ブースティングマシンを組み合わせることで、システムは単一のモデルでは見逃す可能性のある詐欺の微妙な兆候をdetectし、誤報率を低く保つことができます。

python を用いたモデルアンサンブルの実装

複数の学習済みモデルをロードし、同じ入力に対して予測を生成することで、基本的な推論アンサンブルをシミュレートできます。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")

アンサンブル vs. データ拡張

アンサンブル学習データ拡張と区別することが重要です。

  • アンサンブルは、アーキテクチャ予測フェーズに焦点を当て、複数の訓練された異なるモデルを組み合わせて結果を改善します。
  • データ拡張は、トレーニングデータのフェーズに焦点を当て、データセットの多様性を人工的に増加させる(例:回転や反転など)ことで、単一のより堅牢なモデルをトレーニングします。

データ拡張は単一モデルの学習を向上させますが、アンサンブル学習は複数のモデルが互いの出力を検証するのに役立ちます。両方の戦略は、インスタンスsegment姿勢推定などのタスクで最先端の結果を達成するためにしばしば併用されます。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。