[논문리뷰] Representation Learning with Contrastive Predictive Coding
https://arxiv.org/abs/1807.03748
Representation Learning with Contrastive Predictive Coding
While supervised learning has enabled great progress in many applications, unsupervised learning has not seen such widespread adoption, and remains an important and challenging endeavor for artificial intelligence. In this work, we propose a universal unsu
arxiv.org
Abstract
본 연구에서는 고차원 데이터를 기반으로 유용한 표현을 추출하는 universal unsupervised learning 방식인 Contrastvie Predictive Coding (CPC)를 제안한다.
강한 autoregressive model을 사용하여 미래의 latent space에서 미래를 예측함으로써 표현을 학습한다.
확률적 대조 손실을 사용하여 latent space가 미래 샘플을 예측하는 데 최대한 유용한 정보를 포착하도록 유도한다.
해당 접근법은 음성, 이미지, 텍스트, 3d 환경인 서로 다른 도메인에서 강력한 성능을 발휘하는 유용한 표현을 학습할 수 있다.
Introduction
라벨이 있는 데이터를 사용한 지도 학습은 여전히 데이터 efficiency, robustness, generalization의 과제가 남아있다.
단일 지도 학습에 특화된 특징은 다른 도메인으로 전의가 제한적이다.
-> 이미지 분류를 위한 특징은 이미지 캡셔닝에 필요한 정보(색상, 개수 세기 등)를 포함하지 않음
반면, 비지도 학습은 범용적인 표현 학습을 위해 중요하지만, 아직 지도 학습만큼의 발전을 보이지 못했다.
대부분 공통적인 비지도 학습의 전략은 predict future, missing or contextual information을 하는 것이다.
예측 부호화 (Predictive Coding)
미래, 누락, 또는 문맥 정보를 예측하는 전략으로, 데이터 압축과 신경과학 이론에서 유래했다.
- 인접 단어를 예측함으로써 단어 표현을 성공적으로 학습한 사례
- 이미지의 경우, 회색조에서 색상을 예측하거나 이미지 패치의 상대적인 위치를 예측하는 것이 유용하다는 것도 확인
본 연구에서는 우리가 예측하는 관련 값의 문맥이 동일한 고수준 잠재 정보에 조건적으로 의존한다고 가정한다.
그리고 이를 예측 문제로 전환함으로써 자동으로 표현 학습에 유용한 특징을 추론하게 된다.
예측하려는 값(미래의 데이터)가 이미 알고 있는 데이터의 문맥(현재 상황)에 따라 달라진다.
즉, 우리가 미래에 어떤 일이 일어날지를 예측하려면, 현재 데이터가 담고 있는 중요한 정보(고수준 잠재 정보)를 먼저 이해해야 한다.
현재 데이터 속에 숨겨진 중요한 정보가 미래 데이터와 연결되어 있어서, 그 연결을 찾아내는 것이 핵심이다. 이 과정에서 예측 문제로 바꿔서 처리하면, 데이터가 가지고 있는 중요한 특징들을 자동으로 추출할 수 있게 된다.
Contrastive Predictive Coding 대조 예측 부호화 ; CPC
1. 잠재 공간으로 압축 : 데이터를 압축하여 더 쉽게 예측할 수 있는 잠재 임베딩 공간을 생성한다.
2. 자기회귀 모델 사용 : 잠재 공간에서 미래를 예측하는 자기회귀 모델을 사용한다.
3. Noise-Contrastive Estimation (NCE) : 손실 함수를 NCE로 사용해 전체 모델을 종단 간 (end - to - end) 학습한다.
즉, 미래 예측을 통해 데이터의 고수준 정보를 학습함으로써, 다양한 데이터 모달리티에서 범용적이고 유용한 표현을 얻는 방법을 제안한다.
제안하는 모델은 고차원의 신호에서 서로 다른 부분이 공유하는 근본적인 정보를 잘 학습하는 동시에 저차원 정보와 노이즈를 제거하는 것이 목표이다.
time series와 high dim modeling 같은 구조에서 미래를 멀리 예측하는 경우, 공유되는 정보의 양은 적어지며 모델은 글로벌한 구조를 추론해야한다. (slow features)
slow features : 짧은 시간 간격에서 잘 변하지 않는 중요한 정보
- 음성에서의 음소 및 억양
- 책에서의 이야기 줄거리 : 책에서 이야기의 흐름은 한 페이지에서 갑자기 바뀌지 않음
정리하자면, 고차원 신호를 다룰 때, 데이터의 다른 부분들이 서로 관련된 정보를 어떻게 공유하고 있는지 이해하는 것이 중요하다. 여기서 지역적 정보는 짧은 구간에서 발생하는 작은 변화들을 말하는데, 이런 정보는 쉽게 예측할 수 있지만 큰 맥락에서 중요하지 않다. 그래서 본 논문에서는 더 큰 맥락, 즉 글로벌한 정보가 중요한 특징이라고 말한다.
지역적 정보를 예측하는 것은 어렵지 않지만, 장기적인(global) 정보나 큰 패턴을 추론하는 것은 어렵다. 그래서 slow features 가 중요한데, 느린 특징들은 데이터의 전반적인 구조나 흐름을 이해하게 도와주기 때문이다.
고차원 데이터를 예측하는 것의 도전 중 하나는 unimodal losses가 유용하지 않다는 것이다.
계산 비용이 많이 들고, 문맥(c)을 무시한 채 데이터(x) 내의 복잡한 관계를 모델링하는 데 용량을 낭비한다.
-> 이미지는 수천 비트의 정보를 포함하지만, 고차원 잠재 변수(클래스 label)은 훨씬 적은 비트를 포함한다.
이때 $p(x|c)$는(주어진 문맥에서 데이터를 예측하는 확률) $x$와 $c$에 공유되는 정보를 뽑아내기에 효과적이지 않다.
대신에 미래의 정보를 예측할 때 target(미래) $x$와 문맥(현재) $c$를 비선형 학습 매핑을 통해 잠재 표현으로 인코딩하여 $x$와 $c$ 원래 신호의 정보를 최대한 보존한다.

