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

焦点損失

Focal Lossが物体検出におけるクラスの不均衡にどのように対処しているかをご覧ください。

フォーカル・ロスは、機械学習、特にコンピュータ・ビジョンの学習において、クラスが極端に不均衡になるという問題に対処するために設計された特殊な目的関数である。 特にコンピュータビジョンの分野ではそうである。多くの物体検出シナリオにおいて 背景の例(ネガ)の数は、関心のあるオブジェクト(ポジ)の数をはるかに上回ります。標準的な損失関数は 標準的な損失関数は、このようなclassify しやすい背景例の膨大な量に圧倒され、モデルの学習能力を妨げます。 を妨げてしまう。フォーカルロスは、予測の信頼度に基づいて損失を動的にスケーリングすることで、これを軽減します。 予測値の信頼度に基づいて損失を動的にスケーリングすることで、簡単な例を効果的に重み付けし、モデルに学習努力を集中させます。 を強制する。

クラスの不均衡への対応

フォーカルロスの主な動機は、次のような1段の物体検出器の性能を向上させることである。 一段階物体検出器 RetinaNetの初期バージョンや、次のような最新のアーキテクチャのような1段の物体検出器の性能を向上させることです。 Ultralytics YOLO11.これらのシステムでは 画像をスキャンし、何千もの候補位置を生成する。通常、画像の大部分は背景であるため、背景と物体の比率は 背景と物体の比率は1000:1以上になることが多い。

介入がなければ、膨大な数のバックグラウンド・サンプルによる小さな誤差の累積効果が、勾配更新の間、勾配を支配する可能性がある。 バックプロパゲーション中の 支配してしまう。これにより 最適化アルゴリズムは 最適化アルゴリズムが、実際の物体の微妙な特徴を学習するよりも、全体的な誤差を最小化するために単にすべてを背景として分類することを優先するようになります。 を優先してしまう。フォーカル・ロスは標準的な損失曲線を再形成し、モデルがすでに自信を持っている例に対するペナルティを減らす。 それによって、モデルの重みを モデルの重みを、困難なケースのために調整する。

メカニズムと機能

フォーカル・ロスは標準的な クロスエントロピー損失(Cross-Entropy Loss)を拡張したものです。これは は、正しいクラスに対する信頼度が高くなるにつれて、損失寄与を減少させる調整因子を導入しています。 モデルが "簡単な "例、例えば、高確率で背景と正しく識別される空の明確なパッチに遭遇すると、変調係数が導入されます。 変調係数は損失をゼロに近づける。逆に「難しい」例では モデルの予測が正しくないか不確かな「難しい」例では、損失は大きいままである。

この挙動は、しばしばガンマと表記されるフォーカシング・パラメータによって制御される。このパラメータを調整することで、データ科学者は を調整することで、損失関数がうまく分類された例をどれだけ積極的に重み付けするかを調整できる。これにより これにより、非常に不均衡な学習データに対してより安定した学習が可能になり まれなクラスに対してより高い精度とリコールにつながる。

実際のアプリケーション

アンバランスを処理する能力により、フォーカルロスはセーフティクリティカルで高精度の環境において不可欠なものとなっている。

  • 自律走行:自律走行 自律走行車の場合、ビジョン・システムは 歩行者、自転車、交通標識をdetect 必要があります。一般的なビデオフィードでは、ピクセルの大部分は道路、空、建物を表しています。 一方、重要な障害物はまばらに表示されます。フォーカルロスは、知覚システムが豊富な路面データを無視し を無視し、潜在的に危険な動的物体の識別に集中することができます。 識別に集中することができる。 にとって重要度が高い。 車載ソリューションにおけるAI
  • 医療診断医療画像解析では 医療画像解析において 腫瘍や骨折などの異常の特定は、典型的な針山の問題である。健康な脳のスキャンは 腫瘍は体積のごく一部を占める。フォーカルロスを使うことで ヘルスケアモデルのAIは、病理を表すわずかなピクセル 健康な組織の圧倒的な量に偏ることなく、病理を表すわずかなピクセルから学習することができ、診断ツールの感度が向上する。 診断ツールの感度を向上させる。

Ultralytics実装

について ultralytics ライブラリは、カスタムトレーニングパイプラインに簡単に統合できるFocal Lossの堅牢な実装を提供します。 カスタムトレーニングパイプラインに簡単に組み込むことができます。以下の例では、損失関数を初期化し、予測ロジットとグランドトゥルースラベルの誤差を計算する方法を示します。 を計算する方法を示します。

import torch
from ultralytics.utils.loss import FocalLoss

# Initialize Focal Loss with a gamma of 1.5
criterion = FocalLoss(gamma=1.5)

# Example: Prediction logits (before activation) and Ground Truth labels (0 or 1)
preds = torch.tensor([[0.1], [2.5], [-1.0]], requires_grad=True)
targets = torch.tensor([[0.0], [1.0], [1.0]])

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

他の概念との関係

フォーカル・ロスを、損失関数ランドスケープにおける関連用語と区別することは有益である:

  • フォーカルロスとクロスエントロピーの比較: クロスエントロピー損失は すべての例を平等に扱うベースライン関数です。Focal Lossは、Cross-Entropyの上に、不均衡に対処するための変調因子を加えることで、厳密に構築される。 不均衡に対処するための調整係数を追加します。焦点パラメータ(ガンマ)を0に設定すると、Focal Lossは効果的に標準的なCross-Entropyに戻ります。 は標準の Cross-Entropy に戻ります。
  • フォーカルロスとIoU ロス:フォーカルロスが分類(対象が何か?) のような機能がある。 ユニオンを超える交差(IoU)とその変種(GIoU、CIoU)のような関数は、ローカライズ(対象がどこにあるのか? GIoU、CIoU)のような機能は、ローカライゼーション(対象がどこにあるか?のような最新のディテクターは YOLO11のような最新の検出器では、通常、クラス予測にフォーカル・ロスを IoU 組み合わせた複合損失関数を使用する。 組み合わせる。
  • フォーカル・ロス vs バリフォーカル・ロス: バリフォーカル・ロスとはプラスとマイナスの例を非対称に扱う、さらなる進化である ポジティブな例とネガティブな例を非対称に扱う。これは、IoU スコアを使用して、正 を使用し、より高いローカライズ精度を持つものを優先する。 を平等に扱う。

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

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

今すぐ参加