RoBERTa 논문 리뷰입니다.
본 논문은 2018년도에 등장한 논문입니다.
논문 : Focal Loss for Dense Object Detection
저자 : Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollar
[1] Background
Object Dection 분야에서 전통적으로 두 단계 검출기 모델과 한 단계 검출기 모델로 구분할 수 있습니다.
R-CNN 계열 (Selective Search, Faster R-CNN 등) 의 모델들은 물체가 있을 법한 제안 영역을 찾고(1), 해당 영역을 CNN 기반 분류기를 통해 어떤 물체인지 분류하는(2) 두 단계로 구분되어 작동됩니다.
이러한 Two stage 방식은 소수의 후보 영역만 추려내어 학습해 배경 샘플에 의해 학습이 방해되는 현상을 방지할 수 있었지만, 후보 영역을 찾는 과정에서 매우 오랜 시간이 걸린다는 단점이 존재했습니다.
반면, 한 단계 검출기 모델 (SSD, YOLO 등) 들은 한 장의 이미지에서 Anchor Box를 만드는 등 모든 위치나 스케일 종횡비 따져서 Grid 형태로 객체를 탐지합니다.
후보 영역을 추려내지 않아도 되는 덕분에 속도가 매우 빠르다는 장점이 있지만, 이미지 전체를 확인해야 하기 때문에 학습 시에 상당히 많은 배경 픽셀이 함께 고려됩니다.
☑️ 즉, 대부분의 샘플이 배경 데이터라서 모델 입장에서는 '쉬운 예시'가 너무 많고 이를 학습 과정에서 전부 반영하다보면 오히려 객체가 있는 중요한 예시를 제대로 학습하지 못하는 문제가 발생합니다.
따라서, 논문 제목에서도 알 수 있듯이 Focal Loss 개념을 통해 이를 완화하는 RetinaNet이 등장합니다.
[2] Focal Loss
1) Cross Entropy Loss
위에서도 언급했듯이 객체 탐지 모델(특히 한 단계 검출기)에서는 이미지 내에 물체가 없는 배경 영역이 매우 많습니다.
극단적으로 물체가 있는 위치와 배경의 비율이 1:1000처럼 크게 차이가 나기도 합니다.
위의 Cross Entropy Loss 손실로 학습을 진행하면 제대로 분류가 되기 쉬운 배경조차도 일정 수준의 손실값을 만들어냅니다.
배경 샘플의 수가 워낙 많으니 전체 Loss를 계산할 때 희석 효과가 발생하고, 분류하기 어려운 샘플(잘못 분류된 물체 혹은 경계가 애매한 물체 등)로부터 중요한 정보를 놓칠 위험이 큽니다.
이를 위해서 기존에는 양성과 음성 (객체와 배경)에 서로 다른 가중치 $α$를 부여하는 방법으로 해소를 시도해왔습니다.
그 방법이 Balanced Cross Entropy 입니다.
2) Balanced Cross Entropy
Balanced Cross Entropy란 균형 가중치 $α$를 적절히 조정함으로써 양성 vs 음성 간 비율에 따른 손실 기여도를 다르게 설정해줄 수 있습니다.
하지만 구분하기 쉬운 배경과 구분하기 어려운 배경에 대해서 일괄적으로 가중치를 적용하므로 어려운 예시에 더 집중할 수 있는지가 여전히 문제로 남습니다.
3) Focal Loss
Focal Loss는 기존의 Balanced Cross Entropy Loss에서 $(1-p_t)^γ$ 가 추가된 식의 형태입니다.
여기서 $(1-p_t)^γ$ 는 모듈레이팅 팩터 (Modulating Factor)의 역할을 담당하고,
$γ$ 은 큰값을 줄수록 정확도가 높게 분류된 예시 (분류하기 쉬운 예시)의 손실을 더욱 빠르게 줄입니다.
예를 들어, $p_t$ 가 0.9라면 90%의 확신을 가지고 분류한 샘플의 손실을 크게 낮춰서 전체 학습에서의 중요도를 낮추는 거죠.
그래프에서도 보면 $γ$ 값을 키울수록 분류하기 쉬운 샘플에 대한 Loss가 줄어들어 전체 Loss에 미치는 영향이 적도록 설정해주는 것을 알 수 있습니다.
[3] Model Architecture
RetinaNet은 크게 두 부분으로 구성됩니다.
1) Backbone 네트워크
- ResNet을 기반으로 하며, 여기에 FPN(Feature Pyramid Network)을 결합해 다중 스케일 피쳐맵 생성
- 하위 레이어(해상도가 높은 레이어)에서 얻은 정보와 상위 레이어(전체적으로 보는 레이어)를 결합해 다양한 해상도의 Feature Map을 효율적으로 통합
- 이를 통해, 작은 물체는 높은 해상도에서 큰 물체는 낮은 해상도에서 효율적으로 탐지하도록 함
2) 두 가지 SubnetWork
- 분류 서브넷 : 앵커 박스 별로 어떤 클래스가 존재하는지 예측
- 회귀 서브넷 : 앵커박스에 객체가 있다면 해당 물체의 앵커박스를 얼마나 이동, 확장해야 하는지를 예측
☑️ 분류 서브넷 (Classification Subnet)
- FPN 각 레이어의 출력을 받아서 3x3 conv Layer 4개를 통과
- 마지막에 3x3 conv 로 (K x A) 채널을 출력하고 시그모이드로 각 클래스별 확률을 구함
- K = 클래스 수, A = 앵커박스 수
→ 백본 네트워크와 파라미터를 공유하지 않음 (별도의 가벼운 FC Network)
☑️ 회귀 서브넷 (Box Regression Subnet)
- 분류 서브넷과 유사한 구조이지만 마지막 출력이 (4 x A) 채널을 출력
- 각 앵커박스에 대해 x, y, w, h 의 4개 값을 예측
Inference and Training
Training부터 보면,
위에서 설명한 Focal Loss는 모든 앵커박스에 대해 계산됩니다.
배경이든 객체든 상관없이 전부 적용하는데, 구분하기 쉬운 배경 샘플의 Loss 기여도가 작아지므로 학습에 노이즈가 크게 늘지 않습니다.
이후, 모든 앵커박스에 대해 Focal Loss를 전부 합산한 뒤 물체가 실제로 있는 Positive 앵커박스의 수로 나눠 정규화합니다.
논문에서는 $ γ = 2, α=0.25 $ 의 조합이 가장 좋다고 합니다.
그리고 Box Regression 학습, 즉 회귀학습에서는 Smooth L1 Loss를 사용합니다.
최종 Loss Function은 Focal Loss + Smooth L1 Loss라고 할 수 있겠습니다.
추가적으로, 학습 초기에 물체가 있는 위치를 예측할 때 배경에 영향을 받지 않고 안정적으로 업데이트가 될 수 있도록 모델 초기화를 해준다고 합니다.
초기화 시에 객체 예측 확률 p를 매우 작게 설정하여 파라미터를 초기화하는 전략을 사용한다고 합니다. (prior 개념)
Inference는
먼저 클래스 분류 점수가 0.05 미만인 앵커박스는 제거합니다. (임계값)
그런 다음, 각 FPN 별로 상위 1,000개의 앵커박스만 남깁니다. (점수 높은 순으로)
FPN의 레벨별로 뽑힌 앵커박스를 대상으로 NMS(0.5)를 수행해 최종 앵커박스를 얻습니다.
이를 통해 Score 0.05 미만인 앵커박스는 과감히 버리므로 불필요한 박스 디코딩이 줄어들어 속도가 빨라지는 효과가 있습니다.
[4] Experiments
1) Balanced Cross Entropy vs. Focal Loss
- Balanced CE
- $α=0.75$ 등 적절하게 설정할 경우 기본 CE 대비 mAP 상승을 기대할 수 있음
- Focal Loss
- $γ$가 2일 때 Balanced CE 대비 약 2.9의 AP 향상이 일어났음
- 학습된 RetinaNet 모델에 대량 무작위 이미지를 적용하고 $10^7$개의 배경과 $10^5$개의 객체에 대한 예측 확률을 샘플링한 뒤 Loss를 1로 정규화하고 그린 확률곡선 그래프
- 객체가 있는 foreground에 대해서는 $γ$에 영향을 많이 받지는 않지만 background는 $γ$에 따라 극단적으로 영향을 받음
2) Comparison to State of the Art
- YOLO, SSD 등 대표적인 One Stage 모델에 비해 매우 높은 정확도와 속도를 기록
- Faster R-CNN 등 대표적인 Two Stage 모델에 비해서도 높은 성능을 기록
[5] Conclusions
- YOLO, SSD 등 One-Stage Detector 의 클래스 불균형 문제를 해소하기 위해 등장
- Focal Loss
-
- 실험 결과, COCO Benchmark에서 SOTA를 기록하며 One Stage Detector의 한계를 극복
- 참고로 RetinaNet은 Retina(망막) + Net(네트워크)의 조합으로 인간의 망막(Retina)처럼 한눈에 전체 이미지의 모든 위치를 균등하게 살피면서(One-stage detection), 중요한 정보에 집중할 수 있도록 학습하는 구조에서 유래했다고 합니당
[6] References
https://herbwood.tistory.com/19
https://www.youtube.com/watch?v=Bok00sfhtiQ
'논문리뷰' 카테고리의 다른 글
[논문리뷰] RoBERTa 논문 리뷰 (4) | 2025.02.02 |
---|---|
[논문리뷰] GPT-1 논문 리뷰 (2) | 2025.01.26 |
[논문리뷰] YOLO 논문 리뷰 (2) | 2025.01.25 |
[논문리뷰] U-Net 논문 리뷰 (2) | 2025.01.23 |
[논문리뷰] Faster R-CNN 논문 리뷰 (2) | 2025.01.20 |
[논문리뷰] ELMo 논문 리뷰 (2) | 2025.01.19 |
[논문리뷰] Attention 논문 리뷰 (0) | 2025.01.16 |
[논문리뷰] MoblieNet 논문 리뷰 (2) | 2025.01.12 |