-> 데이터의 중요한 정보를 최대한 보존하도록 설계해서 미래와 현재의 신호가 가지고 있는 공유된 정보를 잘 보존한다.
단순히 선형적인 관계보다는, 비선형 모델이 문맥과 데이터의 상호 정보를 더 잘 인코딩할 수 있다.

Model
주요 목표는 미래의 관찰값 $x_{t+k}$와 현재의 맥락 표현 $c_t$ 사이에 있는 공유된 정보를 잘 보존하는 것이다.
인코더와 자가회귀 모델
- 비선형 인코더$g_{enc}$ : 입력 데이터를 저차원의 잠재 표현으로 변환. 이 잠재 표현은 관찰된 시퀀스에서 중요한 정보만을 요약
- 자가회귀 모델 $g_{ar}$ : 현재까지의 모든 잠재 표현 $z_{<=t}$을 기반으로 맥락 표현 $c_t$를 생성하여 과거의 정보를 종합
밀도 비율을 사용한 예측
- cpc 모델은 $p(x|c)$ 를 직접 예측하는 대신, 밀도 비율을 사용하여 상호 정보를 유지
- 밀도 비율은 두 분포 간의 비율을 나타내며, 이 모델에서는 이를 로그-쌍선형 모델을 통해 계산

- 미래 시점의 데이터 $x_{t+k}$와 현재 맥락 $c_t$ 간의 밀도 비율을 계산 -> 내적
- 비선형 변환을 통해 미래 데이터와 문맥 간의 복잡한 관계를 모델링할 수 있음
학습 방법

