해결된 질문
작성
·
215
0
안녕하세요! 강의 잘 듣고 있습니다. 2가지 질문이 있습니다!
1.Focal Loss 수식에서 감마값이 하이퍼파라미터로 조절이 가능하잖아요? 그러면 감마값이 커질수록 p(확률값)가 작은 값임에도 잘 분류하는 것으로 간주하고 작은 p(확률)값임에도 Loss값이 매우 낮게 나와 이에 대한 학습을 더 진행하지 않게되는 것 맞나요? 즉, 감마값이 매우 크다면 오히려 오분류하는것도 잘분류한다고 간주하는 문제를 발생시킨다고 보면 맞나요?
2. Top-Down인 FPN을 진행하면서 각 Feature Map에다가 Anchor Box들을 씌우고 Object Detection을 수행하잖아요? 그러면 각 Feature Map별로 predict한 결과값 즉, 예측된 클래스 확률과 앵커박스들이 여러개 나오게 되겠죠? 그러면 SSD나 YOLO모델들 처럼 마지막엔 NMS 과정을 거쳐 최적의 Bounding Box만 남겨 최종 Detect하는 과정은 동일하나요?
답변 1
1
안녕하십니까,
1. 1.Focal Loss 수식에서 감마값이 하이퍼파라미터로 조절이 가능하잖아요? 그러면 감마값이 커질수록 p(확률값)가 작은 값임에도 잘 분류하는 것으로 간주하고 작은 p(확률)값임에도 Loss값이 매우 낮게 나와 이에 대한 학습을 더 진행하지 않게되는 것 맞나요? 즉, 감마값이 매우 크다면 오히려 오분류하는것도 잘분류한다고 간주하는 문제를 발생시킨다고 보면 맞나요?
=> 감마값이 매우 크다면 오히려 오분류하는것도 잘분류한다고 간주하는 문제를 발생시키는 것하고는 큰 관계는 없어 보입니다만,
감마값은 Focal loss에서 잘 예측한 대상과 그렇지 못한 대상의 Loss값 차이를 더욱 크게 만드는데(감마값이 커지면 loss값 차이가 더욱 커짐) 사용합니다. 일반적으로 Object Detection은 오브젝트를 Detec하는 것과 오브젝트가 아닌 Background를 background로 분류하는 걸로 구분됩니다. 즉 Background를 object로 Detect 해서는 안됩니다.
그런데 background를 background라고 잘 detect해도 loss가 줄어 들고, object를 object라고 잘 detect해도 loss가 줍니다. 그런데 background는 워낙 수가 많아서 background만 잘 detect해도 loss가 많이 줍니다. 이렇게 loss가 줄게 되면 object를 잘 detect하지 못해도 어느정도 학습이 수렴이 될 수도 있기 때문에, focal loss를 사용해서 동적으로 loss를 조절하게 됩니다.즉 잘 예측한(background든 object든) 대상은 loss를 상대적으로 매우 적게 부여하고, 잘못 예측한 경우는 loss를 상당히 크게 부여 합니다.
여기에 감마값을 증가 시키면 잘 예측한 경우와 잘못 예측한 경우와의 loss차이를 훨씬 더 키우게 됩니다. 일반적으로 알파와 감마를 변경하면서 최적의 loss식을 찾습니다. 보통 감마를 키우면 백그라운드 보다는 object에 집중할 수는 있지만, 그렇다고 최적의 loss를 보장하지는 않습니다.
2. 네 맞습니다. Anchor box를 사용하는 One Stage Detector는 거의 대부분 NMS를 적용하며, RetinaNet역시 마찬가지 입니다.
감사합니다.
답변 감사드립니다 !! 명쾌하게 이해가 되었습니다