Label Smoothing
라벨 스무딩은 원-핫 학습 타깃과 균등 분포를 혼합하여 과도한 확신을 억제하고 분류기의 보정 성능을 개선합니다.
라벨 스무딩은 딥러닝 분류 모델의 정규화 기법으로, 학습 데이터의 하드 원-핫 타깃을 부드럽게 바꿉니다. 확률 대부분은 정답 클래스에 남기고, 스무딩 계수 ε로 정해지는 작은 비율을 모든 클래스에 균등하게 분배합니다. 이러한 소프트 타깃으로 학습하면 신경망이 100% 신뢰도에 도달하려고 로짓을 극단적인 값으로 밀어붙이지 않게 되어 과적합이 줄고 확률 보정이 개선됩니다. Szegedy 외는 Inception-v3 논문에서 이 기법을 설명하고 1,000개의 ImageNet 클래스에 ε = 0.1을 사용했습니다. 현재는 이미지 분류, 번역, 음성 모델을 학습할 때 표준 옵션으로 널리 쓰입니다.
라벨 스무딩 작동 방식#
K개의 클래스와 스무딩 계수 ε가 있을 때 각 타깃은 (1 − ε) · y + ε / K가 됩니다. 여기서 y는 원-핫 라벨입니다. 클래스가 세 개이고 ε = 0.1이면 라벨 [1, 0, 0]은 약 [0.933, 0.033, 0.033]으로 바뀝니다. 하드 타깃에서는 정답 로짓이 다른 로짓보다 계속 커질수록 교차 엔트로피가 계속 감소하므로, 손실 함수는 로짓 차이를 더욱 크게 만들도록 유도하고 소프트맥스 출력은 포화됩니다. 스무딩된 타깃에서는 손실이 유한한 차이 ln((1 − ε + ε / K) / (ε / K))에서 최소가 됩니다. 이 예에서는 약 3.3이며, 이 값을 넘으면 손실이 다시 증가해 그래디언트가 과신하는 예측을 완화하도록 유도합니다. Ultralytics YOLO26 탐지 모델은 이와 관련된 유형의 소프트 타깃으로 클래스 예측을 학습합니다. 태스크 정렬 어사이너는 예측 점수와 상자가 객체에 얼마나 잘 정렬되는지에 따라 각 양성 앵커의 클래스 타깃을 조정하므로 대부분의 타깃은 1보다 작습니다.
PyTorch의 CrossEntropyLoss는 label_smoothing 인수를 통해 이 공식을 적용합니다.
import torch
from torch import nn
# The correct class is index 0 of three; hard and smoothed versions of the same loss
target = torch.tensor([0])
hard_loss = nn.CrossEntropyLoss()
smooth_loss = nn.CrossEntropyLoss(label_smoothing=0.1)
# Score the correct class increasingly far above the other two
for gap in [1.0, 3.0, 6.0, 12.0]:
logits = torch.tensor([[gap, 0.0, 0.0]])
hard = hard_loss(logits, target).item()
smooth = smooth_loss(logits, target).item()
print(f"Logit gap {gap:>4}: hard loss {hard:.3f}, smoothed loss {smooth:.3f}")하드 손실은 차이가 커질수록 0.551에서 0.000으로 감소하지만, 스무딩된 손실은 차이가 3일 때 약 0.295로 최저점에 도달한 뒤 차이가 12일 때 0.800까지 다시 증가합니다. 따라서 지나친 신뢰도는 적당한 신뢰도보다 더 큰 비용을 초래합니다.
보정 및 학습된 특징에 미치는 영향#
Müller, Kornblith, Hinton은 라벨 스무딩이 예측 확률과 실제 정답 비율이 일치하는 정도를 의미하는 모델 보정을 개선한다고 밝혔습니다. 또한 각 클래스의 마지막에서 두 번째 계층 특징이 서로 균일한 간격을 두고 조밀한 클러스터를 이루도록 한다는 점도 보였습니다. 이러한 압축은 이미지가 어떤 오답 클래스와 유사한지에 관한 정보를 없애며, 라벨 스무딩으로 학습한 교사 모델은 지식 증류를 통해 학생 모델에 전달하는 정보가 훨씬 적었습니다.
실제 적용 사례#
라벨 스무딩은 라벨에 노이즈가 있거나 모호하거나 클래스가 많은 경우 가장 효과적입니다.
- ImageNet 규모 분류: ImageNet에는 라벨이 잘못 지정된 이미지와 여러 유효한 객체가 포함된 사진이 있습니다. DeiT를 포함한 합성곱 네트워크 및 Vision Transformer 학습 레시피는 ε = 0.1을 사용하여 모델이 의심스러운 라벨을 완전히 확신하도록 학습하지 않습니다.
- 기계 번역: 최초의 Transformer는 ε = 0.1로 라벨 스무딩을 사용했습니다. 저자들은 모델이 덜 확신하도록 학습되어 퍼플렉시티는 높아졌지만 정확도와 BLEU 점수는 향상됐다고 보고했습니다.
- 의료 영상 분석: 전문 주석 작성자도 경계가 모호한 스캔에서는 의견이 엇갈리는 경우가 많습니다. 스무딩된 타깃은 진단 분류기가 논쟁의 여지가 있는 각 라벨을 확정적인 것으로 취급하지 않도록 하며, 더 잘 보정된 점수는 임상 분류 임계값의 신뢰도를 높입니다.
라벨 스무딩과 관련 기법 비교#
- 지식 증류: 증류도 교사 모델의 예측에서 얻은 소프트 타깃으로 학습하므로 클래스 간 유사성을 기록합니다. 라벨 스무딩의 타깃은 잘못된 모든 클래스에 동일한 작은 비중을 부여합니다.
- 온도 스케일링: 온도 스케일링은 학습된 모델의 로짓을 학습된 상수 하나로 나누어 사후에 보정하며, 가중치는 변경하지 않습니다.
- 드롭아웃 계층: 드롭아웃은 학습 중 임의의 활성화 값을 0으로 설정해 네트워크를 정규화하며, 라벨 스무딩은 학습 타깃을 통해 정규화합니다.
- CutMix: CutMix와 mixup은 두 학습 이미지를 혼합하고 같은 비율로 라벨도 섞는 데이터 증강 기법으로, 소프트 타깃이 입력 자체에서 만들어집니다. CutMix는 붙여 넣은 패치가 차지하는 면적에 따라 각 라벨의 가중치를 정하고, mixup은 베타 분포에서 추출한 계수 하나로 픽셀과 라벨 모두의 가중치를 정합니다.










