IQ Lab
← all posts
AI 2026.04.28 · 12 min read Advanced

CNN 응용의 통일 원리 — 손실 함수가 설계를 결정한다

분류의 softmax gradient부터 탐지의 Focal Loss, 분할의 Dice Loss, 자기지도학습의 contrastive loss까지, CNN 각 응용 영역의 손실 함수 설계 철학을 추적한다.


CNN의 응용 영역 — 분류, 탐지, 분할, 자기지도학습 — 은 겉보기에 각자 다른 문제를 푼다. 그런데 각 영역의 핵심 혁신을 추적하면 하나의 공통 질문에 닿는다. 어떤 손실 함수가 모델이 “올바른 것”을 배우도록 강제하는가? 분류의 label smoothing, 탐지의 Focal Loss, 분할의 Dice Loss, 자기지도학습의 contrastive loss — 이들은 전부 같은 문제의 다른 표현이다.

분류: softmax-cross-entropy의 우아한 구조

이미지 분류의 수학적 출발점은 softmax와 cross-entropy의 조합이다.

LCEzc=pcyc\frac{\partial L_{\text{CE}}}{\partial z_c} = p_c - y_c

이 gradient가 단순히 “예측 확률 빼기 정답”으로 떨어지는 것은 softmax의 분모가 chain rule을 통해 정확히 상쇄되기 때문이다. σdzc=σd(δcdσc)\frac{\partial \sigma_d}{\partial z_c} = \sigma_d(\delta_{cd} - \sigma_c)를 cross-entropy에 대입하면, 분자와 분모의 σc\sigma_c 항이 약분되어 pcycp_c - y_c만 남는다.

이 구조는 최적화를 안정적으로 만든다. 그러나 one-hot label로 학습하면 모델은 정답 클래스에 무한히 큰 logit을 부여하려 한다 — overconfidence다. Label smoothing(Szegedy et al., 2016)은 이를 교정한다.

yc=(1ϵ)yc+ϵKy_c' = (1-\epsilon) y_c + \frac{\epsilon}{K}

오답 클래스에도 ϵ/K\epsilon/K의 작은 가중치를 배분함으로써, 손실 함수에 entropy 정규화 항이 추가된다. 결과적으로 ECE(Expected Calibration Error)가 낮아지고, 모델의 예측 확률이 실제 정확도와 더 잘 일치한다. MixUp과 CutMix도 같은 방향의 확장이다 — label space의 선형 보간으로 decision boundary를 부드럽게 만들어 일반화를 높인다.

탐지: class imbalance와 Focal Loss

두 단계 탐지(Faster R-CNN)는 RPN이 region proposal을 생성하고, 분류·회귀 head가 정밀화한다. RPN 손실은 두 항으로 구성된다.

LRPN=1NclsiLcls(pi,pi)+λ1NregipiLsmooth L1(ti,ti)L_{\text{RPN}} = \frac{1}{N_{\text{cls}}} \sum_i L_{\text{cls}}(p_i, p_i^*) + \lambda \frac{1}{N_{\text{reg}}} \sum_i p_i^* L_{\text{smooth L1}}(t_i, t_i^*)

Smooth L1 loss는 작은 오차에서 L2처럼, 큰 오차에서 L1처럼 동작해 outlier에 robust하다. RoI Align은 bilinear interpolation으로 sub-pixel 정확도를 유지하여 mask AP를 약 3% 개선한다.

한 단계 탐지(YOLO, RetinaNet)는 속도를 위해 region proposal을 제거한다. 그 대가로 class imbalance 문제가 극단화된다. COCO 기준으로 전경:배경 = 1:100. 표준 cross-entropy에서는 99%의 쉬운 배경 샘플이 gradient를 독점한다.

Focal Loss(Lin et al., 2017)는 이를 (1pt)γ(1-p_t)^\gamma 항으로 해결한다.

FL(pt)=α(1pt)γlogptFL(p_t) = -\alpha(1-p_t)^\gamma \log p_t
명제 1 · Focal Loss의 감쇠 효과

γ=2\gamma = 2일 때, pt=0.9p_t = 0.9인 easy example의 손실은 표준 cross-entropy 대비 약 100배 감소하고, pt=0.1p_t = 0.1인 hard example의 손실은 약 2배만 감소한다.

▷ 증명

FL(0.9)=(0.1)2log(0.9)0.00105FL(0.9) = -(0.1)^2 \log(0.9) \approx 0.00105, LCE(0.9)0.105L_{\text{CE}}(0.9) \approx 0.105. 비율 = 100.

FL(0.1)=(0.9)2log(0.1)1.865FL(0.1) = -(0.9)^2 \log(0.1) \approx 1.865, LCE(0.1)2.303L_{\text{CE}}(0.1) \approx 2.303. 비율 ≈ 1.24.

