Yolo 비전 선전
선전
지금 참여하기
용어집

초점 손실

포컬 로스(Focal Loss)가 딥 러닝에서 클래스 불균형 문제를 어떻게 해결하는지 알아보세요. Ultralytics 활용해 이를 구현하는 방법을 배우고, 어려운 예시에 집중하여 모델 정확도를 향상시키세요.

초점 손실(Focal Loss)은 심한 클래스 불균형 문제를 해결하기 위해 주로 딥 러닝에서 사용되는 특수 목적 함수입니다. 객체 탐지와 같은 많은 컴퓨터 비전 작업에서 배경 예시(부정 샘플)의 수가 관심 대상(긍정 샘플)보다 훨씬 많습니다. 널리 사용되는 교차 엔트로피 손실과 같은 표준 방법은 모든 오류를 동등하게 취급하여, 분류하기 쉬운 배경 데이터의 방대한 양에 모델이 압도되는 경우가 많습니다. 초점 손실은 표준 손실 계산 방식을 수정하여 모든 오류를 동등하게 처리하여 모델이classify 쉬운classify 데이터의 방대한 양에 압도되는 경우가 빈번합니다. 포컬 손실은 이러한 쉬운 예제의 가중치를 낮추도록 표준 손실 계산 방식을 수정하여, 최적화 알고리즘이 모델 성능에 핵심적인 희귀하고classify 어려운classify "어려운" 예제에 학습 역량을 집중하도록 강제합니다.

초점 조절의 메커니즘

포컬 손실(Focal Loss)의 핵심 혁신은 모델의 확신도에 따라 각 샘플에 할당된 페널티를 동적으로 조정하는 능력에 있습니다. 일반적인 지도 학습 시나리오에서 탐지기는 이미지 내 수천 개의 후보 위치를 평가할 수 있습니다. 이러한 위치 대부분은 객체를 포함하지 않으므로, 표준 손실 함수는 이러한 쉬운 부정 사례들로부터 수많은 작은 오차 신호를 축적하게 되며, 이는 소수의 긍정 사례로부터 나오는 가치 있는 신호를 가릴 수 있습니다.

포컬 손실은 정답 클래스에 대한 확신이 높아질수록 손실 기여도를 감소시키는 조절 계수를 도입합니다. 이는 모델이 배경 패치가 실제로 배경이라고 99% 확신하는 경우 해당 패치의 손실이 거의 0으로 줄어든다는 의미입니다. 결과적으로 모델 가중치는 주로 오분류된 샘플이나 모델이 불확실한 샘플을 기반으로 업데이트됩니다. 이러한 표적화된 접근 방식은 YOLO26과 같은 고성능 원스테이지 객체 탐지기를 훈련하는 데 필수적이며, 복잡한 샘플링 단계 없이도 높은 정확도를 달성할 수 있게 합니다.

실제 애플리케이션

안전성과 정밀성이 최우선인 환경에서 견고한 AI 시스템을 구축하기 위해서는 불균형 훈련 데이터 처리가 매우 중요합니다.

  • 의료 분야 인공지능: 의료 영상 분석과 같은 분야에서는 병리학적 변화를 식별하는 것이 종종 건초더미에서 바늘 찾기와 유사합니다. 예를 들어, 작은 병변을 찾는 MRI 스캔에서 건강한 조직이 픽셀의 99% 이상을 차지할 수 있습니다. 표준 모델은 모든 영역을 "건강"으로 예측함으로써 단순 정확도를 극대화할 수 있으나, 이는 중요한 진단을 놓치는 결과를 초래합니다. 초점 손실(Focal Loss)은 시스템이 풍부한 건강한 조직의 신호를 억제하고 이상 현상의 미묘한 특징 학습을 우선시하도록 하여, 생명을 구하는 검출의 재현율(Recall )을 향상시킵니다.
  • 자율주행 차량: 자율주행 차량의 인식 시스템은 건물, 도로, 하늘과 같은 복잡한 배경 속에서 보행자나 자전거 이용자와 같은 detect 도로 이용자를 detect 합니다. 배경은 쉽게 학습되지만, 작거나 먼 거리에 있는 장애물은 상당한 도전 과제를 제기합니다. 초점 손실(Focal Loss)을 활용함으로써, 자동차 애플리케이션의 AI는 인식 스택이 이러한detect 어려운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}")

관련 개념과의 차이점

초점 손실이 오류 측정의 광범위한 영역에서 차지하는 위치를 이해하는 것은 특정 컴퓨터 비전 작업에 적합한 전략을 선택하는 데 도움이 됩니다.

  • 초점 손실 대 교차 엔트로피 손실: 교차 엔트로피는 로그 오차를 기반으로 예측을 제재하는 분류의 기초적 지표입니다. 초점 손실은 순수하게 교차 엔트로피의 확장입니다. 초점 매개변수를 0으로 설정하면 수학적으로 표준 교차 엔트로피로 회귀합니다. 핵심 차이점은 초점 손실이 쉬운 부정 예제를 자동으로 가중치 낮추는 능력으로, 불균형 데이터셋(예: COCO)에 더 우수합니다. COCO와 같은 불균형 데이터셋에 더 적합합니다.
  • 초점 손실 대 IoU : 초점 IoU 분류 (객체의 종류 판단)를 위해 설계된 반면, IoU 위치 파악 (객체의 위치 판단) IoU . 현대적인 탐지기는 분류 확률을 위한 초점 손실과 경계 상자 회귀를 위한 IoU 기반 지표를 결합한 복합 손실 함수를 활용합니다.
  • 초점 손실 대 다이스 손실: 다이스 손실은 주로 이미지 분할 작업에서 불균형을 처리하기 위해 사용되는 또 다른 기법입니다. 초점 손실이 신뢰도에 기반해 개별 픽셀이나 샘플에 적용되는 반면, 다이스 손실은 예측 영역과 실제 영역 간의 중첩을 전역적으로 최적화합니다. 복잡한 분할 워크플로우에서는 두 기법이 함께 사용되는 경우가 흔합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기