Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Focal Loss

포컬 손실은 교차 엔트로피의 가중치를 조정해 쉬운 예시의 영향은 줄이고 희귀하고 어려운 예시가 학습을 주도하게 합니다. 공식, 감마, RetinaNet, 변형을 다룹니다.

Focal loss는 모델이 이미 잘 분류하는 예제의 가중치를 낮추는 변형 교차 엔트로피 손실 함수로, 학습이 분류하기 어려운 예제와 오분류된 예제에 집중되도록 합니다. Lin 등은 RetinaNet 탐지기와 함께 2017년 논문 Focal Loss for Dense Object Detection에서 이 방법을 소개하여 객체 탐지에서 배경과 객체 간의 극심한 불균형을 처리했습니다. 현재는 한 클래스가 다른 클래스보다 훨씬 많은 분류 문제에 널리 사용됩니다.

불균형 문제#

One-stage 객체 탐지기는 이미지의 모든 후보 위치를 분류하며, RetinaNet은 이미지당 약 100,000개를 평가합니다. 이 위치의 거의 대부분은 배경이며, 모델은 학습 초기에 배경을 거부하도록 학습합니다. 표준 교차 엔트로피에서는 분류하기 쉬운 각 음성 예제도 작은 손실을 더합니다. 그러나 예제 수가 워낙 많아 전체 손실과 그 gradient를 지배하면서 객체가 있는 소수의 위치에서 나오는 신호를 압도합니다. Two-stage 객체 탐지기는 영역 제안 단계에서 후보를 필터링하고 전경과 배경의 비율을 고정해 샘플링함으로써 이 문제를 피합니다. 초기 one-stage 탐지기는 hard negative mining에 의존했습니다. Focal loss는 손실 함수 자체에서 불균형을 해결하므로 샘플링 없이 모든 후보를 학습에 사용할 수 있습니다.

Focal Loss의 작동 방식#

정답 클래스에 모델이 부여한 확률을 p_t이라고 합시다. 교차 엔트로피는 CE = -log(p_t)이며, focal loss는 여기에 조절 인자를 곱합니다:

FL = -α_t (1 - p_t)^γ log(p_t)

  • 집중 매개변수 γ (gamma): 분류하기 쉬운 예제의 손실이 줄어드는 속도를 조절합니다. γ = 0에서는 focal loss가 교차 엔트로피와 같습니다. p_t가 1에 가까워질수록 (1 - p_t)^γ은 0에 가까워지지만, 오분류된 예제는 p_t가 작으므로 교차 엔트로피 손실이 거의 그대로 유지됩니다. 논문에서 최적이라고 제시한 설정인 γ = 2를 사용하면 p_t = 0.9으로 분류된 예제의 손실은 교차 엔트로피보다 100배 작아집니다.
  • 균형 가중치 α_t (alpha): 양성 클래스에는 고정 가중치를 적용하고 음성 클래스에는 그 여집합을 적용합니다. RetinaNet은 α = 0.25과 γ = 2를 사용하며, 논문에서는 각 이미지의 전체 손실을 객체에 할당된 anchor 수로 정규화하기도 합니다.

torchvision의 sigmoid_focal_loss 함수는 이 공식을 구현합니다. alpha=-1를 설정하면 균형 가중치가 비활성화되어, 쉽거나 보통이거나 어려운 양성 예제에 대한 γ의 효과만 분리해 확인할 수 있습니다:

import torch
import torch.nn.functional as F
from torchvision.ops import sigmoid_focal_loss

# Logits for three positive examples: easy, moderate, and hard
logits = torch.tensor([4.0, 1.0, -2.0])
targets = torch.ones(3)

# alpha=-1 turns off class weighting so only the gamma focusing term differs
bce = F.binary_cross_entropy_with_logits(logits, targets, reduction="none")
focal = sigmoid_focal_loss(logits, targets, alpha=-1, gamma=2.0, reduction="none")

for p, b, f in zip(logits.sigmoid(), bce, focal):
    print(f"p={p:.2f}  cross-entropy={b:.6f}  focal={f:.6f}  ratio={b / f:,.1f}x")

Focal loss는 쉬운 예제의 손실(p = 0.98)을 약 3,091분의 1로, 보통 난이도 예제의 손실(p = 0.73)을 13.8분의 1로, 어려운 예제의 손실(p = 0.12)을 1.3분의 1로 줄입니다. 따라서 어려운 예제가 이제 학습 신호의 대부분을 차지합니다.

Focal Loss의 활용 분야#

RetinaNet 외에도 focal loss와 그 변형은 여러 dense detector 및 Transformer 기반 탐지기의 분류 분기를 학습하는 데 사용됩니다. 여기에는 Deformable DETR 같은 DETR 계열 모델이 포함됩니다. 의료 영상 분석에서는 병변이 전체 픽셀 중 극히 일부를 차지하는 경우가 많으므로 이미지 분할 모델은 작은 병변을 무시하지 않고 재현율을 높이기 위해 focal loss와 Dice loss를 함께 사용하는 경우가 많습니다. Ultralytics의 RT-DETR trainer는 Varifocal Loss로 클래스를 점수화하며, ultralytics.utils.loss 모듈은 기본값 gamma=1.5 및 alpha=0.25를 사용하는 FocalLoss 클래스를 제공합니다.

  • 클래스 가중치: 가중 교차 엔트로피는 클래스 빈도에 따라 희귀 클래스의 모든 예제에 동일한 고정 가중치를 적용합니다. Focal loss는 각 예제의 현재 난이도에 따라 가중치를 부여하므로, 모델이 학습하면서 가중치가 바뀝니다.
  • Hard negative mining: 손실이 가장 큰 음성 예제만 남기고 나머지는 버립니다. Focal loss는 모든 예제를 유지하면서 쉬운 예제의 가중치를 부드럽게 줄입니다.
  • Varifocal Loss: VarifocalNet에서 제안한 비대칭 변형으로, 음성 예제의 가중치만 낮추고 양성 예제는 IoU를 반영하는 점수를 향해 학습합니다. 따라서 클래스 신뢰도에도 위치 파악 품질이 반영됩니다.
  • Distribution Focal Loss (DFL): Generalized Focal Loss에서 제안한 box 회귀 손실로, 각 box 변을 이산 확률 분포로 다룹니다. 이름만 focal loss와 공유하며 box 회귀에 적용됩니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요