기본 콘텐츠로 건너뛰기

[논문 리뷰] Rethinking ImageNet Pre-training (003)

지난 포스팅에 이어 기술된 포스팅이다.

4. Experimental Settings


 이분들의 연구에서는 최소의 변화만을 추구한다. 베이스라인이야 Mask R-CNN을 기반으로 하고, 다만 normalization과 학습횟수는 변화가 좀 있다. (이건 뭐 당연하지...normalization을 다른거 쓰겠다 했고 학습빈도야 이게 이 논문 키포인트니)

 그리고 크게 3가지로 나누어서 실험세팅에 대해 설명을 한다.

 먼저 구조! ResNet과 FPN(Feature Pyramid Network) 기반의 Mask R-CNN 쓰신다. 그리고 BatchNorm (BN)말고 GroupNorm(GN)과 SyncBN을 사용한다. 공정한 비교를 위해 fine-tuned모델도 BN말고 GN/SyncBN으로 튜닝했다.

 두 번째 러닝레이트 설계! 기존의 Mask R-CNN은 9만번이나 18만번 정도 튜닝을 한다. 근데 이건 튜닝할때나 그렇고 본 연구처럼 첨부터 학습하는 건 더 많이 학습시켜야지 않겠는가. 그래서 무려 54만번의 학습을 감행한다 (논문에서는 9만번 학습을 '1X schedule' 이라 하니 54만번의 학습은 '6X schedule' 이다.). 그리고 원래처럼 6만번 남았을때 0.1배 러닝레이트를 줄이고 2만번 남았을 때 또 러닝레이트를 0.1배를 가한다.

 마지막으로 Hyper-parameters! 이놈은 Detectron의 설정을 싹다 차용한다. 특히 초기 러닝레이트는 0.02이고 weight decay는 0.0001에 모멘텀은 0.9 쓰고......
그냥 다 비슷비슷하니 이건 넘기겠다.


5. Results and Analysis

5.1 Training from scratch to match accuracy


 이분들의 가장 맨 먼저 본 놀라운 발견은 COCO만 사용해서 모델을 첨부터 학습하는게 튜닝해서 학습하는 모델의 정확도를 결국 따라잡는 다는 것이다.!!
(COCO 한정이긴 하지만, 오히려 더 도메인에 specific한 데이터면 더 이 문장이 들어맞지 않을까!)







 이 서브섹션에서 이분들은 디텍션 평가방법으로 bbox AP를 사용하고 instance 세그멘 테이션 평가 방법으로는 mask AP를 사용한다.




<Baselines with GN and SyncBN.> 

 Figure 1,3,4에 AP 커브가 나타난다. 또한 Table1을 보자. 확실히 2x 스케쥴링일땐 ImageNet기반의 pre-training의 성능이 더 잘나온다. (40.3, 41.8)

 그러나 충분히 학습이 이루어지면 5,6x 스케쥴링에서는 AP수치가 거의 유사해진다. (미세하게나마 오히려 from-scratch방법이 더 낫다!)

 즉! 기존의 pre-training이 수렴속도를 높이는 데엔 도움이 될 수 있어도, 최종 정확도향상에는 영향이 전ㅡ혀 없다...! (시간만 충분하면 그냥 from-scratch 방법으로 학습하는것도 괜찮다...)

<Multiple detection metrics.>

 Table 2에서 얘내들은 다른 디텍션 metric들을 가지고 비교들을 했다.
간단하게 IoU (Intersection-over-Union)를 기준으로 AP_50과 AP_75를 가지고 비교를 때렸다.

첫 번째 열이 GN을 사용한 결과이며, 두 번째 열이 SyncBN을 사용한 결과이다. 


 결과는 놀랍게도 여전히 ImageNet기반 pre-training과 유사한 성능을 뽑아내며 특히 AP_75의 경우 From-scratch방법보다 오히려 더 나은거 같은 결과도 뽑아내준다...! (GN을 사용하면 차라리 처음부터 학습하는게 더 나아보인다.)

