소개
게시글
질문&답변
안녕하십니까 Retinanet에 대한 전반적인 이해를 질문하고자 합니다.
답변 정말 감사합니다. 제가 positive anchor가 없는 경우를 언급한 이유가, 위에서도 언급했듯이 chest X-ray data에서 병증을 detection하고자 함인데, 데이터 중에서 normal 데이터는 병증이 없기에 레이블이 없습니다. 그래서 이러한 데이터에는 positive anchor 또한 존재하지 않아서 질문을 드려보았습니다. 이러한 경우에도 loss를 negative anchor 수로 나누어주면 될까요? 아직도 코로나가 기성인 이 시기에 부디 건강하시길 바랍니다. 감사합니다.
- 1
- 6
- 405
질문&답변
안녕하십니까 Retinanet에 대한 전반적인 이해를 질문하고자 합니다.
답변 정말로 감사합니다! 추가적으로 제 상황을 말씀드리자면 Imagenet으로 학습한 resnet 50을 backbone으로 하여 chest X-ray에서 병증 detection을 하고자 하여, 모델을 custom하여 fine-tuning을 해야하는 상황입니다. 위의 질문을 등록한 이후로 해당 강의 질문 게시판에서 Anchor Box 관련 질문을 찾아본 결과 https://www.inflearn.com/questions/109566 여기에 "BACK HO KIM" 님께서 올려주신 설명으로 인해 subnet을 통과하여 나온 output들이 무엇을 의미하는지 알게 되었습니다. 현재 질문을 추가적으로 올렸다가 개인적으로 질문에 대한 해답을 찾아서 지우고 새로운 의문점이 있어 질문합니다. object detection에서 loss function 구성이 classfication loss + box regression loss로 구성되어있는데, 이 때 마지막에 loss를 positive anchor 수만큼 나눠주는 normalization 과정이 있는 것으로 알고 있습니다. 이는 위에 언급한 Keras 예제 코드에서도 normalizer = tf.reduce_sum(positive_mask, axis=-1) clf_loss = tf.math.divide_no_nan(tf.reduce_sum(clf_loss, axis=-1), normalizer) box_loss = tf.math.divide_no_nan(tf.reduce_sum(box_loss, axis=-1), normalizer) 이렇게 나오며, 선생님께서 강의 중에서 사용하신 fizyr의 retinanetd losses.py에도 나오는 개념인데 이 때 드는 의문점이 만약 positive anchor가 존재하지 않는 데이터라면 loss를 어떻게 처리하는가 입니다. Keras 예제 코드에서는 tf.math.divede_no_nan 함수를 사용하여 positive anchor 수가 0이라면 loss를 0으로 처리하는데 이렇게 되면 학습시에 영향이 없는지 궁금합니다. 항상 친절하고 좋은 답변에 감사드립니다.
- 1
- 6
- 405