Self-supervised learning
Supervised learning에서 큰 발전을 이뤘지만 해당 방식으로 갈 수 있는 범위에는 한계가 있다. 세상의 모든 것에 이름을 붙인다는 것은 불가능하고 자원이 부족한 언어에 대한 번역 시스템 같이 레이블이 지정된 데이터가 충분하지 않은 일부 태스크도 있다. knowledge distillation 같이 AI 시스템이 training 데이터 세트에 명시된 것 이상으로 현실에 대한 더 깊고 미묘한 이해를 얻을 수 있다면 더 유용할 것이며 궁극적으로 AI를 인간 수준의 지능에 더 가깝게 만들 수 있다.
상식은 사람들이 모든 단일 작업에 대해 막대한 양의 배움을 요구하지 않고도 새로운 기술을 배울 수 있도록 도와준다. 예를 들어, 어린 아이들에게 소 그림을 몇 개만 보여주면 아이들은 결구 자신이 보는 모든 소를 알아 볼 수 있다. 대조적으로, supervised learning을 training된 AI 시스템은 소 이미지의 많은 예가 필요하며 해변에 누워 있는 것과 같은 비정상적인 상황에서는 여전히 소를 분류하지 못할 수 있다.
르쿤님은 self-supervised learning은 배경 지식을 구축하고 AI 시스템에서 상식의 한 형태에 근점하는 가장 유망한 방법 중 하나라고 생각했다.
Predictive learning
self-supervised learning은 종종 데이터의 기본 구조를 활용하여 데이터 자체에서 supervision을 얻는다. self-supervised learning의 일반적인 방법은 입력에서 관찰되지 않거나 숨격진 부분(또는 속성)을 예측하는 것이다. self-supervised learning은 데이터 자체의 구조를 사용하기 때문에 레이블에 의존하지 않고 다양한 supervision 신호를 사용할 수 있다.
self-supervised learning은 NLP에 레이블이 지정되지 않은 큰 텍스트 데이터 세트와 같은 모델을 training한 다음 이러한 모델을 다운스트림 작업에 사용할 수 있다. 이러한 모델은 self-supervised 단계에서 pre training 다음 텍스트 주제 분류와 같은 특정 작업에 맞게 fine-tuning 된다. self-supervised pre training 단계에서 시스템은 마스킹되거나 대체된 단어를 예측하도록 학습된다. 그렇게 함으로써 시스템은 텍스트의 의미를 나타내는 법을 배우므로 "올바른" 단어나 문맥에서 의미가 있는 단어를 잘 채울 수 있다.
그러나 이러한 기술은 CV와 같은 새로운 영역으로 쉽게 확장될 수 없다. 기대할만한 초기 결과에도 불구하고 SSL은 아직 NLP에서 본 것과 동일한 컴퓨터 비전 개선을 가져오지 않았다. 주된 이유는 예측에서 단어보다 이미지에 대한 불확실성을 표현하는 것이 훨씬 더 어렵기 때문이다. 누락된 단어를 정확하게 예측할 수 없는 경우("사자"인지 "치타"인지), 시스템은 점수 또는 확률을 어휘의 모든 가능한 단어에 연관시킬 수 있다. "사자", "치타" 및 "치타"에 대한 높은 점수 몇 가지 다른 포식자와 어휘의 다른 모든 단어에 대한 낮은 점수를 비교한다.
이 문제로 비전에서 SSL의 성능 향상이 어려웠지만 SwAV(Caron, Mathilde, et al. 2020.)와 같은 방법은 비전 task에서 supervision을 능가하기 시작했다.
Introduction
self-supervised learning에서 하나의 네트워크와 이미지의 distorted versions으로 학습을 진행한다. 각 네트워크에 이미지의 distorted versions을 입력이미지로 사용하고 각 네트워크에서 나온 출력의 유사도를 이용해 loss를 계산한다. 여기서 문제가 발생할 수 있는데, 네트워크는 loss를 최소화하기 위해 이미지에 상관 없이 모두 같은 constant vector를 출력하는 현상인 trivial solutions 문제가 발생할 수 있다.
해당 문제를 해결하기 위해 많은 이전의 연구에서는 네트워크 간 weight updates에서 a predictor network, gradient stopping, 또는 a moving average 같은 다양한 asymmetry breaking 방법을 사용한다. 하지만 barlow twins의 loss function을 사용하면 asymmetry breaking 방법이 필요하지 않다. barlow twins는 두 개의 동일한 네트워크의 출력 사이의 cross correlation matrix를 계산하고 identity matrix에 가깝게 함으로서 collapse를 방지하는 object function을 사용한다.
이전의 많은 연구에서는 collapsed representation 학습을 피하기 위해서 contrastive learning은 cross-view prediction을 하나의 discrimination 문제로 재정의하여 학습하도록 한다. 같은 이미지의 서로 다른 DA를 통해 얻은 patch들과 다른 이미지들을 통해 얻은 patch들을 구분하는 문제로 변경한다. 하지만 이를 위해서는 수많은 negatives 들과 비교를 해야한다는 단점이 존재한다.
Proposed Method
2.1 Description of BARLOW TWINS
barlow twins는 cross correlation matrix를 이용해 loss function을 구성한다. loss function은 invariance term과 redundancy reduction term 두 부분으로 나뉘어 있다.
invariance term은 대각 행렬 부분이다. 각 네트워크의 출력을 계산한 cross correlation matrix의 대각 행렬을 1에 가깝게 만들어 서로 같은 특징을 가진 representations을 출력하도록 loss function을 구성해 적용된 distortions에 대한 임베딩 invariant를 만든다. redundancy reduction term 부분은 비대각 행렬을 0에 가깝게 만들어 collapse를 방지한다. 배치 단위로 입력을 들어왔을 때 비대각 행렬의 합은 0에 가깝지 않고 높은 값이 나타난다면 모든 배치가 같은 constant vector를 출력한다고 예상할 수 있다. 따라서 redundancy reduction term 부분을 0에 가깝게 되도록 loss function을 구성해 임베딩의 다른 벡터 components를 decorrelates하고 collapse 현상을 방지할 수 있다.
redundancy reduction term에서 단일 이미지간에 correlation을 0으로 만드는 것은 오히려 패널티가 될 수 있으므로 큰 배치 단위 사용이 필요할 수 있다. 여기서 λ는 loss의 첫 번째 항과 두 번째 항의 중요성의 비율을 결정한다. 비대각 행렬과 대각 행렬의 갯수 차이가 있기 때문에 적절하게 λ 값을 수정해야한다.
직관적으로, cross correlation matrix의 대각 요소를 1과 동일하게 함으로써 object의 invariance term은 적용된 distortions에 대한 임베딩 invariant를 만든다. cross correlation의 비대각 요소를 0과 같게 하여 redundancy reduction term은 임베딩의 다른 벡터 components를 decorrelates한다.
2.2 Implementation Details
Image augmentations 각 입력 이미지는 두 번 변환되어 그림1에 표시된 두개의 distorted views (공간적/기하학적 구조 변경, 이미지의 색상을 왜곡)를 생성한다. 이미지 augmentation 파이프라인은 random cropping, resizing to 224 × 224, horizontal flipping, color jittering, converting to grayscale, Gaussian blurring, and solarization 등의 변환으로 구성된다. crop 및 resize는 항상 적용되지만 나머지 변환은 무작위로 적용된다.
Color distortion의 필요성 color distortion 없이 training 진행시 color histogram을 공유하기 때문에 이 부분에 집중하게 되면서 시각적인 특징의 중요도가 낮게 평가될 수 있다. 따라서 color distortion을 강하게 부여한다면 color histogram의 중요성을 낮추고 시각적인 특징의 중요도를 높일 수 있다.
아키텍처 인코더는 ResNet-50 projector 네트워크로 구성된다. 인코더의 출력을 'representations'라고 부르고 projector의 출력을 '임베딩'이라고 부른다. representations는 다운스트림 작업에 사용되며 임베딩은 barlow twins의 loss function에 사용된다. optimization 부분은 BYOL에 설명된 optimization protocol을 따른다. LARS optimizer를 사용하고 2048의 배치 사이즈로 1000 epochs 동안 학습한다. barlow twins는 256 이하의 배치에서도 뛰어난 동작을 보인다는 부분이 강조된다.
Experiment
3. Results
다른 dataset으로 transfer learning에 의한 representations를 평가한다. ImageNet 데이터 세트의 training set (without labels)에 대한 self-supervised learning을 사용하여 pre training 한다. 이미지 classification과 object detection과 같은 다양한 task와 네트워크의 fixed representations를 사용하거나 finetuning과 같은 다양한 작업에 대해 모델을 evaluate 한다.
- transfer learning 다른 dataset을 이용해 모델 변수 조정
- linear-evaluation encoder의 weight를 freeze하고 linear classifier를 얹어서 성능을 평가
Understanding The Non-Linear Projection Head projection head는 contrastive learning을 이용해 학습한 encoder의 시각적인 특징을 transformation invariant하도록 위해 시각적인 특징을 소실해 projection head의 output을 이용한 visualize는 encode의 output을 이용한 visulize와 비교해 클래스간의 분류가 모호하다.
3.1 Linear and Semi-Supervised Evaluations on ImageNet
Linear evaluation on ImageNet pre-trained된 ResNet50의 fixed representations 위에 ImageNet의 linear classifier를 학습한다.
Semi-supervised training on ImageNet ImageNet의 subset을 사용해 ResNet-50을 fine-tune 한다.
3.2 Transfer to other datasets and tasks
Image classification with fixed features (Misra & van der Maaten, 2019)의 설정을 따르고 fixed image representations에 대한 linear classifier를 학습한다. 여기서 ConvNet의 parameters는 변경되지 않는다.
Object Detection and Instance Segmentation object detection 및 instance segmentation의 localization 기반 작업에 대한 representations을 평가한다. table 4의 결과는 barlow twins가 이러한 localization work에 대해 state-of-the-art representation learning과 비슷하거나 능가한다는 것을 보인다.
4. Ablations
Loss Function Abalations 첫째, loss function의 invariance term (on-diagonal term) 또는 redundancy reduction term (off-diagonal term)을 제거하면 예상대로 solutions가 collapsed된다는 것을 발견했다. 둘째, projector 네트워크 MLP의 hidden layers에서 batch-normalization을 제거한다. → 거의 영향 없음. 셋째, hidden layers에서 batch-normalization을 제거하고 cross-correlation matrix를 cross-covariance matrix로 교체한다. → 성능이 현저히 저하. 마지막으로 temperature과 cross-entropy loss를 시도한다. → 성능이 저하.
Robustness to Batch Size SIMCLR과 달리 barlow twins는 작은 배치 크기에 강하며, 256개의 배치까지는 괜찮아 보인다 (SimCLR과 하락비율 4배 가량 차이).
Projector Network Depth & Width 대조적으로, barlow twins가 projector 네트워크의 출력의 dimention이 매우 클 때 더 나은 성능을 보인다는 것을 발견했다. 다른 방법들은 output의 dimention이 빠르게 saturate되지만, barlow twins는 계속 개선된다.
Conclusions
최근 swav은 비전 task에서 supervision을 능가하기 시작했다. BYOL은 pseudo label을 활용해 모델의 정확도를 높인다. 이처럼 다양한 방법을 활용해 더 높은 성능과 확장성을 갖는 self-supervised learning이 등장하고 있다. 현재 단순한 annotations를 사용해 제한적인 정보로 보다 사람과 같이 "배경 지식"을 활용해 학습하기 어렵기 때문에 self-supervised learning을 활용해 배경 지식을 구축하는 것이 유망한 방법이라고 생각했다.
Share article