[ICCV 2015] Unsupervised Visual Representation Learning by Context Prediction 핵심 리뷰

This entry is part 1 of 11 in the series Self Supervised Learning

내용 요약

Context Prediction 이라는 Patch의 상대 위치를 맞추는 방식의 초창기 Self Supervised Learning 방법을 소개합니다. 기존 방법들과 비교하는 실험 결과를 보며 제안 방법의 효과를 살펴봅니다.

1. 들어가며

이번 글에서는 2015년 ICCV에 발표된 Unsupervised Visual Representation Learning by Context Prediction 논문을 리뷰합니다. 이 글에서는 해당 논문을 편의상 Context Prediction 이라 지칭하겠습니다.

2. 기존 방법의 문제점

Context Prediction 이 발표된 시기만 하더라도 Self Supervised Learning 이 널리 알려지지 않았습니다. 대부분의 방법은 Supervised Learning 을 사용했죠. 하지만 Supervised Learning 방식은 여러 단점이 존재합니다. 가장 대표적인 문제점은 ‘비용’ 입니다. Supervised Learning 으로 모델을 학습하기 위해서는 Label이 필요한데요. 이미지마다 Label을 만드는 작업은 보통 사람이 직접 수행해야 했죠.

따라서 아주 대량의 데이터를 학습하기 위해서는 사람이 만든 Label을 사용하지 않고도 학습할 수 있는 방법이 반드시 필요했습니다. Context Prediction은 이러한 시대적 상황에서 Label 없이 이미지의 특성을 학습할 수 있는 방법을 제안합니다.

3. 제안 방법

Context Prediction이 어떠한 방법을 사용했는지 살펴보겠습니다.

3-1. Patch 상대 위치 맞추기

그림1. 상대 위치 맞추기
그림1. 상대 위치 맞추기

Context Prediction은 Input Image Patch의 상대 위치를 맞추도록 학습하는 방법을 제안합니다. 위의 그림과 같이 모델에게 파란색 네모의 이미지 패치와 8개의 빨간색 이미지 패치 중 한 개를 주고서, 이게 몇 번째 패치인지 맞추도록 학습을 하는 겁니다. 우리한테 이 문제를 풀라고 한다면 우리는 고양이가 어떻게 생겼는지를 이해하도록 노력할 겁니다. 따라서 딥러닝 모델도 마찬가지로 이렇게 학습을 시키면 학습 데이터로 받은 이미지의 문맥을 이해하려고 노력할 것이라는 아이디어에서 출발합니다.

3-2. Architecture

그림2. Context Prediction Architecture
그림2. Context Prediction Architecture

모델은 크게 2가지의 CNN으로 구성되어 있습니다. Input으로 받는 이미지가 2개이기 때문입니다. 9개의 Image Patch중 중앙의 패치와 랜덤으로 선택한 이미지 패치가 각각의 CNN을 통과하도록 되어있습니다. 이렇게 각각 연산 되어 나온 Feature는 fc7에서 합쳐져서 최종적으로는 8가지의 종류(fc9)를 맞추는 구조로 되어있습니다.

이때 최종 Output인 8가지의 종류란 ‘상대 위치 종류’ 를 의미합니다. 예를 들어 결과가 0이라면 중앙 Patch를 기준으로 왼쪽 상단에 위치한 Patch임을 의미합니다. 반면 결과가 1이라면 상단에 위치한 Patch를 의미하는 식으로요.

3-3. Trivial Solution 방지하기

그런데 문제는 저자들의 의도와는 달리 모델이 학습 데이터를 이해하려고 하지 않고 단순히 문제를 풀기 위한 꼼수만을 학습할 수도 있다는 겁니다. 저자들은 크게 2가지의 꼼수에 대한 대비책을 제안합니다.

첫 번째 꼼수는 가장자리와 질감의 패턴을 익혀 문제를 푸는 방식입니다. 이미지의 문맥을 이해하지 않고도 이미지 패치 내의 Low Level 패턴만 외우면 어느 위치의 패치인지 맞출 수 있기 때문입니다. 저자들은 이를 방지하기 위해 각 패치를 7 픽셀씩 Jittering 합니다.

두 번째 꼼수는 Chromatic Abrerration 문제입니다. 마찬가지로 문맥을 이해하지 않고도 low level 패턴을 익혀 문제를 풀게 되는 방식입니다. 이를 방지하기 위한 방법으로 저자들은 Projection 과 Color Dropping을 사용했습니다.

4. 실험 결과

제안한 방식의 실험 결과를 살펴보겠습니다.

4-1. Semantically Similar Patch 찾기

저자들의 의도대로 학습했다면 비슷한 의미를 가진 Patch 끼리는 가까운 Feature Space에 Mapping 될 것입니다. 따라서 비슷한 Patch를 찾는지 확인하여 정량적이진 않지만 학습이 잘 되었는지를 살펴봅니다.

그림3. 비슷한 Patch 찾기
그림3. 비슷한 Patch 찾기

위 그림은 다양한 방식으로 찾은 Patch들을 보여주고 있습니다. 가장 왼쪽은 입력 Patch 입니다. 오른쪽 세 개는 각각 Random Init, ImageNet Trained AlexNet, 제안 방법으로 찾은 Patch 들이죠. Random Init은 아무 학습도 하지 않고 그저 거리상 가까운 Patch를 찾는 방법을 의미합니다. ImageNet Trained AlexNet은 기존의 Supervised Learning 방식으로 ImageNet을 학습한 AlexNet을 의미하고요.

결과를 보면 어떤가요? 제안 방법이 제법 입력 Patch와 비슷한 Patch들을 잘 찾고 있는 모습이죠?

4-2. Object Detection

다음은 VOC-2007 Object Detection 결과를 보겠습니다.

그림4. Object Detection 성능 비교
그림4. Object Detection 성능 비교

위 표는 다양한 방식의 VOC 성능을 비교한 그림입니다. 위 결과로부터 두 가지 포인트를 찾을 수 있습니다.

첫 번째는 Scratch 학습 방법보다 제안 방법의 성능이 좋다는 점입니다. 이 말은 VOC를 바로 학습 하는것 보다 Context Prediction을 학습하고 VOC를 학습 할때의 성능이 더 좋음을 의미합니다. 즉 Context Prediction을 학습하는 과정에서 이미지 특성을 구분할 수 있는 능력을 얻었다는 것이죠. 따라서 Context Prediction 방식이 일리가 있다고 할 수 있겠죠.

두 번째는 Supervised Learning 방식보다는 성능이 떨어진다는 점입니다. 위 결과에서 ImageNet R-CNN 성능에 해당하는데요. 이 방법은 ImageNet Label로 Pretrain을 하고 VOC를 학습한 방법입니다. 비록 성능은 낮지만 초창기 Self Supervised Learning 방식임을 감안하면 놀라운 성능이라고 할 수 있죠.

Series Navigation[CVPR 2016] Inpainting SSL : Context Encoders: Feature Learning by Inpainting 핵심 리뷰 >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top