- Distribution based loss 중 하나
- object detection 모델인 RetinaNet 논문에서 소개됨
- foreground 와 background의 심한 class imbalance를 해결하기 위해 Cross Entropy를 변형
- 잘 분류되었을 때 Loss값이 감소하도록 한다
어렵거나 오분류 되는 케이스에 더 큰 가중치를 준다
Class Imbalance 발생 시 문제점
- 쉽게 background로 분류될 수 있는 easy negative는 학습에 비효율적
- easy negative 각각의 loss 값은 작으나(background로 잘 분류되기 때문에) 클래스의 비율이 너무 커 (배경이 대부분을 차지) 전체 loss 및 gradient에 영향을 크게 미치게 된다.
기존 Cross Entorpy의 문제점
잘 분류한 경우에는 초점을 두지 않고, 잘못 예측한 경우 페널티를 부여하는 것에만 초점을 두기 때문에, easy example일 경우, 즉 잘 분류되었을 때의 보상이 전혀 없습니다. 잘 분류되었을 때 loss가 감소하지는 않는다는 것이죠
ex) BCE
$$
BCE = -y(\log (p)) -(1-y)(\log(1-p))
$$
이 경우 y=1일 때, (정답이 1일 때 ) $CE (y, p) = -y\log(p)$ 가 됩니다.
- $p=1$일경우 : $CE(y, p)=0$ 으로 페널티가 사라지지만, 보상도 없습니다
- $p\approx0$ 일 경우 : $CE(y, p)\approx\infty$ 로, 페널티가 매우매우 커집니다
ex) BCE, Y=1 (foreground), p=0.95 케이스와 Y=0(background), p=0.05의 case
- $CE(foreground) = -\log(0.95)=0.05$
- $CE(background) = -\log(1-0.05)=-\log(0.95)=0.05$
- ⇒ foreground와 background 모두 잘 분류하였으나, 같은 Loss값을 가진다