늦깎이 공대생의 인공지능 연구실

Semantic Sagmentaion의 관점에서 본 손실 함수의 의미 본문

AI기술설명

Semantic Sagmentaion의 관점에서 본 손실 함수의 의미

Justin T. 2025. 8. 5. 01:18

이번 포스팅에서는 이미지 분할(Image Segmentation) 분야에서 널리 사용되는 다양한 손실 함수(loss function)들을 소개해보려고 합니다. 특히 의료 영상, 자율주행 등 실제 산업 현장에서 이미지 분할이 얼마나 중요한 역할을 하는지, 그리고 좋은 손실 함수를 선택하는 것이 중요한 이유에 대해 이야기해보겠습니다.

Semantic Segmentation이란?

Semantic Segmentation은 한 장의 이미지를 픽셀 단위로 분류해서, 각 픽셀이 어떤 객체(예: 종양, 도로, 사람 등)에 대해 알아내는 기술입니다. 예를 들어, 뇌 CT 사진에서 종양이 있는 부분만 정확히 찾아내는 것처럼 말이지요. 이 기술은 의료 진단, 자율주행, 위성 사진 분석 등 다양한 분야에서 핵심적인 역할을 수행합니다.

손실 함수(Loss Function)

딥러닝 모델이 이미지를 분할할 때, 정답(ground truth)과 예측 결과가 얼마나 다른지 수치로 평가하는 기준이 바로 손실 함수입니다. 손실 함수가 낮을수록 모델의 예측이 정답에 가깝다는 뜻이죠. Semantic Segmentation 문제는 데이터의 불균형(예: 종양이 전체 픽셀의 1%밖에 안 되는 경우)이나 경계가 복잡한 경우가 많기 때문에, 상황에 맞는 손실 함수를 잘 선택하는 것이 매우 중요합니다.

이 논문에서는 15가지의 손실 함수를 네 가지 카테고리로 나누어 설명합니다. 각각의 특징과 활용 상황을 쉽게 정리해보았습니다.

1. 분포 기반(Distribution-based) 손실 함수

분포 기반 손실 함수는 말 그대로, 픽셀 하나하나를 확률적으로 분류하는 데 초점을 맞춘 함수들입니다. 데이터가 고르게 분포되어 있을 때, 즉 클래스 불균형이 심하지 않을 때 잘 동작합니다. 장점은 수식이 단순하고, 대부분의 분류 문제에 바로 적용할 수 있으며, 단점은 픽셀 간의 구조적 관계나 전체적인 형태는 반영하지 못합니다.


Binary Cross-Entropy (BCE)  

  가장 기본적인 손실 함수로, 픽셀마다 정답과 예측값의 차이를 계산합니다. 데이터가 균형 잡혀 있을 때(예: 배경과 객체 픽셀이 비슷한 비율일 때) 잘 작동합니다.

\[
L_{BCE}(y, \hat{y}) = -\left[ y \log(\hat{y}) + (1-y)\log(1-\hat{y}) \right]
\]

 

Weighted/Balanced Cross-Entropy

  데이터가 한쪽으로 치우친 경우(예: 종양 픽셀이 매우 적을 때)에는, 중요한 클래스(예: 종양)에 더 큰 가중치를 주어 학습이 잘 되도록 도와줍니다.
\[
L_{W\text{-}BCE}(y, \hat{y}) = -\left[ \beta y \log(\hat{y}) + (1-y)\log(1-\hat{y}) \right]
\]


Focal Loss

  어려운(즉, 잘못 예측하기 쉬운) 픽셀에 더 집중하도록 설계된 손실 함수입니다. 데이터 불균형이 심할 때 가중치 항을 곱해 쉬운 샘플의 Loss는 빠르게 줄이고, 어려운 샘플에 더 많은 가중치를 주어 특히 효과적입니다.
\[
FL(p_t) = -\alpha_t (1 - p_t)^\gamma \log(p_t)
\]

2. 영역 기반(Region-based) 손실 함수

영역 기반 손실 함수는 전체 Mask, 즉 예측한 영역과 실제 정답 영역이 얼마나 겹치는지에 초점을 맞춘 함수들입니다. 특히 클래스 불균형이 심한 경우, 예를 들어 전체 픽셀 중 비율이 아주 작을 경우 효과적입니다. 단점은 수식이 비선형이어서 최적화가 조금 까다로울 수 있다는 점입니다.


