논문 읽기/Self-Supervised

[논문 읽기] Context Prediction(2015), Unsupervised Visual Representation Learning by Context Prediction

AI 꿈나무 2021. 6. 30. 19:29
반응형

 오늘 읽은 논문은 Unsupervised Visual Representation Learning by Context Prediction 입니다.

 

 

 Context Prediction은 self-supervised learning이며 image로부터 patch를 추출하여 patch간의 상대적인 위치를 예측하도록 학습합니다(사람도 맞추기 어려운 task를 신경망이 prediction 하도록 합니다. 실제로 이 상대적인 위치를 예측하는 task에 대하여 학습된 ConvNet은 낮은 성능(40%)을 나타냅니다).

 

 이 방법으로 embedding을 학습하는데, 이 embedding은 동일한 object이면 가까운 거리(유사도), 다른 object 경우에는 먼 거리를 갖도록 합니다. 이렇게 학습된 ConvNet은 transfer learning을 통하여 랜덤 초기화된 ConvNet보다 상당한 성능 향상을 제공합니다.

 

Context Prediction

 

 위 그림에서 8개의 공간 배열에서 무작위로 한 쌍의 patches를 추출합니다. 한 쌍의 patches를 추출하는 방법은, 하나의 patch를 추출하고 이 patch에 8번째 위치중 무작위로 patch를 추출합니다. 그리고 이 쌍을 CNN에 입력합니다. 입력은 두 patch와 첫 번째 patch에 대한 두 번째 patch의 상대적인 위치를 label로 입력합니다. 그리고 이미지 내에서 patch간의 위치에 대한 정보를 제공하지 않고 신경망이 patch의 상대적인 위치를 예측하도록 합니다. 

 

 

 두 개의 patch를 입력받기 위해 ConvNet을 위 그림처럼 설계합니다. 두 개의 Conv는 각 patch에 대한 representation을 weight sharing으로 학습하고, fc7에서 representation이 fuse 됩니다. 이렇게 모델을 구성한 이유는 두 개의 patch를 입력받기 위해 두 layer가 필요하기 때문이라고 설명합니다.

 

 patches 간의 위치를 예측하는 방법을 학습하는 신경망은 꼼수를 사용할 수 있습니다. 예를 들어, high-level 정보를 사용하지 않고 low-level 정보를 사용하는 것입니다. patch 사이의 textures 연속성, 경계 패턴과 같은 정보를 활용하여 예측한다면 저자가 원하는 특징을 CNN이 추출할 수 없습니다. 따라서 patch들 사이에 gap을 포함시킵니다. 또한 인접 patch 사이의 경계 정보를 훼손하기 위하여 7 pixel까지 random jitter을 적용합니다. 이외에도 추가적인 방법으로 color dropping을 사용합니다.

 

Performance

 Context Prediction으로 학습한 CNN을 object detection의 R-CNN에 fine-tunning한 결과입니다. Image-Net으로 fine-trunning 된 경우보다 성능은 낮지만, pre-trained이 되지 않은 R-CNN보다 좋은 성능을 보입니다.


참고자료

[1] https://arxiv.org/abs/1505.05192

반응형