ufris
Focal loss 본문
Focal loss는 object detection의 한 종류인 retinanet에서 쓰인 loss function 입니다
다른 블로그에 가면 Focal loss에 대해 설명을 아주 자세하게 해놓은 곳이 많은데 간단하게 Focal loss를 요약하자면
잘 찾은 class에 대해서는 loss를 적게 줘서 loss 갱신을 거의 하지 못하게 하고 잘 찾지 못한 class에 대해서는 loss를 크게 줘서 loss 갱신을 크게 하는 것입니다
그 차이를 만드는 역할을 하는 것이 gamma 입니다
수식은 간단합니다 기존 cross entropy * ((1-Pt) ** gamma) 를 곱하면 됩니다
* Pt = probability
위의 결과는 잘 찾았을 때(0.9의 확률로 classification) gamma 값에 따른 focal loss 값을 표시한 것입니다
gamma가 높을수록 loss가 엄청 낮아진다는 것을 볼 수 있습니다
위의 결과는 잘 찾지 못했을 때(0.1의 확률로 classification) gamma 값에 따른 focal loss 값을 표시한 것입니다
gamma가 높을수록 loss가 낮아지지만 잘 찾지 못할 때 loss는 소폭 줄어들게 하고 잘 찾은 경우에서는 loss를 대폭 줄어들게 합니다
gamma가 0일 때는 기존 cross entropy와 같은데 잘 찾을 때와 잘 찾지 못할 때의 loss 차이가 2.3배가 나지만
gamma가 3일 때는 무려 16000배나 차이가 납니다
이렇게 되면 잘 찾은 것에 대해서는 loss를 엄청 낮게 주고 잘 찾지 못한 것에 대해서는 loss를 소폭 낮춰서
잘 찾은 것에 대한 loss 갱신을 못하게 만듭니다
이렇게 함으로써 잘 찾지 못한 class에 대해 더 집중해서 학습하도록 하는 것이 Focal loss입니다
'딥러닝' 카테고리의 다른 글
Softmax cross entropy 구현(tensorflow) (0) | 2020.11.19 |
---|---|
CARPE DIEM, SEIZE THE SAMPLES UNCERTAIN “ATTHE MOMENT” FOR ADAPTIVE BATCH SELECTION (0) | 2020.10.22 |
tensorflow import_meta_graph를 이용한 image test (0) | 2020.08.20 |
성능 최적화 tensorRT / tflite (0) | 2020.06.05 |
Tensorflow : failed to create session (0) | 2019.04.30 |