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

焦点損失

Focal Lossがいかにディープラーニングにおけるクラス不均衡を解決するかを探ります。困難な事例に焦点を当て、モデル精度を向上させるためにUltralytics YOLO26でそれを実装する方法を学びましょう。

Focal Lossは、深刻なクラス不均衡の課題に対処するためにディープラーニングで主に使用される特殊な目的関数です。オブジェクトdetectなどの多くのコンピュータービジョンタスクでは、背景の例(ネガティブサンプル)の数が、関心のあるオブジェクト(ポジティブサンプル)の数を大幅に上回ります。広く使用されている交差エントロピー損失のような標準的な方法は、すべてのエラーを等しく扱い、モデルが分類しやすい背景データの膨大な量に圧倒されることがよくあります。Focal Lossは、これらの簡単な例の重みを減らすように標準的な損失計算を変更し、最適化アルゴリズムに、モデルのパフォーマンスにとって重要な「困難な」例、つまりまれで分類が難しいオブジェクトに学習能力を集中させます。

焦点合わせのメカニズム

Focal Lossの核となる革新は、モデルの確信度に基づいて、各サンプルに割り当てられるペナルティを動的にスケーリングする能力にあります。典型的な教師あり学習シナリオでは、検出器は画像内の何千もの候補位置を評価する可能性があります。これらの位置のほとんどにはオブジェクトが含まれていないため、標準的な損失関数は、これらの簡単なネガティブから多くの小さな誤差信号を蓄積し、わずかなポジティブインスタンスからの貴重な信号をかき消してしまう可能性があります。

Focal Lossは、正しいクラスに対する信頼度が高まるにつれて損失の寄与を減衰させる変調因子を導入します。これは、モデルが背景パッチが実際に背景であると99%確信している場合、そのパッチの損失がほぼゼロに減少することを意味します。その結果、モデルの重みは、主に誤分類されたサンプルやモデルが不確実なサンプルに基づいて更新されます。このターゲットを絞ったアプローチは、YOLO26のような高性能なone-stage object detectorsのトレーニングに不可欠であり、複雑なサンプリング段階を必要とせずに高い精度を達成することを可能にします。

実際のアプリケーション

不均衡なトレーニングデータの処理は、安全性と精度が最優先される環境で堅牢なAIシステムを展開するために不可欠です。

  • ヘルスケアにおけるAI: 医用画像解析のような分野では、病理を特定することは、しばしば干し草の山から針を見つけることに例えられます。例えば、小さな病変を探すMRIスキャンでは、健康な組織がピクセルの99%以上を占めることがあります。標準的なモデルは、どこでも「健康」と予測することで単純な精度を最大化し、重要な診断を見逃す可能性があります。Focal Lossは、豊富な健康な組織からの信号を抑制し、異常の微妙な特徴の学習を優先させることで、救命的なdetectionsのrecallを向上させます。
  • Autonomous Vehicles: 自動運転車の知覚システムは、建物、道路、空の複雑な背景に対して、歩行者や自転車利用者などの脆弱な道路利用者をdetectする必要があります。背景は容易に学習されますが、小さいまたは遠くの障害物は 大きな課題となります。Focal Lossを利用することで、 自動車AIアプリケーションは、危険が視覚野のほんの一部しか占めていない場合でも、 知覚スタックがこれらのdetectしにくいオブジェクトを無視しないようにし、安全基準を維持できます。

Ultralytics実装

について ultralytics ライブラリには、最先端のモデルをサポートするための高度な損失関数の最適化された実装が含まれています。一方、 Ultralyticsプラットフォーム これらのハイパーパラメータを最適な訓練のために自動的に構成しますが、開発者はカスタム研究のためにこれらのコンポーネントに直接アクセスすることもできます。

次の例は、Focal Lossを初期化する方法を示しています。 ultralytics ユーティリティパッケージを使用して、一連の予測に対する誤差を計算します。

import torch
from ultralytics.utils.loss import FocalLoss

# Initialize Focal Loss.
# The 'gamma' parameter controls the focusing strength (higher = more focus on hard examples).
criterion = FocalLoss(gamma=1.5)

# Example: Model predictions (logits) and binary Ground Truth labels
# requires_grad=True simulates model outputs that need backpropagation
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])

# Calculate the loss value
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")

関連概念との区別

Focal Lossが誤差測定のより広い範囲でどのように位置づけられるかを理解することは、特定のコンピュータービジョンタスクに適切な戦略を選択するのに役立ちます。

  • 焦点損失と交差エントロピー損失: 交差エントロピーは分類の基礎となる指標であり、対数誤差に基づいて予測をペナルティ化する。 フォーカル損失は厳密にクロスエントロピーの拡張であり、フォーカスパラメータをゼロに設定すると数学的に標準クロスエントロピーに戻る。主な違いは、容易な否定例を自動的に軽視するフォーカル損失の能力であり、これによりCOCOのような不均衡データセットにおいて優位性を発揮する。 COCOなどの不均衡データセットにおいて優位性を発揮します。
  • Focal Loss vs. IoU Loss: Focal Lossが分類(オブジェクトが何であるかを決定する)のために設計されているのに対し、IoU Lossは位置特定(オブジェクトがどこにあるかを決定する)のために使用されます。現代のdetectorsは、クラス確率のためのFocal Lossとバウンディングボックス回帰のためのIoUベースのメトリックを組み合わせた複合損失関数を利用します。
  • Focal Loss vs. Dice Loss: Dice Lossは、主に画像segmentationタスクにおいて不均衡を処理するために使用されるもう一つの手法です。Focal Lossが信頼度に基づいて個々のピクセルまたはサンプルに作用するのに対し、Dice Lossは予測領域とグラウンドトゥルース領域のグローバルなオーバーラップを最適化します。複雑なsegmentationワークフローで両方が一緒に使用されることがよくあります。

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

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