논문 읽기/Self-Supervised

[논문 읽기] PCL(2020), Prototypical Contrastive Learning of Unsupervised Representations

AI 꿈나무 2021. 8. 11. 01:33
반응형

Prototypical Contrastive Learning of Unsupervised Representations

Junnan Li, Pan Zhou, Caiming Xiong, Steven C.H Hoi, arXiv 2020

 

PDF, SSL By SeonghoonYu August 11th, 2021

 

Summary

 

 Clustering + NCE Loss 를 결합하여 self-supervised learning을 수행합니다.

 

 기존의 contrastive learning의 문제점은 instance discrimination을 수행하기 때문에 비슷한 특징을 지닌 instance들을 negative로 정의하여 서로 밀어냈었습니다. 즉, low-level semantics를 포착하여 discriminative task를 수행했습니다.

 

 이 문제점을 해결하기 위하여 해당 논문은 비슷한 특징을 공유하는 instance를 prototype(=clustering)으로 묶어 instance 단위가 아닌 prototype(=clustering) 단위로 contrastive learning을 수행합니다. 따라서 semantic structure of data를 encode 할 수 있고 high level semantics을 포착합니다. 

 

 

 Momentum Encoder의 출력값으로 E-step clustering을 수행합니다. ProtoNCE를 최적화하여 신경망을 M-step update를 합니다.

 

 

 ProtoNCE Loss는 다음과 같습니다.

 

 

 NCE Loss와 clustering과 관련된 loss를 MLE로 도출합니다. 자세한 과정은 논문에 나와있습니다(제가 수학을 잘 못해서 설명을 못합니다. 흑흑).

 

 위 식에서 $\phi$는 clustering의 응집도를 측정하는 파라미터 입니다. NCE Loss에서의 temperature과 동일한 역할을 수행합니다.

 

Experiment

 PCL은 MOCO와 동일한 setting으로 구현했고 PCLv2는 MLP를 추가하고 더 강한 augmentation 와 성능을 향상시키는 여러가지를 사용합니다.

 

 

 

t-SNE 시각화입니다.

 

What I like about the paper

  • Clustering을 pseudo label로 활용하는 논문은 자주 봤지만 Contrastive learning으로 사용한 참신한 아이디어
  • momentum encoder의 출력값으로 clustering을 수행하기 때문에 초기 수렴이 굉장히 오래 걸릴 것 같다.

my github about what i read

 

Seonghoon-Yu/Paper_Review_and_Implementation_in_PyTorch

공부 목적으로 논문을 리뷰하고 해당 논문 파이토치 재구현을 합니다. Contribute to Seonghoon-Yu/Paper_Review_and_Implementation_in_PyTorch development by creating an account on GitHub.

github.com

반응형