본 논문은 Arxiv에서 현재 (18.11.23 기준) 트위터 멘션이 가장 많이 된 논문이다.
(논문 링크)
![]() |
| 트위터 언급 1등! |
저자들은 무려 ResNet을 제안한 Kaiming He와 내가 신봉하는 연구자인 RCNN의 발명가 Ross 형님이시다.
딥 네트워크를 깊이 연구한 Kaiming He와 Object Detection을 깊이 연구한 Ross Girshick의 콜라보 답게 많은 실험들이 기존의 네트워크 학습이 detection에서 어떻게 해석되는지 요런느낌으로 논문을 쭉쭉 써내려 나갔다.
포맷을 보면 너무도 당연스럽게 CVPR 2019에 제출된 논문임을 알 것같다. 아마도 억셉된다면 적어도 spotlight이상은 가지 않을까... (패러다임의 변화를 제안한 논문!)
여하튼 인상적인 논문 제목이다. 이미지넷의 pre-training에 대해서 다시 생각해보자...주제 자체가 크지 않은가!
일반적으로 CV분야에서 pre-training을 한다면 그것은 ImageNet을 사용하는 작업이 거의 대부분일텐데 기존의 패러다임에 대해 다시 생각해보자라는 본 논문은 매우 충격적이지 않을 수 없다.
찬찬히 abstract부터 보겠다.
Abstract
요 논문은 COCO 디비의 물체 검출과 instance segmentation에서 Random initialization으로 학습한 모델이 꽤나 경쟁력있는 결과를 낸걸 보고한다. 학습횟수를 늘리는거 빼고는 기존의 ImageNet으로부터 pre-training한거나 random으로 초기화해서 한거나 다 같은 수준으로 수렴할 수 있다. Random Initialization에서 학습한게 예상외로 강력한 것이 본 논문에서(1) 학습 데이터의 10%만 사용
(2) 더 깊고 넓은 (deeper and wider) 모델
(3) 다양한 task, metric에서도
이런 경우에도 유지된다는 것이다.
실험은 COCO 2017셋에서 이미지넷으로 pre-training된 모델의 수준정도의 성능을 보였다.
다시 생각해 볼 수 있는 여지를 우리가 제공한다고 볼 수 있다.
(내 생각)
1에 대해서는 우리가 pre-training 하는 이유 중 하나는 목표로하는 태스크에서의 데이터가 부족하기 때문이다. 이는 feature representation을 제대로 학습을 못하는 것이고 이를 해결하기 위해 기존에는 Imagenet의 데이터를 빌려와 때역서 학습을 시키고(Pre-training) 우리가 목표로하는 태스크의 데이터를 추가 학습시켜 (Fine-tuning) 모델의 성능을 높이자가 주된 모델학습법이었다. 그러나 본 논문의 결과에 의하면 데이터를 얼마 사용하지 않고도 모델의 성능을 충분히 보장할 수 있다는 것에 의의가 있다.또한 우리가 깊고, 넓은 모델을 사용하기 위해선 역시 데이터의 양이 충분히 많아야 제대로 학습이 된다고 보고있었다. 하지만 본 논문에서는 ImageNet의 large-scale 데이터셋을 빌려오지 않고도 충분히 학습할 수 있다고 결론내리고 있다.
마지막으로 multi-task와 metric들에도 구애받지않고 충분히 ImageNet 없이도 성능 보장이 된다.
1. Introduction
DCNN이 발전한건 large-scale의 ImageNet을 기반으로한 pre-training과 그것을 transfer하여 feature representation을 우리의 task에 맞게 학습하는 것이 비교적 수월하게 가능했기 때문이라고 본다.컴퓨터 비전이 문제를 푸는 방식 (path)은 ImageNet과 같은 대용량 데이터셋으로 'a universal feature representation'을 pre-training하는 것으로 대표되었었다. 근데 이 성공들이 object detection에서는 좀 어려운점이 있다. 왜냐면 object detection을 위한 pre-train dataset들은 양 자체가 딴거보다 적기 때문이다.
![]() |
| ResNet-50 FPN의 Mask R-CNN을 열라게 COCO에다가 적용해본 결과다. 회색이 기존의 ImageNet기반의 pre-training 방법이고 자주색깔은 pre-training없이 random으로 셋팅한다음 학습한놈의 성능이다. |
(1) 적절한 normalization
(2) 충분히 오래 학습하기
Figure 1을 보니... 뭐 당연히 pre-train된게 처음에는 좋게 나오지만 시간을 찬찬히 두고 (iteration 늘려나가고) 적당한 normalization 기술 (GroupNorm)을 적용했더니 끝에가서는 pre-train하나 안하나 별차이가 없다...!
(여기서 갑자기 수치가 뻥뻥 튀는건 러닝레이트를 줄였기 때문에 저런것이다. 더 미세하게 학습하니 성능이 확확 오르는 것이다.)
아무튼 이 논문에선 Average Precision (AP) 기준 40~50사이로는 Pre-train하나 안하나 별 상관 없단것을 발견했고 심지어 이것도 pre-train도 안하고 training set도 꼴랑 기존의 10%만 써도 된단 것을 발견했다. 또! resnet101보다 4배 복잡한 모델로 학습해도 오버피팅 전혀없이 깔끔하게 학습되는것도 발견했단다!
- 이미지넷으로 pre-training하는 것은 교육 초반에만 수렴속도를 높여주지 (edge, texture같은 low-level feature가 그래도 어느정도 학습되있으니) 뒤에가서 우리가 원하는 태스크에 맞게 튜닝하는건 pre-training하나 안하나 어차피 그게 그시간이다!
- 이미지넷 pre-training이 자동으로 좋은 regularization기법을 주지 않는다. pre-training할때도 보니까 COCO의 10%이하의 이미지로 학습시키면 오버피팅 피하기 위해 NEW Hyperparameters가 반드시 필요한걸 발견했는데 이거는 그냥 pre-training 없이할때도 다른거 없이 똑같은거 쓰면 되는걸 발견했단다. (Group Norm을 말하는 듯)
- 또한 이미지넷으로 pre-training하는건 좀 특정화된 task/metric일때 그다지 별 도움 안되는걸 발견했다. 그냥 얘내들이 제안하는대로 처음부터 학습하는게 바운딩박스 threshold값 설정에 더 괜찮은 결과를 나타내어준다. 또 AP도 상대적으로 빨리 수렴한다더라.
어쨋든 Introduction의 요약은 그동안의 컴퓨터비전에서 ImageNet기반의 pre-training에 대한 기존 관습을 깨자는 것에 의문을 제기한다는 것이다.
ImageNet이 양도많고 질적으로도 뭐 나쁘지 않으니까 우리가 일단 이놈을 먼저 pre-train하는 식으로 연구를 하긴 했었는데 이거에 대해서 좀 우리가 꼭 그렇게 좋은 효과를 항상 가져다주진 않는다를 생각해보자는 거다.
위에 기술했듯이 좀 더 요약하자면 (1) 적절한 normalization 테크닉과 (2) 걍 오래 학습하기 를 잘하면 pre-training이 별 필요 없다고 보았다.
또한 다양한 실험들을 해보면서 3가지 발견을 하였는데 (1) 제대로 수렴시키는 시간은 별차이없다. (2) Hyper-parameter가 그냥 중요하다. (3) spatially 특정화된 도메인에 한정해서는 되려 쓰잘떽 없다(AP수치 라던가)를 발견했다.
또 내가 봤을때는 계속 기존에 제시한 학습 데이터셋도 10%만 써가면서 실험을 해대는데 여기서 저자들이 말하고 싶은건 DATA의 수도 수지만 그보다 더 중요한건 Data의 Hyper-parameter를 잘 뽑는 것이 정말 중요하다고 하는걸로 보여진다. (물론 특정 도메인에 대해서 학습디비를 계속 수집해야 한다고 말하기도 했다. 어쨋든 무분별한 데이터수집보단 우리 도메인에 특정화된 디비가 중요하단 것이겠지)
2. Related Work
pre-training and fine-tuning 에 대해 다룸...Detection from scratch 에 대해 다룸...
귀찮다... 넘긴다.
길어지므로 이후는 다음포스팅에서 작성하겠다.


댓글
댓글 쓰기