<Enhanced baselines.> 

 이거는 베이스라인을 Mask-RCNN 말고 다른것도 써가면서 테스트 해본 내용을 기술한 부분이다.



 근데 뭐 뻔하지만 결론적으로 베이스라인을 좋은걸로 바꿔써봐도 From-scratch방법이 절대 후지지 않다는 것이다.

 이미지 augmentation도 해보고, Cascade Mask R-CNN도 사용해보고, 다양한 스케일에서 테스트도 해보고 별의별 짓을 해보았지만 결국 결론은
From-scratch 방법은 ImageNet기반 pre-training방법보다 나쁘지 않다 이며 때론 더 나을때도 있다이다!

대강 뭔소리냐 요약하자면
 augmentation 이야 어차피 뭐 많이 하면 성능이 늘어나는건 자명한 사실이다.

또한 Cascade방법을 적용한 R-CNN에서 ImageNet의 효율이 그다지 별 상관이 없는게 ImageNet 데이터 자체가 classification을 위한 디비이기 때문에 localization에 영향을 끼칠 수가 없다. 따라서 성능 비교자체가 의미 없다고 볼 수 있다.

마지막으로 multi스케일로 prediction을 해보는 것도 당연히 쓰면 더 정확도가 늘어날테고 localization에 영향을 끼치지 않는 ImageNet이기에 성능에 큰 차이가 발생하지 않게 된다고 나는 본다.

<Large models trained from scratch.> 

 이 비교는 '우리가 더 복잡한 모델을 사용하면 어떻게 될까?' 이다. 결론적으로는 여전히 절대 뒤떨어지지 않으며, 오히려 미세하게 더 낫다!

비교에 사용한 데이터는 ResNet 152층 짜리, (구체적으로는 X152를 사용하였다.)를 사용했는데 계속 비교모델로 사용한 R101보다 4배 더 많은 FLOP이 있다.



모델이 복잡하니까 '오버피팅이 발생할 여지가 있으니 데이터가 더 많이 필요하고 그러면 ImageNet pre-training이 필요하지 않을까?' 란 생각을 하는데 그딴거 없단다.
오버피팅도 없고 그냥 더 잘된단다 ㄷㄷ. Table3이 그것을 방증한다. R101보다 더 나은 결과!

<vs. previous from-scratch results.> 

 이것은 from-scratch model을 연구했던 다른 연구들을 분석한 것이다.

 결론적으로 과거의 연구들은 ImageNet을 쓰지않고 더 나은 결과를 얻는데 전혀 증거가 없다고 했었는데... 지금까지 계속 봐왔다시피 오히려 처음부터 학습하는게 더 나을때도 있단 것이다.

 비교한 연구들은 DSOD, CornerNet인데 다들 따끈따끈한 ICCV 17, ECCV 18 논문들이다.

<Keypoint detection.> 

 얘내들이 참 별의별 실험을 다했다. ㅋㅋ 뭐 여튼 결과만 놓고 봤을땐 이놈은 또 그냥 detection/segmentation보다 더 잘된다!



 Figure 6을 보면 이건 오히려 수렴도 기존의 detection/segmentation보다 더 빨리 되는 것을 볼 수 있다.

 논문에서는 이러한 결론을 내려준다. keypoint detection 이란 것이 굉장히 정교한 localization으로도 볼 수 있는데 ImageNet pre-training이 localization에서는 그다지 아무 쓰잘떽 없다고 분석한다.

 이점에 대해서는 동의를 한다. ImageNet이란 데이터 자체가 classification을 대상으로한 데이터이기 때문에 영역을 찾아내야 하는 task에서는 좋은 효능을 발휘할 재간이 없다고 보는게 맞다.

