본문 바로가기

AI/논문리뷰

[논문리뷰] Momentum Contrast for Unsupervised Visual Representation Learning

논문링크 : https://arxiv.org/abs/1911.05722

 

Momentum Contrast for Unsupervised Visual Representation Learning

We present Momentum Contrast (MoCo) for unsupervised visual representation learning. From a perspective on contrastive learning as dictionary look-up, we build a dynamic dictionary with a queue and a moving-averaged encoder. This enables building a large a

arxiv.org

 

해당 논문은 Facebook AI Reserach (FAIR)에서 발표한 Self-supervised learning(SSL) method인 MoCO에 관한 논문이다. SimCLR과 같이 SSL의 milestone 논문으로 대표적인 SSL 방법으로 사용된다. 해당 논문은 memory bank를 사용한 이전 논문의 단점을 개선하였으며, 다양한 task에서의 실험결과를 보여주었다.

 

-Introduction

최근 Unsupervised Representation learning은 NLP 분야에서 성공적인 성과를 거두었지만, computer vision 분야에서는 여전히 supervised learning기반 pre-training 모델이 dominant하다. 그 이유는 NLP 분야의 signal은 discrete space를 가지는 반면에, vision task는 continous한 space를 갖기 때문이라고 논문에서는 설명한다.

 

따라서, vision task는 (a)Large dictionary와 (b)Consistency dictionary 조건을 만족하는 dynamic dictionary를 구축하는 것이 vision task에서의 continous space로 발생하는 문제점을 해결할 수 있을것이라고 제시한다. 해당 dictionary는 데이터의 representation을 담는 queue라고 생각을 하면 되고, 오른쪽 그림에서는 kn값들을 저장하는 dictionary이다. 이를 어떻게 이용하는지는 뒤에서 다시 설명한다.

 

또한 해당 unsupervised learning은 특정 task의 네트워크 (e.g classifier)를 모두 학습했던 semi-supervised, supervised learning과 다르게 feature extaract를 학습하는 것을 주요 목표로 한다. 이렇게 잘 학습된 feature extractor는 downstream task에서 fine tuning하여 사용되어질 수 있다.

 

 

-Contrastive Learning Dictionary Look-up

해당 논문에서 query와 key라는 개념이 나오는데, q(query), key(k)는 encoder를 통과한 representation이다. 이 때, 앞에서 언급한 dictionary는 여러 미니배치 이미지로부터 통과된 key representation을 가지고 있는데, query encoder를 통과한 representation과 동일한 이미지를 갖는 key representation은 dictionary 안에서 한개가 존재한다. 이렇게 query의 동일한 이미지에 대한 key를 여기서는 positive key, 나머지 다른 key 들을 negative key라고 말한다.

 

입력된 query가 positive와 가깝고, negative와 멀리 떨어지게 하기 위한 Loss term을 설계하기 위해서 InfoNCE를 사용했다. 해당 Loss는 위와 같이 식을 세울 수 있다. q와 k의 내적은 consine similarity metric으로 가까울수록 값이 커지고 멀수록 값이 작아진다. (-1~1의 값을 가진다.) 따라서 분모는 작아질수록 분자가 커질수록 Loss가 작아지기 때문에 해당 Loss를 이용했다고 직관적으로 이해할 수 있다.

 

각 query와 key의 encoder함수는 f식을 사용하여 맨 아래 줄과 같이 표현되었으며, 이때 x는 image, patches, context를 사용할 수 있다고 논문에서는 언급한다.

 

 

-Momentum Contrast

1. Dictionary as queue

 해당 슬라이드는 queue로 구현된 dictionary를 보여주며, 이러한 queue는 하나의 미니배치가 아닌 이전시점의 여러 미니배치에 대한 key representation을 비교할 수 있다는 장점이 있다. 이러한 queue는 미니배치 사이즈보다 훨씬 더 크기 때문에, 여러개의 미니배치를 비교하여 성능을 올려주는데 기여한다. (미니배치 사이즈가 클수록 비교할 수 있는 데이터의 수가 많아며, 가장 이상적인 것은 Full Batch) 그림에서 미니배치 사이즈는 4이고, 12개를 담을 수 있는 queue를 설명했다. queue가 가득 찼을때, 새로운 key가 enqueue되면, 가장 오래된 key가 dequeue된다. dequeue되는 key는 오래된 encoder로 부터 encoding된 representation이며, 새로운 key와의 가장 덜 consistent하기 때문에, 이러한 오래된 key부터 dequeue하는 것은 beneficial하다고 논문에서는 설명한다.

 

2. Momentum update

key와 query에 대한 encoder를 학습시키는 naive한 방법은 q encoder를 학습한 뒤에 학습된 q encoder를 copy하여 key encoder로 사용하는 것이다. 하지만 이러한 방법은 실험적으로 안좋은 결과를 보여주며, 빠르게 변화하는 k encoder의 update는 key representation의 consistency를 감소시켜 안좋은 결과를 야기한다. key encoder가 빠르게 update 되면, queue안에 있는 이전 시점의 representation과의 consistency가 감소하여 안좋은 결과가 나왔을 것이라 생각한다.

따라서 해당 논문에서는 momentum update라는 방식을 사용하였으며, 왼쪽 맨 아래는 해당 식을 나타내고, 오른쪽은 실험결과를 나타낸다.

 

3. Relations to previous mechanisms

해당 논문은 우리가 일반적으로 생각할 수 있는 end-to-end 방법과 이전 논문의 방법인 memory bank 방법과의 차이점을 설명한다. end-to-end 방법은 k-encoder와 q-encoder에 동시에 backpropagation을 하는 방법이다. 이러한 방법을 사용하면, 비교할 수 있는 key representaiton의 수가 mini batch 만큼 사용할 수 없기 때문에,  dictionary size(비교하는 representation의 수)가 작아지는 문제점이 발생한다.

 

Memory bank 방식은 dataset안에 있는 모든 data에 대한 representation을 사용한다. 이러한 방법은 large dictionary를 사용하지만, 몬테카를로 approximation을 사용하여 sampling한 representation에 대해서만 update하므로, 오래된 representation은 극단적으로 계속 update가 되지 않을 수 있다. (sampling 되지 않으면 update가 되지 않기 때문에) 따라서 이러한 memory bank는 encoder가 consistent하지 않다는 문제점이 발생한다.

 

따라서 논문에서 제안한 MoCo는 두 가지 단점을 개선하여 large하고 consistent한 dictionary를 이용할 수 있다.

 

 

-Pretext Task

왼쪽의 알고리즘은 MoCo의 알고리즘을 나타낸다. self supervised learning은 pretext task를 해결하면서 update를 수행하는데, MoCo에서는 다양한 pretext 중 memory bank에서 사용한 pretext인 instance discrimination task를 사용했다.

 

이상 논문리뷰입니다 :)