Dice Loss

  실제로 많이 쓰이는 손실 함수로, 예측 결과와 정답이 얼마나 겹치는지(Overlap)를 평가합니다. 데이터 불균형에 강한 편입니다. 이 함수는 두 집합(모델의 예측값과 실제 Label) 간의 유사도를 측정하는 Dice Similarity Coefficient를 기반으로 합니다.
\[
DL(y, \hat{p}) = 1 - \frac{2y\hat{p} + 1}{y + \hat{p} + 1}
\]


Tversky Loss

  Dice Loss를 확장해서, 잘못된 예측(거짓 양성, 거짓 음성)에 가중치를 다르게 줄 수 있습니다. 특히 작은 객체(예: 작은 병변) 분할에 유리합니다. 소수의 클래스를 놓치면 안되는 경우(예: 암세포 탐지, 희귀 구조 인식 등)에 적합합니다.
\[
TI(p, \hat{p}) = \frac{p\hat{p}}{p\hat{p} + \beta(1-p)\hat{p} + (1-\beta)p(1-\hat{p})}
\]

 

Focal Tversky Loss

 Tversky Loss와 Focal Loss의 장점을 결합한 함수로, 두 원리를 합쳐, Tversky Loss에 Focal Loss처럼 \(\gamma\)파라미터를 추가하여 어려운 샘플에 대한 집중도를 더욱 높힙니다. \(\gamma\) 파라미터 증가로, 모델이 놓치기 쉬운 영역에 더 민가마게 반응하도록 ㅏㅂ니다.


\[
FTL = \sum_c (1 - TI_c)^\gamma
\]


Sensitivity-Specificity Loss 

  민감도(진짜 양성 비율)와 특이도(진짜 음성 비율)를 동시에 고려합니다. 특정 상황에서 진짜 양성/음성에 더 집중하고 싶을 때 사용합니다. 양쪽 지표를 동시에 높이도록 유도함으로써 소수 클래스(양성)와 다수 클래스(음성)가 몯 중요한 경우 최적의 균형점을 찾아줍니다.


\[
SSL = w \cdot sensitivity + (1-w) \cdot specificity
\]
\[
sensitivity = \frac{TP}{TP + FN}
\]
\[
specificity = \frac{TN}{TN + FP}
\]

3. 경계 기반(Boundary-based) 손실 함수

경계 기반 손실 함수는 예측한 Mask와 실제 Mask의 경계, 즉 테두리 부분이 얼마나 잘 맞느지에 집중합니다. 이 함수는 의학 분야에서 장기나 병변처럼 경계가 중요한 Segmentation 문제에서 특히 유용합니다. 하지만 계산이 복잡하고, 경계가 애매한 데이터에서는 오히려 성능이 떨어지기 때문에 보통은 영역 기반 손실 함수와 같이 사용됩니다.


Hausdorff Distance Loss

  예측 마스크와 정답 마스크의 경계가 얼마나 가까운지 평가합니다. 경계가 중요한 문제(예: 장기 분할)에서 유용합니다. 경계의 최대 차이를 최소화함으로서 Segmentation 경계의 정밀도를 높이는 것을 목표로 합니다.
\[
d(X, Y) = \max_{x \in X} \min_{y \in Y} \| x - y \|_2
\]

 

Shape-aware Loss

  단순히 픽셀 단위가 아니라, 예측된 모양(Shape)이나 경계의 거리 정보를 손실 함수에 반영합니다. 복잡한 경계나 형태가 중요한 경우에 효과적입니다. 이 방법은 객체의 윤곽선 형태 차이를 수치화해 손실로 반영하며, 학습 과정에서 형태의 세부 사항이나 외형 전체에 대한 중요도를 조절하는 하이퍼파라미터를 학습과 동시에 조정할 수 있다는 장점이 있습니다.
\[
E_i = D(\hat{C}, C_{GT})
\]
\[
L_{\text{shape-aware}} = -\sum_i CE(y, \hat{y}) - \sum_i iE_i \cdot CE(y, \hat{y})
\]

 