(1pt)γ(1-p_t)^\gamma 항이 easy example에서 0에 수렴하고 hard example에서 1에 가까이 유지되기 때문이다. \square

분할: pixel imbalance와 Dice Loss

분할은 탐지의 class imbalance를 pixel 수준으로 확대한다. 의료 이미지에서 종양은 전체 픽셀의 1%에 불과하다. 표준 cross-entropy는 배경 픽셀 99%의 gradient에 압도되어, 모델이 “항상 배경”을 예측해도 99% 정확도를 달성한다.

Dice Loss는 개별 픽셀이 아닌 영역의 overlap으로 평가한다.

LDice=12ipiyiipi+iyi+ϵL_{\text{Dice}} = 1 - \frac{2 \sum_i p_i y_i}{\sum_i p_i + \sum_i y_i + \epsilon}

이는 클래스 크기와 무관하게 균형잡힌 gradient를 제공한다. 배경 픽셀 1% 향상과 종양 픽셀 1% 향상이 손실에서 동등한 가중치를 받는다.

FCN은 FC layer를 1×11 \times 1 convolution으로 대체해 dense prediction을 가능하게 했고, U-Net은 skip connection으로 encoder의 low-level feature를 decoder에 직접 연결해 detail을 보존했다. DeepLab은 atrous convolution으로 receptive field를 지수적으로 확대한다 — d=1,2,4d=1, 2, 4 세 layer면 표준 CNN의 11 layer에 해당하는 receptive field를 달성하면서 parameter 수는 동일하게 유지한다.

트레이드오프

CE + Dice hybrid loss가 실전에서 가장 안정적이다. CE만 쓰면 작은 객체에 취약하고, Dice만 쓰면 학습 초기 gradient가 불안정하다. 의료 이미지는 Dice 비중을 높이고, 일반 scene segmentation은 CE 비중을 높이는 것이 통상적이다.

자기지도학습: label 없는 손실 설계

Self-supervised learning은 손실 함수 설계의 가장 창의적인 영역이다. 레이블 없이 supervision signal 자체를 데이터에서 생성해야 한다.

Pretext task(Jigsaw, rotation prediction, colorization)는 레이블 없이 geometric·appearance 정보를 학습했지만, downstream task와 괴리가 있었다. SimCLR(Chen et al., 2020)은 이를 instance discrimination으로 전환했다.

Li,j=logexp(sim(zi,zj)/τ)k=12N1[ki]exp(sim(zi,zk)/τ)L_{i,j} = -\log \frac{\exp(\text{sim}(z_i, z_j)/\tau)}{\sum_{k=1}^{2N} \mathbb{1}_{[k \neq i]} \exp(\text{sim}(z_i, z_k)/\tau)}

같은 이미지의 두 augmentation을 positive pair, 배치 내 다른 이미지를 negative pair로 정의한다. Temperature τ\tau는 분포의 sharpness를 제어한다 — 작을수록 hard negative에 집중하고, 클수록 모든 pair를 균등하게 취급한다.

SimCLR의 한계는 큰 배치(4096)가 필수라는 점이다. MoCo(He et al., 2019)는 momentum encoder와 queue로 이를 해결했다.

θkαθk+(1α)θq(α0.999)\theta_k \gets \alpha \theta_k + (1-\alpha)\theta_q \quad (\alpha \approx 0.999)

Momentum encoder는 천천히 업데이트되므로 queue에 저장된 수만 개의 negative sample이 일관된 representation을 유지한다. 배치 크기 256으로도 SimCLR 대비 경쟁력 있는 성능을 달성한다.

정리

  • 분류: softmax-cross-entropy gradient가 pcycp_c - y_c로 단순화되는 것은 설계가 아니라 수학적 필연이다. Label smoothing은 이 구조 위에 entropy 정규화를 얹는다.
  • 탐지: Focal Loss의 (1pt)γ(1-p_t)^\gamma 항은 class imbalance를 gradient 수준에서 해결한다. RoI Align은 양자화 오차를 bilinear interpolation으로 제거한다.
  • 분할: Dice Loss는 pixel counting 대신 영역 overlap으로 평가해 class imbalance를 우회한다. Atrous convolution은 parameter 없이 receptive field를 지수적으로 확대한다.
  • 자기지도학습: Contrastive loss는 레이블 없이 instance discrimination을 supervision signal로 사용한다. MoCo의 momentum encoder는 배치 크기 의존성을 끊는다.

네 영역 모두 결국 같은 질문으로 귀결된다 — 이 태스크에서 “어려운 샘플”은 무엇이고, 손실 함수가 그것에 충분한 gradient를 배분하고 있는가.

REF
Lin et al. · 2017 · Focal Loss for Dense Object Detection · ICCV