Focal Loss
Focal Loss가 딥러닝에서 클래스 불균형 문제를 어떻게 해결하는지 알아보십시오. Ultralytics YOLO26으로 이를 구현하여 어려운 예제에 집중하고 모델 정확도를 향상시키는 방법을 학습하십시오.
Focal Loss는 심각한 클래스 불균형 문제를 해결하기 위해 딥러닝에서 주로 사용하는 특수 목적 함수입니다. 객체 탐지와 같은 많은 컴퓨터 비전 작업에서 배경 예시(부정 샘플)의 수는 관심 객체(긍정 샘플)의 수보다 훨씬 많습니다. 널리 사용되는 Cross-Entropy Loss와 같은 표준 방법은 모든 오류를 동일하게 취급하며, 이로 인해 분류하기 쉬운 배경 데이터가 너무 많아 모델이 압도되는 경우가 자주 발생합니다. Focal Loss는 표준 손실 계산을 수정하여 이러한 쉬운 예시들의 가중치를 낮춤으로써, optimization algorithm이 모델 성능에 중요한 드물고 분류하기 어려운 '어려운' 예시들에 학습 역량을 집중하도록 강제합니다.
Link to this section집중(Focusing)의 메커니즘#
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실제 애플리케이션 사례#
안전과 정밀도가 가장 중요한 환경에서 강력한 AI 시스템을 배포하려면 불균형한 training data를 처리하는 것이 매우 중요합니다.
- 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에서는 두 가지를 함께 사용하는 경우가 많습니다.






