기본 콘텐츠로 건너뛰기

[논문 리뷰] 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 Batch Normalization (SyncBN) : 멀티gpu 기반의 BN. 뭐 당연히 멀티gpu를 위한 좀 효율화된 BN이겠지...

그래서 본 실험에서는 GN, SyncBN을 사용해 pre-training없이 처음부터 쌩으로 학습한다. 또 여담으로 appropriately normalized initialization 을 사용해서 VGG로 디텍터를 학습시키면 BN, GN조차 필요없이 쌩으로 학습이 가능한것도 말해준다.

3.2 Convergence


 당연히 ImageNet으로 pre-training된 모델보다 비슷하게 수렴하는건 가능하지도 않고 미친소리이다. 지금 이 논문에서는 수렴을 빨리 하자가 아니라 시간만 주어진다면 결국엔 이놈이나 저놈이나 그게 그거가 된다를 말하는 걸 다시한번 상기하자.



 ImageNet으로 pre-training한 모델은 ImageNet의 semantic information과 low-level feature (영상에서는 edge, texture같은 걸 의미함)를 학습하는 반면 쌩으로 첨부터 학습하는건 low-feature든 high-feature든 싹다 학습해야 하기 때문에 당연히 ImageNet보단 더 많이 학습시키는 건 자명한 사실이다.

픽셀 하나하나를 샘플 수로 볼 때, ImageNet기반 pre-training과 random initialization기반 from-scratch케이스는 거의 비슷하다! 

With this motivation, 이분들은 일단 더 많이 학습해야 한다고 주장한다. 대신에 기존의 논문들은 pre-training에 들였던 시간을 제쳐둔채 fine-tuning에 들인 시간만 논하는데 그러지 말아보자는 의견과 함께...세가지를 기준으로 한번 비교를 해보는데
1. images : 정말 이미지 개수
2. instances : 이미지내에 우리가 원하는 라벨의 객체들의 개수
3. pixels : 귀찮다.. 말그대로 픽셀
암튼 그 비교가 Figure 2에 기술되어있는데

pre-train이 안된대신 COCO를 3배 더 학습하는 것을 전제조건으로 한다. 그것으로부터 일단 이미지 장수만 보면 엄~청나게 큰 차이가 난다. ImageNet기반 pre-training이 훨씬 학습을 더 많이 하는 것처럼 보인다.
하지만 instance를 놓고보면 차이가 좁혀지는데 일단 ImageNet은 딱 하나의 라벨만 있는 반면 COCO에는 최대 7개까지 한 이미지에 있을 수 있다. 그러니 학습할 분량이 단순 이미지 장수로 비교하는 것보단 늘어난다.
또한 가장 중요한 픽셀단위로 볼때, ImageNet이 224x224인 반면 COCO는 무려 800x1333의 high-resolution이다. 그래서 각 인스턴스들의 픽셀로 놓고보니 거의 그 차이가 좁혀진다.

즉 이게 시사하는 바는 random initialization으로 pre-train없이 학습하는건 '픽셀'의 관점에서 볼 때, 충분한 샘플 수가 필요하단 것을 말한다.


음 여기까지가 3장 메소드 설명이고
이제 이 논문의 가장 핵심인 실험결과들 설명이 나오는데...
길다...

다음 포스팅에서 다루겠다.

댓글

이 블로그의 인기 게시물

[논문 리뷰] 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