본문 바로가기

Machine Learning Tasks/Self-Supervised Learning

Self-Supervised Learning - MoCo (2)

반응형

이전 포스트

[Machine Learning/Unsupervised Learning] - Self-Supervised Learning - MoCo (1)


Experiments

MoCo 에서는 1) 1000 개의 클래스에 대해 백만 여개의 이미지를 포함한 ImageNet-1M (IN-1M), 2) 인스타그램의 공개된 1억여개의 이미지르 구성된 Instagram-1B (IG-1B) 를 이용하여 비지도 pre-training을 수행합니다.

Linear classification

일반적인 비지도 pre-training 의 성능 측정 방법으로 고정된 representation에 fully-connected layer/softmax 로 구성된 linear classifier를 올려 놓고 지도 학습을 수행하는 linear classifier 성능 평가입니다.

먼저 end-to-end/memory bank/MoCo 훈련 방식을 비교합니다. Figure 3을 보면 모든 메카니즘이 딕셔너리가 클수록 성능이 좋은 것을 볼 수 있습니다.

end-to-end 방식은 딕셔너리 사이즈 $K$가 작을 때 MoCo와 성능이 비슷하지만 GPU 메모리 제약으로 매우 큰 $K$를 사용할 수 없습니다. 또한 매우 큰 배치 사이즈를 이용한 훈련은 learning rate을 섬세하게 조절해야 하는 까다로운 문제이므로 $K$가 크다고 해서 end-to-end 방식의 성능이 계속 좋으리라 보장할 수 없습니다. memory bank 방식은 $K$ 크기에 상관이 없지만 예전 encoder 로부터 추출된 representation 이므로 전반적인 성능이 달립니다.

다음은 $K=4096$ 으로 고정시킨 이후에 momentum coefficient $m$ 에 따른 성능입니다. Momentum 이 없을 경우 아예 훈련이 제대로 되지 않는 것을 볼 수 있고 전반적으로 $m$이 1에 근접해야 성능이 좋았습니다.

마지막으로 다른 방법들과의 성능 비교입니다. 가장 기본적인 ResNet-50 (R50)을 이용했을 때 60.6% 로 다른 경쟁 모델에 비해 성능이 더 좋았습니다. 또한 다른 방법들과 마찬가지로 큰 모델일수록 성능이 더 좋습니다.

 

Transferring features

비지도 학습의 주요 목적은 학습한 feature 를 다른 object detection/segmentation 등의 다른 downstream task에 성공적으로 적용하는 것입니다. 그동안은 ImageNet을 이용한 지도 pre-training 이 주류를 이루었는데요, 이번 섹션에서는 supervised pre-training 에 비해 성능을 비교합니다. 특히, 주목할 점은 공정한 비교를 위해 MoCo와 supervised pre-training의 하이퍼 파라미터들과 훈련 스케쥴을 똑같이 설정한다는 것입니다. 이러한 세팅은 MoCo에 불리하겠지만 MoCo는 굉장히 놀라운 성능을 보여줍니다.

먼저 PASCAL VOC 데이터에 대한 object detection 성능 결과입니다. Detector는 Faster R-CNN 이며 모든 레이어에 대해 fine-tuning 합니다. R50-dilated-C5 는 ResNet에서 5번째 컨볼루션 스테이지를 2만큼 dilation 시킨 것이며 R50-C4은 backbone이 4번째 컨볼루션 스테이지에서 끝나는 모델입니다.

Table 3은 다른 contrastive loss 메카니즘과 달리 MoCo의 성능이 더 좋은 것을 보입니다.

 

COCO object detection 의 detector는 Mask R-CNN이며 backbone으로 FPN이나 R50-C4를 사용합니다. 1x schedule은 대략 12 epoch 정도를 의미합니다. Table 5에서 볼 수 있듯이 다른 baseline에 비해 성능이 더 좋고 특히 fine-tuning schedule을 길게 (2x) 잡았을 때 성능 향상이 더 컸습니다.

 

Discussion

Fine-tuning in ImageNet

Linear evaluation 은 보통 비지도 학습으로 얻은 representation 을 고정시킨 이후에 성능을 측정합니다. 하지만 일반적으로는 전체 레이어에 대해 end-to-end 방식으로 fine-tuning 하게 되는데요. 랜덤하게 초기화된 scratch와 IG-1B 로 pre-training 한 이후의 성능을 비교했을 때 MoCo가 성능이 0.8% 더 증가했습니다.

COCO longer fine-tuning

본 실험에서는 supervised baseline이 긴 훈련으로 이득이 클 것 같아 1x/2x (12/24 epochs) 정도로 fine-tuning iteration을 제한했습니다. 여기서는 6x (72 epochs) 정도로 길게 fine-tuning 시켰을 때 성능을 비교합니다. 당연하게도 모든 방법의 성능이 증가하나 MoCo 의 성능 증가가 더 큰 것을 확인할 수 있습니다.

Shuffling BN

Shuffling BN이 없을 경우 1개의 positive 샘플을 구분하는 pretext task에 때해 모델이 과적합되는 현상이 발생합니다. 이는 $q$와 $k$가 동일한 sub-batch 통계를 가지고 있을 때 positive 샘플을 쉽게 구분하도록 cheating 할 수 있는 signal을 제공한다고 생각할 수 있습니다.

 

참조


다음 포스트

[Machine Learning/Unsupervised Learning] - Self-Supervised Learning - MoCo v2

반응형