- [ICCV 2015] Unsupervised Visual Representation Learning by Context Prediction 핵심 리뷰
- [CVPR 2016] Inpainting SSL : Context Encoders: Feature Learning by Inpainting 핵심 리뷰
- [ECCV 2016] Zigsaw Puzzle SSL : Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles 핵심 리뷰
- [ICLR 2018] UNSUPERVISED REPRESENTATION LEARNING BY PREDICTING IMAGE ROTATIONS (RotNet) 핵심 리뷰
- [CVPR 2018] Unsupervised Feature Learning via Non-Parametric Instance Discrimination (NPID) 핵심 리뷰
- [ECCV 2018] Deep Clustering for Unsupervised Learning of Visual Features (DeepCluster) 핵심 리뷰
- [PMLR 2020] A Simple Framework for Contrastive Learning of Visual Representations (SimCLR) 핵심 리뷰
- [CVPR 2020] Momentum Contrast for Unsupervised Visual Representation Learning (MoCo) 핵심 리뷰
- [NIPS 2020] Supervised Contrastive Learning 핵심 리뷰
- [NIPS 2020] Bootstrap Your Own Latent A New Approach to Self-Supervised Learning (BYOL) 핵심 리뷰
- [ICLR 2021] PROTOTYPICAL CONTRASTIVE LEARNING OF UNSUPERVISED REPRESENTATIONS (PCL) 핵심 리뷰
내용 요약
Zigsaw Puzzle 을 풀도록 학습하는 새로운 Self Supervised Learning 방법론을 제안합니다. Detection & Classification 성능을 통해 문맥과 의미를 잘 학습하는지 검증합니다.
1. 들어가며
이번 글에서는 2016년 ECCV에 발표된 Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles 논문을 리뷰합니다. 이번 글에서는 편의상 Zigsaw Puzzle SSL이라고 지칭하겠습니다.
2. 제안 방법
바로 Zigsaw Puzzle SSL의 제안 방법을 살펴 볼게요. 핵심 아이디어는 Zigsaw Puzzle을 풀면서 이미지의 특성을 학습하는 Self Supervised Learning 방법을 제안한다는 것인데요. 어떻게 구성했는지 하나씩 살펴보겠습니다.
2-1. CFN (Context Free Network)
먼저 저자들이 제안하는 네트워크인 Context Free Network입니다.
저자들은 Jigsaw Puzzle을 푸는 모델을 제안합니다. 우리도 직소 퍼즐 문제를 풀려면 해당 이미지의 문맥과 의미를 완벽하게 이해하고 있어야 합니다. 마찬가지로 딥러닝 모델도 직소 퍼즐을 풀도록 학습하면 학습 데이터의 문맥과 의미를 이해하는 방향으로 흘러갈 것이라는 아이디어에서 착안했습니다.
마지막 Softmax Layer의 클래스 개수가 64인데요. 이는 문제를 64가지만 냈다는 의미입니다. 9개의 이미지 패치 순서를 맞추는 경우의 수는 9!가지로 아주 많습니다. 이 중에 64 종류의 문제만 사용했다는 것이죠. Ablation에서는 이 개수에 따라 성능이 어떻게 변화하는지 실험했습니다.
모델 이름을 Context Free Network라고 지은 이름은 각 네트워크는 다른 이미지 패치를 받고 연산 과정에서 서로 관여하지 않기 때문입니다. 각자가 이미지 패치에 대해 연산한 뒤 fc7에서 합쳐지는 구조를 하고 있습니다.
2-2. Pretext Task Shortcut 학습 방지
문제는 저자들의 의도와는 달리 문맥과 의미를 학습하지 않고 직소 퍼즐만을 풀기 위한 Shortcut을 학습할 수 있다는 겁니다. 저자들은 크게 3가지의 문제에 대한 대비책을 제안합니다.
첫 번째는 Pixelation / Color Distribution을 이용하는 문제입니다. 문맥을 이해하지 않고도 주변 픽셀값의 유사성을 이용해서 문제를 풀 수 있다는 것이죠. 이를 방지하기 위한 방안으로는 Normalization을 제안합니다.
두 번째 문제는 Edge Continuity를 이용하는 것입니다. 마찬가지로 문맥을 이해하지 않고도 Edge를 이어주는 방향으로 문제를 풀 수 있다는 것이죠. 이를 방지하기 위해서 Patch 당 11픽셀씩 떨어뜨려 Crop 하는 방법을 사용합니다.
세 번째 문제는 Chromatic Aberration입니다. 색상 정보만을 사용하여 문제를 풀 수 있다는 것인데요. 이를 방지하기 위해서 Color Channel Jittering을 사용합니다.
3. 실험 결과
이렇게 제안한 방법의 실험 결과를 보겠습니다.
3-1. VOC 2007 Detection & Classification
VOC 2007 데이터셋의 Detection & Classification 실험 결과입니다.
Supervised Learning 방식의 모델보다는 성능이 떨어지는 모습을 볼 수 있습니다.
반면 다른 Self Supervised Learning 방식들 보다는 높은 성능을 보이는데요. Video Prediction 방식, Context Prediction 방식, Inpainting 방식과 성능을 비교했습니다.
4. Ablations
다음으로는 ablation을 살펴보겠습니다.
4-1. 문제의 개수(permutations) 효과
아까 9!가지의 경우의 수 중 최종적으로는 64가지만 선별해서 문제를 냈다고 했습니다. 이 문제의 개수가 달라지면 어떤 효과가 있는지 보겠습니다.
먼저 문제를 많이 낼 수록 직소 퍼즐 점수는 낮아지는 모습입니다. 문제가 더 어려워지니까 점수가 낮아졌다고 생각하면 되겠습니다. 반대로 문제를 많이 낼 수록 Detection Performance는 증가하는 모습입니다. 결국 더 어려운 직소 퍼즐을 풀기 위해 더 학습 데이터의 문맥과 의미를 이해하려고 학습했다고 생각할 수 있겠습니다.
4-2. Shortcut 방지 효과
다음으로는 shortcut 방지를 위한 대비책들의 효과를 보겠습니다.
Shortcut 방지책을 많이 쓸수록 직소 퍼즐 문제가 어려워지면서 직소 퍼즐 점수는 떨어지는 반면, Detection Performance는 증가하는 모습을 볼 수 있습니다.