레이블 스무딩: 왜 하드 0/1 타겟은 과신하는 거짓말이며, 이를 고치는 p t 부호 반전
요약
본 글은 분류 모델 학습 시 사용되는 하드 0/1 타겟의 한계를 지적하며, 레이블 스무딩(Label Smoothing) 기법을 소개합니다. 스무딩은 크로스 엔트로피 손실 함수에서 타겟 값을 부드럽게 조정하여 모델이 과신하는 경향을 방지하고 안정적인 학습 환경을 제공합니다.
핵심 포인트
- 하드 0/1 타겟은 모델의 과신을 유발하며, 이는 불안정한 기울기(gradient)를 만듭니다.
- 레이블 스무딩은 타겟 값을 부드럽게 조정하여 모델이 지나치게 확신하는 것을 방지합니다.
- 스무딩된 교사 모델은 지식 증류나 임베딩 기하학 학습에는 적합하지 않을 수 있습니다.
분류기(classifier)는 softmax를 거치며 원-핫(one-hot) 타겟에 대해 교차 엔트로피(cross-entropy)로 학습됩니다. 이 타겟은 오른쪽 클래스에서 1, 나머지 모든 곳에서 0입니다. 이 타겟은 근본적으로 만족시키기 불가능하며, 이를 추구하는 것이 모델이 자신이 확신하지 못해야 할 이미지에
소프트맥스(softmax)와 크로스 엔트로피(cross-entropy)의 기울기(gradient)는 로짓(logits)에 대해 아름답게 단순합니다: p − t. 하드 타겟(hard target)을 사용하면 참 클래스(true-class)의 기울기는 p_true − 1이 되며, 신뢰도가 1에 도달할 때까지 음수(-ve)를 유지하여 로짓을 영원히 올리게 만듭니다. 스무딩(smoothing)을 사용하면 타겟은 단지 1−ε+ε/K가 되므로, 모델의 신뢰도가 이 천장(ceiling)을 넘어서는 순간 기울기는 **양수(positive)**로 바뀌어 과신하는 로짓을 능동적으로 다시 내리게 만듭니다. 비로소 유한하고 고정된 지점(finite fixed point)이 생겨납니다.
const grad = p.map((pj, j) => pj - target[j]); // dL/dz = p - t
// TRUE class, hard: p_true - 1 = 0.908 - 1 = -0.092 (push UP, forever)
...
데모에서 이 숫자가 ε를 드래그함에 따라
데모에서 이 숫자가 $\epsilon$를 드래그함에 따라
알아두면 좋을 두 가지 주의사항이 있습니다. 평활화된(smoothed) 교사 모델은 지식 증류(knowledge distillation)에 해롭습니다. 로짓(logits)을 동일한 간격으로 뭉개는 것은 학생 모델이 클래스 유사성으로부터 배우는 '어두운 지식(dark knowledge)'을 지워버립니다. 또한 검색(retrieval) 및 메트릭 학습(metric learning)이 의존하는 임베딩 기하학(embedding geometry)을 흐리게 만들 수 있습니다. 경험 법칙으로 말하자면, 확률 값을 읽을 최종 분류기에는 훌륭하지만, 다운스트림 작업에서 로짓이나 특징(features)을 소비하는 경우에는 다시 생각해 봐야 합니다. 이는 Mixup 및 CutMix와 지식 증류의 온도-평활화된 타겟과 같은 계열에 속하며, 모두 하드한 0/1 타겟이 과신하는 거짓이라는 아이디어에 기반합니다.
$\epsilon$ 슬라이더를 드래그하면서 타겟이 부드러워지고(soften), 기울기(gradient)의 부호가 반전되며(flip sign), 신뢰도 상한선이 실제 정확도로 떨어지는 것을 지켜보세요:
https://dev48v.infy.uk/dl/day36-label-smoothing.html
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기