Focal Loss
Focal Lossがディープラーニングにおけるクラス不均衡をいかに解決するか解説します。Ultralytics YOLO26に実装して困難な例に焦点を当て、モデル精度を向上させる方法を学びましょう。
Focal Lossは、深刻なクラス不均衡の問題に対処するためにディープラーニングで主に使用される特殊な目的関数です。物体検出などの多くのコンピュータビジョンタスクにおいて、背景の例(ネガティブサンプル)の数は、対象となる物体(ポジティブサンプル)の数を大幅に上回ります。広く使用されているCross-Entropy Lossのような標準的な手法は、すべてのエラーを等しく扱うため、分類が容易な背景データが大量にあるとモデルが圧倒されてしまうことがよくあります。Focal Lossは、標準的な損失計算を修正してこれらの容易な例の重みを低減させ、optimization algorithmが「ハード」な例、つまりモデルのパフォーマンスに不可欠な、分類が困難で希少な物体に学習能力を集中させるようにします。
Link to this sectionフォーカシングのメカニズム#
Focal Lossの核となる革新性は、モデルの信頼度に基づいて各サンプルに割り当てられるペナルティを動的にスケーリングする能力にあります。一般的なsupervised learningシナリオでは、検出器は画像内の何千もの候補位置を評価する場合があります。これらの位置のほとんどには物体が含まれていないため、標準的なloss functionは、こうした容易なネガティブサンプルから小さなエラー信号を蓄積してしまい、少数のポジティブインスタンスからの貴重な信号がかき消されてしまう可能性があります。
Focal Loss introduces a modulating factor that decays the loss contribution as the confidence in the correct class increases. This means that if a model is already 99% sure that a background patch is indeed background, the loss for that patch is reduced to near zero. Consequently, the model weights are updated primarily based on misclassified samples or those where the model is uncertain. This targeted approach is essential for training high-performance one-stage object detectors like YOLO26, allowing them to achieve high accuracy without requiring complex sampling stages.
Link to this section実社会での応用#
不均衡なtraining dataの処理は、安全性と精度が極めて重要な環境において堅牢なAIシステムを展開するために不可欠です。
- AI in Healthcare: medical image analysisのような分野では、病変の特定は干し草の山から針を探すことに例えられます。例えば、小さな病変を探すMRIスキャンでは、健康な組織が画素の99%以上を占める場合があります。標準的なモデルは、至る所で「健康」と予測することで単純な精度を最大化し、重要な診断を見逃してしまう可能性があります。Focal Lossは、システムが豊富な健康な組織からの信号を抑制し、異常の微妙な特徴を学習することを優先できるようにし、命を救う検出のためのrecallを向上させます。
- Autonomous Vehicles: 自動運転車向けの知覚システムは、建物、道路、空といった複雑な背景の中で、歩行者や自転車に乗る人などの脆弱な交通参加者を検出する必要があります。背景は容易に学習できますが、小さかったり遠かったりする障害物は大きな課題となります。Focal Lossを活用することで、AI in automotiveアプリケーションは、知覚スタックがこれらの検出困難な物体を見落とさないようにし、危険物が視野のわずかな部分しか占めていない場合でも安全基準を維持できます。
Link to this sectionUltralyticsによる実装#
ultralyticsライブラリには、最先端のモデルをサポートするために高度な損失関数の最適化された実装が含まれています。 Ultralytics Platformは最適なトレーニングのためにこれらのハイパーパラメータを自動的に構成しますが、開発者はカスタム研究のためにこれらのコンポーネントに直接アクセスすることもできます。
以下の例は、ultralyticsユーティリティパッケージを使用してFocal Lossを初期化し、予測セットのエラーを計算する方法を示しています。
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}")Link to this section関連概念との区別#
Focal Lossがエラー測定のより広い状況の中でどのような位置を占めるかを理解することは、特定のコンピュータビジョンタスクに適した戦略を選択するのに役立ちます。
- Focal Loss vs. Cross-Entropy Loss: Cross-Entropy is the foundational metric for classification that penalizes predictions based on logarithmic error. Focal Loss is strictly an extension of Cross-Entropy; if the focusing parameter is set to zero, it mathematically reverts to standard Cross-Entropy. The key distinction is Focal Loss's ability to automatically down-weight easy negatives, making it superior for imbalanced datasets like COCO.
- Focal Loss vs. IoU Loss: Focal Lossが(物体が何であるかを決定する)分類のために設計されているのに対し、IoU Lossは(物体がどこにあるかを決定する)ローカライゼーションに使用されます。現代の検出器は、クラス確率のためのFocal Lossとbounding box回帰のためのIoUベースの指標を組み合わせた複合損失関数を利用しています。
- Focal Loss vs. Dice Loss: Dice Lossは、主にimage segmentationタスクにおいて不均衡を処理するために使用されるもう一つの手法です。Focal Lossが信頼度に基づいて個々の画素やサンプルに作用するのに対し、Dice Lossは予測領域と正解領域の重なりを全体的に最適化します。複雑なsegmentation workflowsでは、両方を組み合わせて使用するのが一般的です。






