3. Momentum Contrast for Unsupervised Visual Representation Learning
고급기계학습 2주차 3번째 논문
Momentum Contrast for Unsupervised Visual Representation Learning에 대해서 리뷰를 해보자
논문 초록에서는 MoCo(Momentum Contrast)라는 비지도 시각적 표현 학습 방법을 소개합니다. 이 연구는 contrastive learning을 사전 학습된 사전(dictionary) 검색 과정으로 보고, 동적 사전 구축을 위해 큐(queue)와 이동 평균 인코더를 사용하는 새로운 접근 방식을 제안합니다. 이 방법은 실시간으로 크고 일관성 있는 사전을 구축하며, 비지도 학습을 용이하게 합니다. MoCo는 ImageNet 분류에서 흔히 사용되는 선형 프로토콜을 통해 경쟁력 있는 결과를 제공합니다.
더 중요한 점은 MoCo로 학습한 표현이 다양한 하류 작업(downstream tasks)으로 잘 전달된다는 것입니다. PASCAL VOC, COCO 등의 데이터셋에서 7개의 탐지/세분화(detection/segmentation) 작업에 대해 MoCo를 통해 비지도 사전 학습이 지도 사전 학습 대비 우수한 성능을 보이거나 때로는 큰 차이로 능가하기도 합니다. 이는 많은 비전 작업에서 비지도와 지도 표현 학습 사이의 격차가 크게 줄어들었음을 시사합니다.
이 초록에서 설명하는 주요 개념은 다음과 같습니다:
1) 동적 사전 구축 : MoCo는 데이터 샘플의 큐와 이동 평균을 기반으로 한 인코더를 사용하여, 비지도 학습에 적합한 크고 일관된 사전을 실시간으로 구축합니다.
MoCo(Momentum Contrast)에서의 동적 사전 구축은 비지도 학습에서 중요한 혁신 중 하나입니다.
이 과정은 특히 대조학습(contrastive learning) 환경에서 중요한 역할을 합니다. 대조학습은 비지도 방식으로 표현 학습을 수행하는 데 사용되는데, 이때 주어진 입력(질의)에 대해 유사한 입력(양의 키)과 구별할 수 있도록 학습하는 방법입니다. 그러나 이러한 학습은 효과적으로 수행하기 위해 크고 다양한 예제(키) 집합을 필요로 합니다. MoCo는 이 문제를 동적 사전 구축 접근 방식을 통해 해결합니다.
1) 동적 사전 구축의 원리
1. 데이터 샘플의 큐 : MoCo는 고정 크기의 큐를 사용하여 데이터 샘플(키)을 저장합니다. 이 큐는 학습 과정에서 지속적으로 업데이트되며, 새로운 샘플이 추가될 때 가장 오래된 샘플이 제거됩니다. 이 방식은 대조학습에서 필요한 큰 사전을 효율적으로 관리할 수 있게 해 줍니다.
2. 이동 평균을 기반으로 한 인코더 : MoCo는 두 개의 인코더를 사용합니다. 하나는 질의(q)를 인코딩하기 위한 인코더이고, 다른 하나는 키(k)를 인코딩하기 위한 인코더입니다. 키 인코더는 질의 인코더의 이동 평균으로 업데이트되는데, 이는 키 인코더의 파라미터가 질의 인코더의 파라미터보다 느리게 변화하도록 합니다. 이 방법은 사전에 있는 표현들이 시간에 따라 일관되게 유지되도록 하여, 학습의 안정성을 높이고 효율을 개선합니다.
2) 동적 사전 구축의 이점
1. 대규모 사전 관리 : 큐를 사용함으로써, MoCo는 학습에 필요한 대규모 사전을 효율적으로 관리할 수 있습니다. 이는 비지도 학습에서 다양한 표현을 포착하는 데 도움이 됩니다.
2. 일관성 있는 학습 : 이동 평균 인코더를 통해 사전 내의 샘플 표현이 시간에 걸쳐 일관되게 유지됩니다. 이는 학습 과정에서의 안정성을 보장하며, 결과적으로 더 나은 학습 성능을 이끌어냅니다.
3. 비지도 학습의 효율성 : 이러한 접근 방식은 비지도 학습에서 효과적인 표현 학습을 가능하게 하여, 지도 학습에 필요한 레이블 작업 없이도 뛰어난 성능을 달성할 수 있습니다. 동적 사전 구축 방식은 MoCo를 비롯한 비지도 학습 방법론에서 중요한 기술적 발전으로, 복잡한 비전 태스크에서도 유용하게 활용될 수 있습니다.
2) Contrastive Learning : 인코딩된 "질의(query)"가 매칭되는 "키(key)"와 유사하고 다른 키와는 불유사하게 학습되도록 하는 접근법입니다. 이는 비지도 목표 함수를 최소화하여 인코더 네트워크를 훈련시킵니다.
3) 하류 작업 전달 : MoCo로 학습된 표현은 여러 비전 작업으로 잘 전달되며, 지도 학습 방법과 비교하여 경쟁력 있는 또는 우수한 성능을 보입니다. 이는 비지도 학습이 실질적인 애플리케이션에 유용하게 사용될 수 있음을 의미합니다.
자연어 처리(NLP) 분야에서는 GPT와 BERT와 같은 모델들이 비지도 학습 방식으로 상당한 성공을 거두었지만, 컴퓨터 비전 분야에서는 여전히 지도 학습이 우세하며 비지도 학습 방법들은 지도 학습 방법에 비해 성능이 뒤쳐지는 경향이 있습니다. 이는 컴퓨터 비전과 자연어 처리에서 다루는 신호의 공간이 갖는 차이에서 기인한다고 논문에서는 언급합니다.
주요 포인트
- 자연어 처리와의 비교: 자연어 처리 분야에서는 비지도 방식의 표현 학습이 큰 성공을 거두었습니다. 반면, 컴퓨터 비전 분야에서는 지도 학습이 주로 사용되며, 비지도 방식은 아직 뒤처지는 상황입니다. 이러한 차이는 두 분야에서 다루는 데이터의 특성에서 기인합니다.
- 시그널 공간의 차이: 자연어 처리에서는 이산적인 신호 공간(단어, 서브워드 단위 등)을 다루는 반면, 컴퓨터 비전에서는 연속적이고 고차원적인 신호 공간을 다룹니다. 컴퓨터 비전에서는 이미지나 패치와 같은 원시 신호가 인간 의사소통을 위해 구조화되지 않았기 때문에, 이를 위한 효과적인 사전(dictionary) 구축 방법이 필요합니다.
- 대조 손실(Contrastive Loss) 방법의 도입: 최근의 연구들에서는 대조 손실을 기반으로 하는 비지도 학습 방법들이 주목받고 있습니다. 이러한 방법들은 동적 사전을 구축하면서, 인코딩된 샘플(키)들 사이의 유사성을 최대화하는 방식으로 작동합니다. 즉, 인코딩된 '질의(query)'가 매칭되는 '키(key)'와 유사하고 다른 키들과는 불유사하게 되도록 학습하는 것입니다.
- MoCo의 제안: 서론에서는 MoCo(Momentum Contrast)를 통해 비지도 방식의 표현 학습에서 대조학습의 한계를 극복하고자 하는 방안을 제시합니다. MoCo는 큐와 이동 평균 인코더를 활용하여, 학습 과정 중에 크고 일관된 사전을 동적으로 구축하는 새로운 접근 방법을 도입합니다. 이를 통해 비지도 학습에서도 지도 학습에 버금가는 성능을 달성할 수 있음을 주장합니다.
다이어그램에서는 두 가지 주요 구성 요소를 볼 수 있습니다:
1. 인코더(encoder) : 입력 이미지 $ x_{query}$를 받아서 인코딩된 쿼리 $ q $로 변환합니다. 이 인코더는 신경망일 수 있으며, 입력 이미지의 특징을 추출하는 역할을 합니다.
2. 모멘텀 인코더(momentum encoder) : 데이터 샘플 $ x_{key} $들을 인코딩하여 키 $ k_0, k_1, k_2, \ldots $로 변환합니다. 이 모멘텀 인코더는 일반 인코더의 파라미터를 이용하여 업데이트되지만, 모멘텀 방식으로 인해 변화가 더욱 부드럽고 일관되게 이루어집니다.
이러한 구성 요소들의 상호 작용을 통해, MoCo는 다음과 같은 프로세스를 구현합니다:
1) 큐(queue)를 통해 동적 사전을 구축합니다. 이 큐는 현재 미니배치(mini-batch)로부터 인코딩된 키들을 저장하고, 가장 오래된 미니배치는 큐에서 제거됩니다. 이를 통해 사전의 크기가 미니배치의 크기와 분리(decoupling)되어, 더 크고 일관된 사전을 유지할 수 있습니다.
2) 대조 손실(contrastive loss)을 사용하여 학습을 진행합니다. 쿼리 $ q $는 사전 내의 키 $ k $들과 비교되어, $ q $와 유사한 키(양의 키)에 대해 손실이 최소화되고, 나머지 키들(음의 키)에 대해 손실이 최대화되도록 합니다.
3) 유사도(similarity)는 쿼리 $ q $와 각 키 $ k $들 사이의 유사도를 계산하여 대조 손실에 기여합니다. 이 유사도는 특히 학습 과정에서 중요한 역할을 하며, $ q $가 어떤 키와 가장 유사한지를 판별하는 데 사용됩니다.
Contrastive learning을 dictionary look-up작업으로 바라보는 관점을 소개하고 설명합니다. 이 접근법은 이미지와 같은 연속적인 신호 공간에서 유의미한 표현을 학습하는 방법으로 사용됩니다.
대조학습(Contrastive Learning)의 기본 개념:
대조학습에서 중심 개념은 데이터 샘플 사이의 유사성(similarity)과 차이(dissimilarity)를 학습하는 것입니다. 이를 위해 '사전(dictionary)'이라는 개념을 사용하는데, 여기서 사전은 이미지나 패치의 특징 벡터들을 포함하는 것을 의미합니다.
사전 검색(Dictionary Look-up)으로서의 대조학습:
- 질의(Query) : 하나의 데이터 샘플(이미지)가 인코더를 통해 벡터로 변환되어 질의 $ q $가 됩니다.
- 사전(Dictionary Keys) : 다른 데이터 샘플들이 인코더를 통해 변환된 벡터들이 사전의 '키(key)'로 사용됩니다.
- 목표 : 질의 $ q $에 대응되는 사전의 키 $ k+ $를 찾는 것입니다. 즉, $ q $와 가장 유사한 $ k+ $를 사전에서 찾아내는 것이 목표입니다.
학습 프로세스:
- 각 질의에 대해, 그에 상응하는 정확한 키(positive key)가 사전에서 정확히 매칭되도록 학습합니다.
- 질의는 정확한 키에 가까워져야 하고(유사도가 높아져야 하고), 다른 모든 키들로부터 멀어져야 합니다(유사도가 낮아져야 합니다).
- 이 과정은 대조 손실 함수를 최소화하여 달성되며, 일반적으로 소프트맥스 함수를 기반으로 하는 분류 작업으로 해석될 수 있습니다.
MoCo의 혁신적 접근:
MoCo는 이러한 대조학습의 프레임워크를 활용하면서, 두 가지 주요 혁신을 제안합니다:
1. 큐를 사용한 동적 사전 구축 : 사전의 키는 큐에 저장되며, 새로운 데이터 샘플이 들어올 때마다 업데이트됩니다. 이로 인해 사전의 크기는 미니배치의 크기에 제한받지 않고 더욱 커질 수 있습니다.
2. 모멘텀 업데이트를 통한 일관성 유지 : 키를 인코딩하는 인코더는 모멘텀을 기반으로 업데이트되어 시간에 따른 변화가 부드러워집니다. 이는 학습 과정에서 일관성을 유지하고, 이에 따라 사전 검색의 정확성을 높입니다.
대조적 손실 함수(contrastive loss function)을 나타내며, InfoNCE 손실의 한 형태입니다. 이 손실 함수는 대조학습에서 널리 사용되며, 모델이 주어진 질의 $ q $에 대한 정확한 키 $ k_+ $를 다른 모든 키 $ k_i $와 구별하도록 학습하는 데 사용됩니다.
식의 구성 요소:
- $ q $: 인코딩된 질의 벡터
- $ k_+ $: 인코딩된 양의 키 벡터(정확한 매치)
- $ k_i $: 사전에 있는 인코딩된 키 벡터들, 양의 키를 포함한 모든 키
- $ K $: 사전의 크기, 즉 비교 대상이 되는 키 벡터의 총 수
- $ \tau $: 온도 매개변수(temperature parameter), 유사도 점수의 스케일을 조정합니다
식의 의미:
손실 함수 $ \mathcal{L}_q $는 소프트맥스 함수를 사용하여, 선택된 양의 키 $ k_+ $와 질의 $ q $ 사이의 유사도 점수$(exp(\( q \cdot k_+ / \tau \)))$를, 같은 질의 벡터와 모든 키 벡터들 사이의 유사도 점수의 합$(exp(\( q \cdot k_i / \tau \)))$으로 나눈 값의 음의 로그를 취한 것입니다.
모델 학습에서 이 손실 값을 최소화하려고 할 때, 모델은 $ q $와 $ k_+ $ 사이의 유사도를 최대화하고, $ q $와 나머지 모든 키 $ k_i $ 사이의 유사도를 최소화하는 방향으로 가중치를 조정하게 됩니다. 온도 매개변수 $ \tau $는 이 유사도 점수들을 조정하여, 학습의 난이도를 제어하는 데 사용됩니다. 일반적으로 $ \tau $ 값이 낮을수록 양의 키와 음의 키 사이의 구별이 더 명확해져야 합니다.
이 비교는 질의(query)와 키(key)가 어떻게 유지되고 인코딩 되는지의 차이점을 보여주고 있습니다.
(a) end-to-end:
- 전통적 대조학습 접근법입니다. 질의 $ q $와 키 $ k $가 각각 별도의 인코더를 통해 생성됩니다.
- 질의 인코더와 키 인코더는 동시에 업데이트 될 수 있으며, 역전파를 통해 end-to-end로 학습됩니다.
- 여기서 발생하는 문제점 중 하나는 인코딩 과정에서의 키의 일관성 유지가 어렵다는 점입니다.
(b) memory bank:
- 이 방식에서는 키 표현이 메모리 은행에서 샘플링됩니다.
- 메모리 은행은 미리 계산된 키 표현들을 저장하는 고정된 테이블입니다.
- 메모리 은행은 주기적으로 업데이트되어야 하며, 업데이트 빈도는 학습의 효율성에 영향을 미칩니다.
(c) MoCo:
- 모멘텀 업데이트 메커니즘을 사용하는 MoCo의 접근법입니다.
- 질의 인코더는 일반적인 방식으로 업데이트되지만, 키 인코더는 모멘텀을 사용하여 업데이트됩니다.
- 새로운 키는 "on-the-fly" 즉, 실시간으로 생성되고 모멘텀 인코더에 의해 인코딩됩니다. 이 인코더는 이전 가중치의 이동 평균을 사용하여 느리게 변화합니다.
- MoCo는 일관된 키 인코딩을 유지하면서도 큐 메커니즘을 통해 사전의 크기를 동적으로 관리합니다.
MoCo의 핵심 혁신은 모멘텀 인코더를 통해 키의 표현이 일관되게 유지되도록 하는 것입니다. 이는 질의에 대한 키의 매칭이 더 안정적이고 정확하게 이루어지게 함으로써, 모델의 대조적 학습을 향상시킵니다. 이러한 방식으로 MoCo는 대규모 비지도 학습에서 높은 성능을 달성합니다.
Momentum Contrast
MoCo(Momentum Contrast) 방법론의 핵심적인 부분, 즉 모멘텀 기반의 업데이트 메커니즘에 대해 설명합니다. 이 모멘텀 기법은 대조학습에서 사용되는 두 개의 인코더 사이의 관계를 관리하는 데 중요한 역할을 합니다.
모멘텀 기반 업데이트의 개념
모멘텀 기반 업데이트는 인코더 네트워크의 가중치를 갱신할 때, 과거의 가중치 업데이트를 일정 비율로 고려하는 방식입니다. 이는 시간에 따른 파라미터의 변화를 부드럽게 하고, 네트워크가 더 안정적으로 특징을 학습하도록 돕습니다.
MoCo에서의 구체적인 역할:
1. 두 인코더의 사용 : MoCo는 두 개의 인코더를 사용합니다. 하나는 쿼리(query)를 인코딩하는 인코더이고, 다른 하나는 키(key)를 인코딩하는 모멘텀 인코더입니다.
2. 모멘텀 인코더 : 키 인코더는 쿼리 인코더의 가중치의 이동 평균을 사용하여 업데이트됩니다. 이는 모멘텀 업데이트라고 알려져 있으며, 이 때문에 네트워크가 더 안정적으로 특징을 잡아내고 일관된 표현을 학습할 수 있습니다.
3. 이동 평균: 키 인코더의 가중치는 다음과 같이 계산됩니다:
$[ \theta_k \leftarrow m\theta_k + (1-m)\theta_q ]$
여기서 $ \theta_k $는 키 인코더의 파라미터, $ \theta_q $는 쿼리 인코더의 파라미터, 그리고 $ m $은 모멘텀 계수로, 0과 1 사이의 값입니다.
모멘텀의 이점:
- 일관성: 사전에 있는 키 표현의 일관성을 유지합니다. 이는 특히 사전의 크기가 매우 클 때 중요합니다.
- 분리 가능성(decoupling) : 데이터 샘플의 큐를 사용함으로써, 인코더 업데이트의 빈도와 미니배치 사이즈로부터 사전 구축을 분리합니다. 이를 통해 더 큰 사전을 사용하여 대조학습을 수행할 수 있습니다.
- 데이터의 효율적 사용 : 모멘텀 인코더는 오래된 데이터 샘플들로부터도 유용한 정보를 추출하고 보존합니다, 이로 인해 모든 미니배치에 대한 데이터를 효율적으로 활용할 수 있습니다.
.