- 직접적인 확률 분포를 평가할 수 없기 때문에, 샘플을 기반으로 비교하는 노이즈 대조 추정(Noise-Contrastive Estimation) 또는 중요도 샘플링(Importance Sampling)과 같은 기법을 사용
다운스트림
- cpc 모델은 두 가지 표현 $z_t$ (잠재 표현)와 $c_t$ (맥락 표현)을 사용 가능
-> 음성 인식 (과거 문맥 정보가 필요) : $c_t$ 사용
-> 단일 객체 분류 : $z_t$ 사용
InfoNCE Loss and Mutual Information Estimation
모델이 긍정적인 샘플과 부정적인 샘플을 구분하는 능력을 학습하게 되는데, 이를 Noise Contrastive Estimation (NCE) 기법으로 구현한다. InfoNCE Loss는 모델이 긍정적인 샘플을 부정적인 샘플과 잘 구분하도록 만드는 것이 목표이다.

InfoNCE Loss는 모델이 긍정적인 샘플과 부정적인 샘플을 구분하도록 학습시키는 Noise Contrastive Estimation (NCE) 방식에 기반한 손실 함수이다.
X={x_1,...,x_N} 샘플 집합은 하나의 긍정적인 샘플과 $N-1$개의 부정 샘플로 구성된다.
- 긍정적인 샘플은 문맥 $c_t$에 기반해 미래 데이터를 예측한 결과로부터 나옴
- 부정적인 샘플은 실제 데이터 분포가 아닌 제안된 분포로부터 추출
InfoNCE Loss를 최소화하면 모델이 긍정적인 샘플을 올바르게 예측할 수 있으며, 밀도 비율 $\frac{p(x_{t+k} | c_t)}{p(x_{t+k})}$을 추정하는 과정과 연결된다.
해당 수식은 $x_{t+k}$와 문맥 $c_t가 서로 얼마나 관련이 있는지 나타내는 비율이다.
- 는 문맥 $c_t$가 주어졌을 때 실제로 $x_{t+k}$ 가 발생할 확률
- $p(x_{t+k})$는 $x_{t+k}$가 문맥과 상관없이 그냥 발생할 확률
이 밀도 비율이 크다는 것은, 주어진 문맥에서 해당 데이터가 나올 가능성이 높다는 것을 의미하고, InfoNCE Loss는 모델이 이 밀도 비율을 잘 추정할 수 있도록 학습한다. 즉, 문맥에 기반해 올바른 미래 데이터를 선택하는 법을 배운다.
InfoNCE 손실을 최소화하면, 상호 정보의 하한을 최대화할 수 있으며, 이는 모델이 더 정확한 미래 예측을 할 수 있게 돕는 역할을한다. 상호 정보란 두 변수(이 경우 $x_{t+k}$와 $c_t$) 사이에 공유된 정보량을 의미한다. 상호 정보가 크면 그만큼 문맥과 미래 데이터 간의 관련성이 높다는 의미이다.
Related Work
- CPC(Contrastive Predictive Coding)는 미래 예측과 대조 손실을 결합하여 서로 다른 시간대의 느린 변화를 포착하려고 하는 새로운 방법이다.
- 대조 손실은 과거부터 여러 방식으로 사용되었으며, 주로 긍정 샘플과 부정 샘플을 구분하기 위해 사용된다. CPC는 이러한 대조 손실을 예측 코딩과 결합하여 상호 정보를 극대화한다.
- CPC의 특징:
- 미래의 관측값을 예측하면서, 문맥 정보가 긴 시간 동안 유지
- 다양한 시계열, 텍스트, 비전 분야에서 대조 학습을 활용하여 특징 추출
Experiments

- 256x256 이미지에서 64x64 이미지 패치를 추출하고, 각 패치를 ResNet에서 인코딩하여 1024차원 벡터를 얻음
- 이 벡터는 PixelCNN 스타일의 모델로 예측되고, 각 패치에 대조 손실이 적용되어 학습이 진행
- 비지도 학습 후, 추출된 CPC 표현 위에 선형 분류기를 학습시켜 ImageNet 데이터셋의 분류 작업을 수행
결과
- CPC는 비지도 학습임에도 불구하고 최신 연구와 비교해 top-1 정확도에서 9%, top-5 정확도에서 4%의 성능 향상을 기록
- 특정한 도메인에 의존하지 않고도 효과적으로 학습할 수 있음을 보임