Yolo 深圳
深セン
今すぐ参加
用語集

焦点損失

深層学習におけるクラス不均衡をFocal Lossが解決する仕組みを探る。Ultralytics 実装し、困難な例に焦点を当てモデル精度を向上させる方法を学ぶ。

焦点損失(Focal Loss)は、深刻なクラス不均衡の問題に対処するために主に深層学習で使用される特殊な目的関数である。物体検出などの多くのコンピュータビジョン課題では、背景例(ネガティブサンプル)の数が対象物(ポジティブサンプル)を大幅に上回る。広く用いられるクロスエントロピー損失などの標準手法は、すべての誤りを均等に扱うため、分類が容易な背景データが大量に存在することでモデルが圧倒されることが頻繁に起こる。焦点損失は標準的な損失計算を修正し、誤りを均等に扱うことで、この問題を解決する。 クロスエントロピー損失は全ての誤りを同等に扱うため、classify 膨大な量にモデルが圧倒されることが頻繁に発生する。フォーカル損失は標準的な損失計算を修正し、こうした容易な例を軽視することで、最適化アルゴリズムが学習能力を「困難な」例——モデル性能にとって極めて重要でありながら稀でclassify 集中させるよう強制する。

焦点の仕組み

焦点損失の核心的な革新性は、モデルの信頼度に基づいて各サンプルに割り当てられるペナルティを動的にスケーリングする能力にある。典型的な教師あり学習シナリオでは、検出器が画像内の数千もの候補位置を評価することがある。これらの位置の大半は物体を含まないため、標準的な損失関数はこうした容易な陰性例から多くの小さな誤差信号を蓄積し、その結果、少数の陽性例から得られる貴重な信号が埋もれてしまう。

焦点損失は、正しいクラスに対する確信度が高まるにつれて損失寄与を減少させる調整係数を導入する。これは、モデルが背景パッチが確かに背景であると既に99%確信している場合、そのパッチに対する損失がほぼゼロに減少することを意味する。結果として、モデルの重みは主に誤分類されたサンプルやモデルが不確かなサンプルに基づいて更新される。 この標的型アプローチは、YOLO26のような 高性能なワンステージ物体検出器の訓練に不可欠であり、複雑なサンプリング段階を必要とせずに高い精度を達成することを可能にします。

実際のアプリケーション

安全性と精度が最優先される環境において、頑健なAIシステムを展開するには、不均衡なトレーニングデータの取り扱いが極めて重要である。

  • 医療におけるAI 医療画像解析などの分野では、病変の特定は しばしば藁の山から針を探すような作業に例えられる。例えば、小さな病変を探すMRI画像では、 健康な組織がピクセルの99%以上を占める場合がある。 標準モデルは単純な精度を最大化するため、 あらゆる領域を「正常」と予測し、重要な診断を見逃す可能性がある。焦点損失(Focal Loss)は、 豊富な正常組織からの信号を抑制し、異常の微妙な特徴を学習することを優先させることで、 命を救う検出における再現率を向上させる。
  • 自動運転車 自動運転車の知覚システムは、建物、道路、空といった複雑な背景の中で、歩行者や自転車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}")

関連概念との区別

焦点損失がエラー測定のより広範な枠組みの中でどのような位置を占めるかを理解することは、特定のコンピュータビジョンタスクに適した戦略を選択する上で役立つ。

  • 焦点損失と交差エントロピー損失: 交差エントロピーは分類の基礎となる指標であり、対数誤差に基づいて予測をペナルティ化する。 フォーカル損失は厳密にクロスエントロピーの拡張であり、フォーカスパラメータをゼロに設定すると数学的に標準クロスエントロピーに戻る。主な違いは、容易な否定例を自動的に軽視するフォーカル損失の能力であり、これによりCOCOのような不均衡データセットにおいて優位性を発揮する。 COCOなどの不均衡データセットにおいて優位性を発揮します。
  • 焦点IoU : 焦点損失分類物体が何であるかを決定)のために設計されている一方、IoU 位置特定(物体がどこにあるかを決定)に使用される。現代の検出器は、クラス確率のための焦点損失とバウンディングボックス回帰 IoU指標を組み合わせた複合損失関数を利用する。
  • 焦点損失対ダイス損失: ダイス損失は不均衡に対処するための別の手法であり、主に画像セグメンテーション課題で使用される。焦点損失が信頼度に基づいて個々のピクセルやサンプルに対して作用するのに対し、ダイス損失は予測領域と真値領域の重なりを全体的に最適化する。複雑なセグメンテーションワークフローでは、両者を併用するケースが一般的である。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加