【Self】 Contrastive-learning based - SimCLR
- Paper: SimCLR A Simple Framework for Contrastive Learning of Visual Representations, ICML 2020
- Reference site: Youtube presentation link
- Contents
- Paper review
- Youtube presentation summary
- Youtube presentaion material
Youtube presentation summary
참고 하면 좋을 자료: illustrated-simclr
Pretext-tasks(=proxy-tasks)는 너무(ad-hoc) heuristics해서 the generality of learn representations
에 한계가 있다.
Contrastive learning의 직관
SimCLR의 전체 요약
SimCLR 추가 개념 정리
- Random(stochastic)하게 data augmentation을 사용한다. 사용하는 Transform은 (1) Random crop and resize(with random flip) (2) color distortions (3) Gaussian blur를 사용한다.
- 위 이미지의
f
는 ResNet50이고,g
는 Two layer MLP(including ReLU)이다. - Hard negative mining이 MoCo에서는 굉장히 중요했지만, 여기서는 Batch를 매우 크게 하면 대부분 Negative일 것이라 믿고 큰 Batch size를 사용한다.
- Temperature를 사용하는 Cosine similarity function을 사용한다.
- Contrastive loss는
Normalized temperature-scaled cross entropy(NT-Xent)
라고 명명한 Loss를 사용했다. (위 사진의 Normalized cross entropy와 비슷하지만, 정확하게는 pseudo code에 define한 함수이다.) - Batch size 4096를 Default로 사용한다.
- 아래에 나오는 Self-supervised evaluation 방법으로는 linear evaluation protocol(Backbone freeze하고 1 layer FC만을 학습시킨다)을 사용한다.
- 하나의 이미지에 대해서 Transform을 적용하지 않은 것과, 2개의 Augmentaion을 랜덤으로 적용하여 학습시켰을 때 가장 효과적인 방법은
Crop & Resize + Random color distortion
이다. 특히 더 강한 color distortion을 적용할 수록 더 좋은 성능을 얻을 수 있었다. - h = f(x) / z = g(f(x)) 라고 했을 때, z를 사용해서 Downstream task를 적용하는 것은 좋지 않다. z는 이미 invariant to data transformation 이기 때문이다. 이 특성은 New downstream task 모델을 학습시키는데 방해가 된다.
- NT-Xent Loss function은 hard-easy nagative를 분별하고 가중치를 다르게 줄 수 있는 능력을 가지고 있다. 그래서 Hard negative mining 기법을 사용할 필요가 없다.
- the more epoch and batch size is, the better performance
- Conclusion!
- SimCLR의 핵심은 (1) the choice of data augmentation (2) the use of nonlinear head at the end of the network(
g
에서 RelU를 사용한 MLP) (3) the loss function - data augmentation으로 무엇을 사용하는지는 contrastive self-training에서 매우 중요하다.
- SimCLR의 핵심은 (1) the choice of data augmentation (2) the use of nonlinear head at the end of the network(
SimCLR 과제자료
Youtube presentaion material