<Models without BN/GN _ VGGnets.> 

 이번 실험 섹션의 마지막 분석이다. 내용은 normalization 안써보고 비교하기 이다. 대신 상대적으로 얕은 모델인 VGGNet을 사용했고 Faster R-CNN에 붙였다.

 실험결과가 역시나는 역시나인게 ImageNet pre-training을 사용한 방법이 9x 스케쥴링으로 35.6의 bbox AP를 달성했는데 From-scratch 방법은 11x 스케쥴링만에 35.2 AP를 달성했다. 즉 별차이가 없다.

 근데 여기서 주목할 것이, 기존에 ResNet 쓸땐 그래도 ImageNet pre-training이 방법이 2x 스케쥴링만에 나름대로 괜찮은 성능에 도달했는데, 갑자기 네트워크를 후진걸 쓰니까 학습을 꽤 오래시켜야 어느정도 성능에 도달한다는 점이다.

 심지어는 그냥 처음부터 학습시키는거랑 그렇게 큰 학습량 차이도 안난다. 이럴거면 그냥 처음부터 학습하지 뭐하러 굳이 ImageNet을 학습하겠는가.

 그래서 결론으로 Section 3에서 주구장창 언급했듯이 디텍터든 뭐든 잘 학습하고 싶은데 pre-training안하고 random initialization으로 학습하고 싶다면

  • Good optimization (GN/SyncBN)
  • Training for longer

하면 어느정도 성능 나온다는 이야기 이다.



일단 5.1까지 다루어 보았는데 슬슬 길어지는거 같고 이제 5.2와 마지막 discussion에 대해 다루어야 하니 이건 다름 포스팅으로 넘겨야겠다.

댓글

이 블로그의 인기 게시물

[논문 리뷰] Rethinking ImageNet Pre-training (002)

지난 포스팅 에 이어서 기술된 포스팅 이다. 3. Methodology  이분들의 목표는 다시한번 또 말하지만 ImageNet의 pre-training 무용을 보여주고 싶은 것이다!! 테크니컬 리포트 성격이 강한 논문이기에 구조적 개선에 대한 내용보단 pre-training에 대한 분석적인 관점을 가지고 논문을 보면 좋겠다. 특히 지난번 포스팅에서 언급했듯이 다시한번 두가지 관점에서 해당 섹션에 대해 설명한다.  Model Normalization    Training Length          3.1 Normalization  이미지 분류기 학습은 좀 더 능률적인 최적화를 위해 normalization 기법들을 필요로 한다. Normalization의 성공적인 사례는 여기선 두가지로 보는데 normalized parameter init와 activation normalization layers이다. 어쨋든 이건 이렇다 치고 이미지분류 이외에도 디텍터를 학습할때도 저런 normalization안쓰면 학습은 어렵다고 말한다. (맞음ㅇㅇ)  대표적으론 Batch Normalization (BN) 이 있긴하다. 근데 디텍션에서는 주로 고해상도 영상을 다루고 이에 따라 한정된 메모리자원에서는 배치사이즈를 조금 줄여서 쓸 수밖에 없다. 이런식으로 배치사이즈를 줄여버리면 BN의 성능이 후져진다. 이러한 이슈는 만일 우리가 pre-training을 한다면 fixed param으로 해결해 버릴 수가 있지만, 초장부터 학습하는 본 연구에서는 이러한 방법은 전제자체가 잘못되었다. 그래서 이친구들이 대체로 생각한 두가지 normalization 기법을 소개한다. (1) Group Normalization (GN) : 배치의 차원과는 독립적인 연산을 함. 배치크기와 아무 상관 없음. (2) Synchronized Bat...

[논문 리뷰] Rethinking ImageNet Pre-training (001)

본 논문은 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. RBM, 오토인코더 쉬운 설명 http://www.whydsp.org/283#comment7131899 2. GAN 설명 강의자료 https://www.slideshare.net/ssuser77ee21/generative-adversarial-networks-70896091?from_action=save