Distance map derived loss penalty term

 물체의 경계 정확도를 높이기 위해 도입된 손실 함수로, 일반적으로 Cross-Entropy, Dice, Focal Loss 등과 결합하여 사용하며, 예측 Mask가 실제 경계와 얼마나 가까운지에 따라 추가로 페널팉를 부과합니다. GT로부터 distance map를 만들어, 예측이 틀린 픽셀 중 경계와 가까운 곳에 더 큰 손실을 부여하는 방식입니다.

\[
L(y, p) = \frac{1}{N} \sum_{i=1}^{N} (1 + \phi) \odot L_{CE}(y, p)
\]

 

4. 복합(Compounded) 손실 함수

복합 손실 함수는 말 그대로 여러 손실 함수를 섞어서 각각의 장점을 동시에 얻기 위해 사용됩니다. 이 방식은 데이터가 복잡하거나, 한 가지 손실 함수로는 부족할 때 효과적입니다만, 각 Loss 함수 별로 가중치 등을 직접 찾아야 해서 모델 학습 과정에서 복잡도가 높아질 수 있습니다.


Combo Loss

  여러 손실 함수를 조합해서 각각의 장점을 살립니다. 예를 들어, Dice Loss와 Cross-Entropy를 합쳐서 데이터 불균형과 곡선 경계 모두에 강하게 만듭니다. False Positive와 False Negative에 각각 가중치를 다르게 부여하여 학습을 최적화 합니다.

\[
L_{m\text{-}bce} = -\frac{1}{N} \sum_i \left[ \beta \left( y \log(\hat{y}) \right) + (1 - \beta)(1 - y) \log(1 - \hat{y}) \right]
\]

\[
CL(y, \hat{y}) = \alpha L_{m\text{-}bce} - (1-\alpha)DL(y, \hat{y})
\]

 

Exponential Logarithmic Loss

 로그 손실(Cross entropy)과 지수 손실(Dice loss)의 조절을 결합한 형태로, 클래스 불균형 문제와 어려운 샘플에 효과적으로 대응하도록 설계되었습니다. 로그 손실의 안정성과 지수 손실의 하드 샘플 강화 효과를 결합하여, 특히 불균형 데이터나 세분화된 예측 오류가 중요한 문제에서 우수한 성능을 기대할 수 있는 손실 함수입니다.


\[
L_{Exp} = w_{Dice} L_{Dice} + w_{cross} L_{cross}
\]
\[
L_{Dice} = E(-\ln(DC)^{\gamma_{Dice}})
\]
\[
L_{cross} = E(w_l(-\ln(p_l)^{\gamma_{cross}}))
\]

Log-Cosh Dice Loss

  이 논문에서 새롭게 제안한 손실 함수로, Dice Loss에 log-cosh(곡선을 부드럽게 만드는 함수)를 적용해 학습이 더 안정적으로 이루어지도록 합니다.

log-cosh 함수는 하이퍼볼릭 코사인 함수의 로그로, Huber Loss와 ㅇ사하면서 2차 미분이 가능하여 최적화에 안정성을 제공합니다.

\[
L_{lc\text{-}dice} = \log(\cosh(\text{DiceLoss}))
\]

 실제 실험 결과  데이터의 특성(불균형, 경계의 복잡성 등)에 따라 손실 함수를 잘 선택하면 성능을 크게 높일 수 있다는 점을 저자들은 실험으로 보여주었습니다.

 

결론


데이터가 균형 잡혀 있는 경우: Binary Cross-Entropy, Dice Loss 등
데이터가 불균형한 경우: Focal Loss, Weighted Cross-Entropy, Tversky Loss
경계나 형태가 중요한 경우: Hausdorff Distance Loss, Shape-aware Loss, Distance Map Loss
여러 특성을 동시에 잡고 싶은 경우: Combo Loss, Exponential Logarithmic Loss, Log-Cosh Dice Loss 등 

손실 함수는 단순한 수식이 아니라, 실제 데이터와 문제의 특성을 반영하는 중요한 설계 요소입니다. 실무에서는 여러 손실 함수를 실험해보고, 데이터셋에 가장 잘 맞는 것을 선택하는 것이 중요합니다.

참고자료: https://arxiv.org/abs/2006.14822

 

A survey of loss functions for semantic segmentation

Image Segmentation has been an active field of research as it has a wide range of applications, ranging from automated disease detection to self-driving cars. In the past five years, various papers came up with different objective loss functions used in di

arxiv.org

 

반응형