[CVPR 2016] Inpainting SSL : Context Encoders: Feature Learning by Inpainting 핵심 리뷰

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

내용 요약

Inpainting 방식의 새로운 Self Supervised Learning 방법을 제안합니다. Architecture와 Loss Function의 구성과 의미를 살펴봅니다. 실험 결과를 통해 기존 방법들과 성능을 비교해봅니다.

1. 들어가며

이번 글에서는 2016년 CVPR에 발표된 Context Encoders: Feature Learning by Inpainting 논문을 리뷰합니다. 이 글에서는 편의상 Inpainting SSL (Self Supervised Learning) 이라고 지칭하겠습니다.

2. 문제 제기

그림을 하나 살펴 볼게요.

그림1. Inpainting
그림1. Inpainting

위 그림은 그림의 빈 칸을 채우는 Inpainting 사례를 보여주는 그림입니다. 그림a는 빈칸의 모습이고요. 그림b는 사람이 빈 칸을 채운 결과입니다. 그럴듯 하게 채운 모습이죠? 아마 우리 모두는 이와 비슷한 모습으로 빈 칸을 채울것 같습니다. 이러한 능력은 어디서 기인할까요? 생각해보면 이렇게 그림의 빈 칸을 채우기 위해서는 그림의 문맥을 이해해야만 합니다. 주변의 사물이 무엇인지를 이해해야 빈 칸을 그럴듯하게 채울 수 있기 때문이죠.

그럼 이런 아이디어가 떠오릅니다. 만약 딥러닝 모델이 그림의 빈 칸을 그럴듯 하게 채울 수 있다면 그 딥러닝 모델은 이미지의 문맥을 이해한다고 말할 수 있지 않을까요?

3. 제안 방법

이러한 아이디어에서 출발한 Inpainting SSL의 제안 방법을 살펴보겠습니다.

3-1. Architecture

먼저 Architecture 입니다.

그림2. Inpainting SSL Architecture
그림2. Inpainting SSL Architecture

위의 그림으로 보듯이 전체 구조는 Encoder & Decoder로 구성되어 있습니다. Encoder는 AlexNet구조를 사용하고 있습니다. Encoder Output과 Decoder는 Channel Wise Fully Connected 방식으로 연결됩니다. 연산량을 줄이기 위해서죠. 이렇게 정보를 전달받은 Decoder는 5개의 Up Convolution과 ReLU로 구성되어 공백을 Generation 하도록 학습됩니다.

3-2. Loss Function

다음은 Loss Function을 살펴보겠습니다. 공백을 그럴듯 하게 채우기 위해 두 가지 Loss를 사용합니다.

첫 번째는 Reconstruction Loss입니다.

reconstruction-loss
그림3. Reconstruction Loss

수식을 살펴보죠. M은 Binary Mask를 의미합니다. 그림의 빈칸 말이죠. 그럼 그림 x에 마스크를 적용한 것과 모델이 만들어낸 그림이 L2 Distance 상에서 같아지라는 의미임을 알 수 있습니다.

이는 그림의 전체 Context에 맞는 이미지를 Generation 하는 역할을 수행합니다. 하지만 Loss가 L2로 구성되어 있기에 전체적으로 Blurry하게 Generation 되는 경향이 있습니다.

두 번째는 이를 보완해줄 Adversarial Loss입니다.

adversarial-loss
그림4. Adversarial Loss

이는 GAN에서 아이디어를 차용한 것인데요. GAN Loss와 비교해보면 쉽게 이해할 수 있습니다.

image 65
그림5. GAN Loss

위 식은 GAN Loss를 표현한 식입니다. 첫 번째 항은 실제 이미지 x에 대한 Loss고요, 두 번째 항은 Generator가 생성한 이미지에 대한 Loss입니다. 위에서 본 Inpainting SSL의 Adversarial Loss의 수식과 비교해볼게요. 동일한 구조로 구성되었죠? Inpainting SSL에서도 이렇게 Discriminator를 구성하여 실제 이미지와 모델이 생성한 이미지를 구분하도록 하는 Loss를 추가해주었습니다. 이는 보다 실제에 가까운 이미지를 Generation 하는 역할을 수행합니다.

최종적으로는 이 두가지 Loss를 결합하여 학습합니다.

final-loss
그림6. Inpainting SSL Final Loss

3-3. Region Mask 방식

생각해보면 이러한 Mask를 만드는 방법은 다양하게 존재합니다. 아래 그림 처럼요.

region-mask-방식
그림7. Region Mask 방식

Inpainting SSL 에서는 크게 세 가지 방법에 대해 성능 테스트를 진행했습니다. 이 중에서 세 번째 방식인 위치와 형태를 랜덤 하게 선택하여 Masking 하는 방식으로 학습할 때 성능이 가장 좋았다고 합니다.

4. 실험 결과

다음은 제안한 방법론의 실험 결과를 살펴보겠습니다.

4-1. Semantic Inpainting

먼저 학습된 모델이 공백을 얼마나 잘 생성하는지 살펴보겠습니다.

semantic-inpainting
그림8. Semantic Inpainting 결과

봐야 할 포인트는 L2 / Adv / L2+Adv의 비교입니다. L2로 학습한 모델이 생성한 부분은 대충 맞긴 맞는데 Blurry 한 모습입니다. 반면 Adv로 학습한 모델이 생성한 부분은 진하고 실제 같긴 한데, 문맥에 맞지 않는 생뚱 맞은 그림을 만들어낸 모습입니다. 마지막으로 이 둘을 결합했을 때 비로소 그럴듯한 이미지를 생성하는 모습을 볼 수 있습니다.

4-2. Transferability

다음으로는 제안한 방법으로 Pretraining한 뒤 Transferability Test 성능을 살펴보겠습니다.

transferability-test
그림9. Transferability Test 결과

실험은 Classification, Detection, Segmentation 에 대해 수행했습니다. 기존 다른 방식의 Self Supervised Learning 방식, Supervised Learning 방식과 성능을 비교하고 있습니다. Supervised Learning 방식보다는 성능이 많이 떨어지는 모습입니다. 시기를 고려하면 이는 그럴 수 있다고 생각되는데요. 기존 다른 방식의 Self Supervised Learning 방식들 보다 성능이 안 좋은 모습은 아쉬운 부분입니다.

하지만 Inpainting 이라는 참신한 방법으로 Self Supervised Learning 을 수행할 수 있음을 보여준 의미가 있다고 할 수 있습니다.

Series Navigation<< [ICCV 2015] Unsupervised Visual Representation Learning by Context Prediction 핵심 리뷰[ECCV 2016] Zigsaw Puzzle SSL : Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles 핵심 리뷰 >>
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