불균형 데이터에 효과적인 Focal loss
1. motivation
single stage detector들은 ROI pooling이 없어서 모든 영역을 고려하여 gradient를 계산(모든 영역에서 loss가 발생)
이미지 내 물체라는 것은 사실 몇개 없다
그래서 물체를 포함하는 positive sample bounding box보다 물체를 포함하지 않은 negative sample bounding box가 압도적으로 많은 경우가 빈번하다
왜 문제냐면 negative sample bounding box는 실제 물체에 대한 유용한 정보가 없는데 이게 너무 많다는 것이 비효율적
대부분의 single stage detector들이 이런 문제가 있다고 보면 됨
2. focal loss
cross entropy인 $-log(p_{t})$의 확장형으로 $-(1-p_{t})^{r}log(p_{t})$로 계산하는 loss
r에 따라 형태가 다르다
r=0이면 파란 선으로 cross entropy와 동일한데 정답 확률이 높은 경우 loss가 매우 낮은데 정답 확률이 낮은 경우 loss가 급격히 높아지는 성질이 있다
여기에 $(1-p_{t})^{r}$항을 부여하여 그래프를 아래로 낮추었는데 정답을 잘 맞추는 경우 loss를 더욱 낮추고 맞추지 못하면 sharp한 loss를 준다
오답일때도 loss가 작아지는데??? 이게 무슨 의미냐 네트워크 학습할 때 사용하는 것은 loss function의 gradient라는 사실을 기억하자
gradient는 loss function의 접선의 기울기로 r이 커지면 정답일수록 gradient가 점점 작아지고 오답일수록 gradient가 커진다
어렵고 판별하기 어려운 문제(오답인 문제)에 대해서는 더욱 강한 gradient를 계산하여 빠르게 정답을 맞추도록 만들고
쉽고 판별하기 쉬운 문제(정답인 문제)에 대해서는 더 작은 gradient를 주어 어차피 판별 잘하니까 크게 신경쓰지 않도록 만든다
'딥러닝 > Computer Vision' 카테고리의 다른 글
실시간으로 instance segmentation을 수행하기 위한 YOLACT의 아이디어 알아보기 (0) | 2022.10.31 |
---|---|
instance segmentation과 mask R-CNN알아보기 (0) | 2022.10.21 |
YOLO(You only look once)의 원리 알아보기 (0) | 2022.05.10 |
R-CNN 계열의 network 원리 요약 (0) | 2022.05.10 |
R-CNN에서 가장 발전된 Faster R-CNN에 대하여 (0) | 2022.05.05 |