Preliminary
- Positive sample: Origin이 동일한 이미지(또는 데이터포인트)
- Negative sample: Origin이 다른 이미지(또는 데이터포인트)
- Dictionary look-up task: 여기서는 contrastive learning을 의미합니다. Query image에서 하나의 positive이미와 나머지 (N-1)개의 negative이미지와 유사도를 계산하는 과정이기에 k-value와 같은 dictionary구조라고 일컫습니다.
- InfoNCE: InfoNCE은 미니배치 K+1개에서 1개의 positive sample을 찾는 softmax 함수 + temperature scale추가
Methods: 딕셔너리 사이즈를 키워 negative samples을 포함할 수 있으면 좋은 학습방법이 될 것
Moco은 딕셔너리 사이즈를 키워, Negative key을 많이 갖고 있게되면 더 학습이 잘된다는 가설로 시작됩니다. 위의 딕셔너리가 가변적(dynamic)합니다. 하나의 query에 대해서 key도 augmentation을 달리하고, 인코더도 점차 학습되기 때문입니다. MoCo은 Negative sample을 임베딩하기에 Key encoder가 비교적 천천히 학습되고(=급격히 변하지 않고) 일관적으로 학습되는 것을 목표로 합니다.
1. MoCo은 샘플을 Queue방식으로 처리합니다. 즉, 새로운 샘플을 Queue에 넣으면, 먼저 들어가있던 오래된 샘플은 제외되는 방식입니다. 샘플을 넣는 과정을 "Enqueue" 제외하는 과정을 "dequeue"라 합니다. 따라서, 비교적 최근의 인코딩된 Key Image들은 enqueue후에 몇 회 재사용될 수 있습니다.
2. Momentum update: key encoder을 직접학습하는 대신에, query encoder을 학습하고 학습의 일부만 반영(=momentum)합니다. 이유는 key encoder에는 많은 negative samples에 대해서 backpropagation하기 어렵기 때문입니다즉, computational cost문제 때문입니다. 예를 들어, 이번 배치가 16개였고, 딕셔너리사이즈가 1024개면, 1,024개의 샘플에 대해서 backpropgation을 해야하기 때문에 계산량이 많아 현실적으로 어렵다는 것입니다. enqueue하는 방식으로는 back-propagation이가능하다는 글을 같이 공유합니다(URL, URL2) (보통, "intractable"이라 하면 미분이 불가능한, 다루기 어려운 이런 뜻인데 미분과 연관되어 쓰여 혼란이 있습니다)
또한 인코더가 급격하게 변하는 경우, 딕셔너리에 저장되어있던 기존의 인코딩의 값이 현재와 많이 상이하기에 천천히변화시켜야한다는 것입니다.
그래서 아래와 같이 momentum update을 대안으로 선택합니다. 아래의 수식(2)을 보면, query encoder의 파라미터의 내용이용하여 key encoder을 업데이트하는 방식으로 학습합니다.
$\theta_{k} \leftarrow m \theta_{k} + ( 1- m )\theta_{q}$ (2),
- $\theta_{q}$: query encoder의 파라미터
- $ \theta_{k} $: key encoder의 파라미터
- $m$: 모멘텀계수. [0, 1]사이의 값
따라서, query encoder만 back-propagation을 진행합니다. 그리고, 급진적인 key encoder의 파라미터 변화를 막기 위해서, m값을 0.999로 학습합니다. 이는 m=0.9보다 성능이 더 좋았다고 합니다.
기타1: contrastive loss 학습방식
- end-to-end update: query encoder와 key encoder가 동일한 경우를 의미합니다. 그리고, 딕셔너리는 항상 미니배치 사이즈와 같습니다. 따라서, 딕셔너리 사이즈를 엄청 키우진 못합니다.
- memory bank: 메모리뱅크는 데이터셋에 모든 샘플을 일단 인코딩하여 넣어둡니다. 그리고, 매니배치에서 일부를 샘플링하여 contrastive learning에 사용합니다. 장점은 "큰 사이즈의 딕셔너리"라는 것입니다. 단점은 메모리뱅크의 업데이트이후 key encoder가 여러번업데이트되기 떄문에, 둘의 일관성(인코딩 차원에서의)이 다소 떨어지는다는 것입니다.
Linear probe 과정에서 learning rate을 30으로 한 이유
논문에서는 "optimal learning rate을 30, weight decay을 0"으로 진행합니다. 일반적으로 다른 hyper-parameter인데, 이 이유는 feature distirbtion ImageNet supervised training과 Instragram-1B와 크게 다름을 의미합니다.