META AI Self-supervised learning April 2021
Self-supervised learning: The dark matter of intelligence - META AI (FACEBOOK) blog post 정리
1. Common Sense is the Dark Matter of Artificial Intelligence
- 방대한 양의 labed된 데이터 수집에는 한계 존재
- 사람과 supervised learning은 둘 다 COMMON SENSE(상식) 을 학습하지만 차이 존재
- 사람에게 common sense는 모든 작업에 대해 많은 학습이 이루어지지 않아도 새로운 스킬을 배우는데 도움됨
- ex1) 아이들에게 소 그림을 몇 장 보여주면, 소를 보면 바로 알아 볼 수 있음
- ex2) 운전 연수 몇 시간 받으면 운전 가능
- supervised learning으로 학습된 AI에게 common sense는 dark matter(암흑물질)
- ex) 수많은 소 사진을 보여줘야하며, unusual 한 상황에서는 소라고 판단하지 못하기도 함
소가 바닷가에서 누워있는 경우 » 소는 초원이나 농장에 있기에 소가 아닐 것이다 판단 - ex2) 완전 자율 주행 자동차는 몇 천 시간의 학습 필요
- ex) 수많은 소 사진을 보여줘야하며, unusual 한 상황에서는 소라고 판단하지 못하기도 함
- 사람은 이전에 습득한 배경 지식에 의존하여 세상 이해
- 그럼 AI는 어떻게 해야할까?
- >> Self-Supervised Learning 이 사람과 유사한 common sense와 배경 지식을 근사할 수 있는 방법이라고 생각됨
- 더 많은 데이터로부터 학습 가능하기에 미묘하고 덜 흔한 개념(representation) 학습에 유리
- META AI-project SEER: label 없는 10억 개의 random한 이미지 사용하여 학습 진행
2. Self-Supervised Learning is Predictive Learning
- self-supervised learning(SSL)는 데이터 자체(often 데이터 기본 구조 활용)에서 supervisoy 신호를 받음
- SSL의 일반적인 방법은 관측되지 않거나 가려진 input의 부분 예측 하기
- NLP: 문장에서 일부분을 가리고 들어갈 단어 예측
- Video: 현재 관측되는 자료로 과거 혹은 미래의 frame 예측
- 데이터 자체의 구조 사용하기에 동시에 일어나는(co-occurring, e.g. video + audio) modalities와 결합 가능하며 label에 상관없이 수집된 다른 데이터셋 사용가능
3. Self-Supervised Learning for LANGUAGE vs VISION
and Modeling the Uncertainty in Prediction
- LANGUAGE
- 1000 단어 정도로 이루어져있는 짧은 문장의 일부분 mask/replace
- mask/replace된 부분 예측
- language에 사용된 기법은 CV로 확장 쉽지 않음
- NLP에서는 모든 전 어휘에서 가능한 단어들의 확률로 표현 가능
ex) The ___ chases the ___ in the savanna
>> 첫 빈칸은 대초원에 있는 포식자들에게만 높은 점수, 나머지 단어는 낮은 점수
>> softmax 사용 » 일종의 classification 으로 볼 수 있음 - 이미지는 경우의 수가 무한 (uncertainty 표현 방법이 모호) » SwAV & SEER
high-dimenstional & continuous
- NLP에서는 모든 전 어휘에서 가능한 단어들의 확률로 표현 가능
- run time과 memory 측면 + 정확도가 떨어지지 않을만큼의 효율적인 model 구조 필요
- FAIR에서 만든 RegNets: 10억~1조정도의 parameter를 가진 ConvNet, runtime과 memory limitation optimize 가능
4. A Unified View of Self-Supervised Methods
- CV에서 활용방법은 없을까? » Energy-based Model(EBM)으로 SSL을 통합해서 생각
- EBM 학습
- (1) 위의 이미지라면 x, y가 조화롭고(compatible) low energy 가짐 » 구현 쉬움
- (2) y 값과 조화로운 x보다 다른 특정 부분의 조화롭지 않은 x’가 높은 에너지 가짐 » 구현 어려움
- ex) Image Reconstruction
- x: 원본 이미지
- y: x에서 살짝 왜곡된 이미지
- 결과: low energy
- Joint Embedding, Siamese Networks
w: share same parameters
function C: produce a scalar energy, measures the distance
- 유사한 데이터를 넣어주어 low-energy로 만드는 것은 상대적으로 쉽지만, high-energy를 만드는 network를 만드는 것은 힘듦
- 특별한 제약을 주지 않으면, Siamese network들이 input을 무시하고 두 개의 똑같은 embedding을 만들 수 있음(COLLAPSE)
- collapse가 발생하면 nonmatching energy가 matching energy보다 높지 않음
- collapse를 피하기 위한 방법
- 1.contrastive methods
- 2.regularization methods
(1) Contrastive energy-based SSL
- 기존 NLP 접근 방법은 주어진 input에 대해 단 하나의 prediction만 나옴 » 이미지에 적용할 수 없는 이유
- joint embedding architecture보다 좋은 결과는 아니지만 흥미로운 접근 방식이 있음 » latent-variable predictive architecture
- Latent-Variable Predictive Architecture
- z: extra input variable, 관측되지 않음
- z도 set에 따라 변화함
- 관측된 x에 대해 그럴듯한 예측값을 만들어냄
- contrastive method를 통해 학습됨
- 가장 좋은 예시가 GAN(Gererative Adversarial Network)
- discriminator: input y가 괜찮아 보이는지 에너지 계산
- generator: contrastive한 sample들을 만들어서 discriminator가 high energy 가진 것도 학습할 수 있게함
- 하지만 contrastive method 자체의 큰 문제 있음
Tolstoy’s Anna Karenina : “Happy families are all alike; every unhappy family is unhappy in its own way.”
- 이미지와 같은 high-dimensional spaces에 대해 비효율적
- 한 이미지가 다른 이미지와 다를 수 있는 방법은 엄청 다양함
(2) Non-contrastive energy-based SSL
- 요즘 vision SSL에서는 non-contrastive가 hot한 방법
- DeepCluster, ClusterFit, MoCo-v2, SwAV, SimSiam, Barlow Twins, BYOL
- DeepCluster, SwAV, SimSiam: 비슷한 이미지 그룹에 대해 가상의 target embedding 계산
- BYOL, MoCo: 구조 혹은 parameter vector 값을 조금 다르게 해서 두 개의 joint embedding을 조금 다르게 만듦
-
Barlow Twins: embedding vector의 각자의 요소의 redundancy(중복성)을 최소화
- 가장 좋은 방법은 non-contrastive와 latent-variable predictive model을 합치는 것
- 주요 방해물은 latent variable의 용량(capacity)를 최소화하는 방법을 찾아야하는 것
- latent variable이 바뀔 수 있는 set의 volume은 output이 low-energy를 가짐으로써 volume 제한 가능
- 이 volume이 최소화되면서, 자동적으로 에너지의 분포가 알맞게 이루어질 수 있음
- 1) Variational Auto-Encoder(VAE)가 대표적
- latent variable이 흐릿(fuzzy)함으로 그 용량(capacity)을 제한
- 하지만 아직 visual downstream task에 대해 좋은 representations을 나타내지는 않음
- 2) Sparse modeling도 다른 예시
- 단순한 구조에만 사용 가능