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

손실 함수

손실 함수가 모델 훈련을 어떻게 이끄는지 살펴보세요. Ultralytics 활용해 객체 탐지 같은 작업에서 오류를 최소화하고 AI 성능을 최적화하는 방법을 배워보세요.

손실 함수는 인공 신경망 및 기타 기계 학습 알고리즘의 훈련을 이끄는 수학적 나침반 역할을 합니다. 근본적으로, 이는 모델의 예측 출력과 훈련 데이터에서 발견된 실제 "진실 라벨" 간의 오차를 정량화합니다. 이를 점수 체계로 시각화할 수 있으며, 낮은 점수는 우수한 성능을 의미합니다. 훈련 과정에서 주요 목표는 이 손실 값을 반복적으로 최소화하는 것입니다. 이러한 최소화를 통해 모델은 내부 매개변수를 조정하여 예측을 현실에 더 가깝게 맞출 수 있으며, 이 과정은 Adam 확률적 경사 하강법(SGD)과 같은 최적화 알고리즘에 의해 주도됩니다.

모델 훈련에서 손실의 역할

인공지능의 학습 메커니즘은 손실 함수가 생성하는 피드백 루프에 크게 의존합니다. 모델이 데이터 배치(batch)를 처리한 후, 손실 함수는 예측값과 목표값 사이의 거리를 나타내는 수치적 오차 값을 계산합니다. 역전파( backpropagation)라는 기법을 통해 시스템은 모델 가중치 각각에 대한 손실의 기울기를 계산합니다. 이러한 기울기는 오류를 줄이기 위해 필요한 조정 방향과 크기를 표시하는 지도 역할을 합니다. 이후 학습률 ( learning rate )은 이러한 업데이트 과정에서 취하는 단계의 크기를 제어하여 모델이 과도하게 조정되지 않고 최적의 해에 수렴하도록 보장합니다.

다양한 머신러닝 작업에는 특정 유형의 손실 함수가 필요합니다. 주택 가격과 같은 연속형 값을 예측하는 회귀 분석의 경우 평균 제곱 오차(MSE)가 표준 선택지입니다. 반면 범주형 데이터를 다루는 이미지 분류 작업에서는 예측 확률과 실제 클래스 간의 차이를 측정하기 위해 크로스 엔트로피 손실이 일반적으로 사용됩니다. YOLO26과 같은 고급 객체 탐지 모델은 동시에 여러 목표를 최적화하는 복합 손실 함수를 활용합니다. 예를 들어, 위치 지정에는 교집합 대비 전체(IoU) 와 같은 지표를, 분류 신뢰도에는 분포 초점 손실(DFL)이나 가변 초점 손실(Varifocal Loss)과 같은 특수 공식을 결합합니다.

실제 애플리케이션

손실 함수는 사실상 모든 AI 애플리케이션의 신뢰성을 뒷받침하는 핵심 요소로, 시스템이 복잡한 환경에서도 안전하게 작동할 수 있도록 보장합니다.

  • 자율주행: 자율주행 차량 분야에서 안전성은 정밀한 인식에 달려 있습니다. 신중하게 조정된 손실 함수는 시스템이 보행자, 다른 차량, 정적 장애물을 구분하는 데 도움을 줍니다. nuScenes나 KITTI와 같은 데이터셋으로 훈련하는 동안 위치 오류를 최소화함으로써, 차량은 물체의 정확한 위치를 예측하는 법을 학습합니다. 이는 자동차 솔루션 내 AI의 충돌 회피에 필수적입니다.
  • 의료 진단: 의료 영상 분석에서 병리학적 변화를 식별하려면 건강한 조직에서 미세한 이상 부위를 분할해야 합니다. MRI 영상의 종양 검출과 같은 분할 작업에는 다이스 손실(Dice Loss )과 같은 특수 함수가 활용됩니다. 이러한 함수는 관심 영역의 작은 부분을 놓칠 경우 모델에 큰 페널티를 부과함으로써 클래스 불균형 문제를 처리하며, 이를 통해 의료 도구에서 AI의 민감도를 향상시킵니다.

Python : 크로스 엔트로피 손실 계산

고수준 프레임워크인 Ultralytics 훈련 중 손실 계산을 자동으로 처리하지만, 디버깅을 위해서는 기본 수학적 원리를 이해하는 것이 유용합니다. 다음 예제는 Ultralytics 백엔드인 PyTorch사용하여 예측값과 목표값 간의 손실을 계산합니다.

import torch
import torch.nn as nn

# Define the loss function (CrossEntropyLoss includes Softmax)
loss_fn = nn.CrossEntropyLoss()

# Mock model output (logits) for 3 classes and the true class (Class 0)
# A high score for index 0 indicates a correct prediction
predictions = torch.tensor([[2.5, 0.1, -1.2]])
ground_truth = torch.tensor([0])

# Calculate the numerical loss value
loss = loss_fn(predictions, ground_truth)
print(f"Calculated Loss: {loss.item():.4f}")

관련 개념 차별화

손실 함수를 머신러닝 파이프라인 전반에 걸쳐 사용되는 다른 지표들과 구분하는 것이 중요하다.

  • 손실 함수 대 평가 지표: 손실 함수는 미분 가능하며 훈련 가중치 업데이트에 사용됩니다. 반면 정확도, 정밀도, 평균 정밀도(mAP) 와 같은 평가 지표는 훈련 성능을 사람이 이해할 수 있는 용어로 평가하는 데 사용됩니다. 손실 함수가 실제 목표와 완벽히 일치하지 않을 경우, 모델이 손실을 효과적으로 최소화하더라도 정확도가 여전히 낮을 수 있습니다.
  • 손실 함수와 정규화: 손실 함수는 모델이 올바른 예측을 하도록 유도하는 반면, 정규화 기법(예: L1 또는 L2 페널티)은 과적합을 방지하기 위해 손실 방정식에 추가됩니다. 정규화는 큰 가중치에 페널티를 부과함으로써 지나치게 복잡한 모델을 억제하여, 시스템이 미확인 테스트 데이터에 더 잘 일반화할 수 있도록 돕습니다.
  • 손실 함수 대 보상 함수: 강화 학습에서 에이전트는 손실을 최소화하기보다 누적된 "보상"을 극대화함으로써 학습합니다. 개념적으로는 서로 반대 개념이지만, 둘 다 최적화 과정을 주도하는 목적 함수 역할을 합니다.

Ultralytics 커뮤니티 가입

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

지금 참여하기