OHEM 부수기 [백 병장의 CV 부수기 5편]
오늘은 Training Region-based Object Detectors with Online Hard Example Mining 논문에서 제안된 OHEM을 배워보자.
기존 2-stage Object Detection 모델들에서는 분류하여야 하는 클래스에 해당하지 않는 영역들에 배경(background) 클래스를 부여함으로써, Region Proposal 된 영역 중 잘못 제안된 영역들을 제거하였다.
그런데 이 방법을 사용하면 당연하게도, 제안된 수천 개의 Region들 중 다른 클래스에 비해 배경 클래스의 region들이 훨씬 많아져서 클래스 불균형 문제가 생긴다. 이를 해결하기 위해 Hard Negative Mining이라는 방법을 통해 적당한 region들을 골라 배경 클래스로 학습시켰는데, 이 과정이 학습 시간을 매우 오래 걸리게 만드는 문제가 있었다.
이 논문에서는 이런 Object Detection 학습의 문제를 해결하기 위해 Online Hard Example Mining을 제안하여 학습시간과 성능을 개선하였다.
Hard Negative Mining
일반적인 2-stage OD 모델은 Region Proposal을 통해 ROI(Region of Interest)를 만들고, 이 영역들을 활용한 Classification과 Localization을 학습시킨다. 그런데 이미지에는 일반적으로 우리가 인식하고자 하는 객체보다, 객체가 없는 영역이 더 많기 때문에 클래스 불균형 문제가 발생한다.
클래스 불균형을 해결하는 방법은 간단하다. 샘플이 너무 많은 클래스의 샘플 몇개를 삭제하여 균형을 맞춰주면 된다.
다만, 이때 학습에 도움이 되는 샘플을 남기는 편이 성능에 좋을 것이다.
Hard Negative Mining은 모델이 예측하기 어려워(Hard)하는 샘플을 선택하여 학습에 사용한다.
모델이 잘못 분류한 Negative Sample들 중, Confident Score가 높은(즉, 모델이 정답이라 확신하는) 샘플들을 골라 정답을 맞힌 Positive Sample과 일정 비율로 섞어 다음 학습에 사용할 mini-batch를 만든다.
그 결과, 학습을 반복할 수록 모델은 자신이 취약한 부분에 대해 강건함을 갖게 된다.
Hard Negative Mining을 사용한 후와 사용하기 전의 이미지를 보면 확연히 잘못된 예측(붉은색)이 줄어듦을 알 수 있다.
Hard Negative Mining을 적용한 Fast R-CNN 학습 과정을 살펴보자.
Fast R-CNN에 대해 자세히 알고 싶다면 내 이전 글을 보기 바란다.
- 이미지를 CNN에 통과시켜 feature map을 얻는다.
- 이미지에 Selective Search를 수행하여 ROI를 얻는다.
- ROI를 feature map에 투사한다.
- ROI를 통해 Classification, BB Regression을 수행한다..
- 역전파를 수행하여 학습을 진행한다.
- 예측 결과를 Confident Score 순으로 정렬하여, Hard Sample들을 고른다.
- Positive Sample과 5.에서 얻은 Hard Sample을 섞어 다음 epoch에 사용할 mini-batch를 만든다.
- 1. 부터 반복
Hard Negative Mining의 단점
이렇게 보면 Hard Negative Mining이 참 좋은 방법 같지만, OHEM의 저자들은 Hard Negative Mining의 단점을 지적한다.
- 매 epoch마다 Hard Sample들을 고르고, 다음 epoch의 mini-batch에 추가하는 과정에서 학습이 느려진다.
- Hard Negative Mining을 위해 사람이 설정해줘야할 변수가 많아져, 실험자의 개입과 시행착오가 늘어난다.
(mini-batch를 구성할 positive/negative sample의 비율, positive/negative sample의 기준이 될 IoU값 등)
Online Hard Example Mining
OHEM은 위에서 언급한 Hard Negative Mining의 단점을 개선한 학습 방법이다.
매 epoch마다 학습을 잠시 멈춰두고 hard sample을 골라 mini-batch에 추가하여야 했던 기존 방법과 달리, 데이터를 순차적으로 mini-batch로 사용하는 학습(online 학습)이 가능하다.
OHEM의 작동 방식은 다음과 같다.
(위의 Hard Negative Mining 방식과 비교해보자. 다른 부분은 강조 표시했다.)
- 이미지를 CNN에 통과시켜 feature map을 얻는다.
- 이미지에 Selective Search를 수행하여 ROI를 얻는다.
- ROI를 feature map에 투사한다.
- ROI를 readonly ROI network에 통과시켜서 Loss를 구한다.
- Non Max Suppression을 수행하여 겹치는 ROI들을 제거하고, ROI들을 loss 순으로 정렬하여 loss가 낮은 ROI(즉, 잘 예측한 ROI)를 제거한다.
- 이렇게 고른 hard sample들로 mini-batch를 구성한다.
- 위에서 얻은 hard sample ROI들을 1.에서 얻은 feature map에 투사한다.
- 7. 에서 얻은 ROI를 통해 Classification, BB Regression을 수행한다.
- 역전파를 수행해 신경망을 학습시킨다.
4. 에서 readonly ROI network가 등장한다.
이는 학습없이 예측만을 수행하는 신경망으로, 전체 ROI를 순전파(예측)하여 loss를 구하는 데 사용된다.
readonly network라는 별도의 신경망이 존재하는 것처럼 보이지만, 우리가 학습시키고 있는 ROI Network를 한번 더 사용한다고 보면 될 것 같다.
Hard Negative Mining에서 모든 ROI를 순전파시키고(4.) 바로 학습을 진행한 것(5.)에 비해, OHEM에서는 일단 loss 순으로 hard sample을 고르고(4. ~ 6.), 고른 hard sample들만을 이용해 학습(9.)을 진행했다.
Hard Negative Mining에서 epoch 중간에 sampling을 거쳐 새 mini-batch를 만든 것과 달리, readonly network를 사용하여 학습 전에 hard sample로 구성된 mini-batch를 만들어, 학습 중간에 시간이 소모되는 sampling을 거칠 필요가 없어졌으며, 학습 자체도 전체 ROI로 진행하지 않고 hard sample 들만 사용하여 진행할 수 있다.
논문에서는 이를 통해 학습 시간도 2배 가량 단축하고, 성능도 향상되었다고 한다.
결론
지금까지 모델들 위주로 공부하면서 학습 방법은 자세히 몰랐는데, 이번 기회에 Hard Negative Mining, OHEM이라는 방법을 알게 되었다.
더불어 딥러닝 성능 개선을 모델 위주로 생각할 것이 아니라는 것도 느꼈다.
이제 백 병장의 CV 부수기도 한편 남았다.
이론 공부가 끝나면 다음엔 구현을 통해 정확하게 이해할 필요성을 계속 느낀다.
어렵겠지만 꼭 도전해봐야지.
참고자료
- Training Region-based Object Detectors with Online Hard Example Mining - Abhinav Shrivastava et al. arxiv
- OHEM 논문(Training Region-based Object Detectors with Online Hard Example Mining) 리뷰 - herbwood
- [논문 읽기] OHEM(2016) 리뷰, Training Region-based Object Detectors with Online Hard Example Mining - AI꿈나무
'Deep Learning > 공부 노트' 카테고리의 다른 글
SSD: Single Shot MultiBox Detector 요약 (0) | 2023.01.11 |
---|---|
YOLO: You Only Look Once 부수기 [백 병장의 CV 부수기 6편] (0) | 2022.12.11 |
Faster R-CNN 부수기 [백 병장의 CV 부수기 4편] (0) | 2022.12.04 |
Fast R-CNN 부수기 [백 병장의 CV 부수기 3편] (0) | 2022.12.03 |
OverFeat 부수기 [백 병장의 CV 부수기 2편] (0) | 2022.11.28 |
댓글
이 글 공유하기
다른 글
-
SSD: Single Shot MultiBox Detector 요약
SSD: Single Shot MultiBox Detector 요약
2023.01.11 -
YOLO: You Only Look Once 부수기 [백 병장의 CV 부수기 6편]
YOLO: You Only Look Once 부수기 [백 병장의 CV 부수기 6편]
2022.12.11 -
Faster R-CNN 부수기 [백 병장의 CV 부수기 4편]
Faster R-CNN 부수기 [백 병장의 CV 부수기 4편]
2022.12.04 -
Fast R-CNN 부수기 [백 병장의 CV 부수기 3편]
Fast R-CNN 부수기 [백 병장의 CV 부수기 3편]
2022.12.03