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

초점 손실

초점 손실이 객체 감지의 클래스 불균형을 해결하는 방법, 즉 불균형한 데이터 세트의 정확도를 향상시키기 위해 어려운 예제에 집중하여 학습하는 방법을 알아보세요.

초점 손실(Focal Loss)은 주로 컴퓨터 비전 작업에서 모델 훈련 중 발생하는 극심한 클래스 불균형 문제를 해결하기 위해 사용되는 특수 목적 함수입니다. 이는 배경 예시(네거티브 샘플)의 수가 관심 대상(포지티브 샘플)을 압도적으로 초과하는 객체 탐지 시나리오에서 특히 유용합니다. 각 샘플에 할당된 페널티를 동적으로 조정함으로써, 초점 손실은 모델이 이미 높은 신뢰도로 분류할 수 있는 "쉬운" 예시(포지티브 샘플)의 가중치를 효과적으로 낮추고, 분류가 어려운 "어려운" 예시에 최적화 과정을 집중시킵니다. 이러한 표적화된 접근 방식은 수많은 쉬운 네거티브 샘플이 훈련을 압도하는 것을 방지합니다. 예시(모델이 이미 classify 수 있는)의 가중치를 효과적으로 낮추고, classify 어려운 "어려운" 예시에 최적화 과정이 집중하도록 강제합니다. 이러한 표적화된 접근 방식은 방대한 수의 쉬운 부정 예시가 훈련 신호를 압도하는 것을 방지하여, 드물지만 중요한 객체에 대한 모델의 정확도를 향상시킵니다.

클래스 불균형 문제 해결

많은 딥 러닝(DL) 응용 분야, 특히 원스테이지 객체 탐지기의 경우, 훈련 과정은 이미지 내 수천 개의 후보 위치를 평가하는 것을 포함합니다. 이러한 위치의 대부분은 객체를 포함하지 않으며 배경으로 쉽게 식별됩니다. 크로스 엔트로피 손실과 같은 표준 함수는 모든 오분류를 동일하게 취급합니다. 결과적으로 수천 개의 쉬운 배경 샘플에서 누적된 오류가 소수의 어려운 양성 샘플에서 발생하는 신호를 압도하여, 대다수 클래스에 편향된 모델을 생성할 수 있습니다.

초점 손실은 일반적으로 감마($\gamma$)로 표기되는 초점 매개변수를 도입하여 표준 손실 계산을 수정합니다. 정답 클래스의 확률이 증가할수록(즉, 예시가 "쉬운" 경우), 조절 계수는 손실 기여도를 거의 0에 가깝게 감소시킵니다. 반대로, 오분류되거나 불확실한 사례 ("어려운" 사례)의 경우 손실은 상당한 수준으로 유지됩니다. 이 메커니즘은 최적화 알고리즘이 모델이 이미 알고 있는 것을 단순히 검증하기보다는 실제로 개선이 필요한 사례를 기반으로 모델 가중치를 업데이트하도록 보장합니다.

실제 애플리케이션

불균형 데이터셋을 처리하는 능력 덕분에 포컬 로스는 안전이 매우 중요하고 정밀도가 높은 분야의 현대적 AI 솔루션의 핵심 요소입니다.

  • 의료 진단: 의료 영상 분석에서 병리학적 변화를 식별하는 것은 종종 "건초 더미 속 바늘 찾기"와 같은 문제입니다. 예를 들어, CT 스캔에서 작은 병변을 탐지할 때 건강한 조직이 영상의 99%를 차지합니다. 표준 손실 함수는 모든 픽셀을 단순히 "건강한" 것으로 추정함으로써 높은 정확도를 달성할 수 있습니다. 포컬 손실(Focal Loss)을 구현함으로써 의료 AI에 사용되는 모델은 풍부한 건강한 조직을 무시하고 종양이나 골절의 희귀하고 미묘한 특징에 학습을 집중할 수 있어 생명을 구하는 검출의 재현율(recall)을 크게 향상시킵니다.
  • 자율주행: 자율주행 차량을 구동하는 시스템은 도로, 건물, 하늘을 배경으로 detect , 자전거 이용자, 잔해물을 detect 합니다. 배경은 쉽게 학습되지만 작고 먼 장애물은 어렵습니다. 초점 손실(Focal Loss)은 인식 시스템이 이러한detect 어려운detect 우선순위로 처리하도록 하여, 시야의 극히 일부만을 차지하는 경우에도 차량이 중요한 위험을 놓치지 않도록 보장합니다. 이는 견고한 보행자 탐지와 전반적인 안전에 매우 중요합니다.

Ultralytics 구현

그리고 ultralytics 라이브러리는 최신 모델 훈련을 지원하기 위해 손실 함수의 최적화된 구현을 포함합니다. 예를 들어: YOLO26고수준 훈련은 Ultralytics 플랫폼개발자는 사용자 정의 파이프라인에 대한 특정 손실 구성 요소에 접근할 수 있습니다.

다음 예제는 Focal Loss를 초기화하고 예측 점수와 목표 레이블 간의 오차를 계산하는 방법을 보여줍니다. ultralytics 유틸리티 패키지.

import torch
from ultralytics.utils.loss import FocalLoss

# Initialize Focal Loss with a standard gamma value
# Gamma=1.5 aggressively down-weights easy examples
criterion = FocalLoss(gamma=1.5)

# Example: Predictions (logits) and binary Ground Truth labels
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])

# Calculate the loss
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")

관련 개념과의 차이점

초점 손실이 오류 측정의 광범위한 영역에서 어떻게 자리매김하는지 이해하는 것은 올바른 훈련 전략을 선택하는 데 도움이 됩니다.

  • 초점 손실 대 교차 엔트로피 손실: 교차 엔트로피 손실은 로그 오차를 기반으로 예측을 페널티하는 분류의 기초 지표입니다. 초점 손실은 순전히 교차 엔트로피의 확장입니다. 초점 매개변수를 0으로 설정하면, 수학적으로 초점 손실은 표준 교차 엔트로피로 회귀합니다. 핵심 차이는 초점 손실이 쉬운 부정 예시를 가중치 낮게 처리하는 능력입니다.
  • 초점 손실 대 IoU : 초점 손실은 분류 (물체가 무엇인지 판단)를 위해 설계된 반면, 교집합 대비 전체(IoU)위치 파악 (물체가 어디에 있는지 판단)에 사용됩니다. YOLO11 및 YOLO26과 같은 현대적인 탐지기는 범주 확률에 대한 초점 손실(또는 가변 초점 손실과 같은 변형)과 경계 상자 회귀에 대한 IoU 기반 손실을 결합한 복합 손실 함수를 활용합니다.
  • 초점 손실 대 OHEM: 온라인 하드 예제 마이닝(OHEM) 은 오래된 전략으로, 쉬운 예제를 완전히 배제하고 배치 내 가장 어려운 예제만으로 훈련합니다. 초점 손실은 일반적으로 오늘날 선호되는데, 이는 경계값을 엄격히 적용하기보다 연속적인 스케일링 계수를 사용해 모든 훈련 데이터로부터 더 부드럽고 안정적인 훈련 신호를 제공하기 때문입니다.

Ultralytics 커뮤니티 가입

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

지금 참여하기