본문 바로가기
Simple Review

Exploring Simple Siamese Representation Learning 간단리뷰 (CVPR2021)

by pulluper 2021. 8. 1.
반응형

안녕하세요 pulluper입니다!

 

오늘은 simple review 로 돌아왔습니다.

 

구현까지의 무거운 리뷰보다는 아이디어를 얻는 정도의 simple review 를 만들어 최신의 논문이나 관심있는 분야를 

 

탐구해 보도록 하겠습니다. 😇

 


인트로)

 

오늘은 Exploring Simple Siamese Representation Learning 이라는 CVPR2021 의 비교적 최신 논문에 관한 이야기입니다. 

 

또한 "Best Paper Honorable Mentions" 라는 title 을 가진 논문이기도 합니다. 

 

이 논문은 FAIR(Facebook AI Research) 에서 Xinlei Chen 이라는 분이 무려 Kaiming He 와 함께 쓴 논문입니다. 

 

문제제기)

 

여기서 해결하고자 하는 문제는 collapsing 문제 입니다, 이는 siamese network 를 사용하면 나오는 문제인데,

 

하나의 data x 를 서로다른 augmentation 을 통해서 나온 data 들을 x1, x2 라고 했을 때 이에 대하여 그것들의 similarity 를 줄어들게 

 

학습을 하면 네트워크의 output이 특정 값으로 나와서 Loss 가 줄어 마치 잘 학습된 것 처럼 보이지만 그렇지 않은 문제입니다.  

 

기존해결법)

 

기존의 방법들은 이를 negative sampling pair, large batch, momentum encoder 등으로 해결하였습니다. 

 

이 논문에서는 stop gradient 연산을 이용해서 이 문제를 해결했다고 주장합니다. 

 

방법론)

 

- Model 

 

모델의 구조는 다음과 같습니다. 

 

x1, x2 와 encoder f 그리고 predictor h 가 존재를 하고 (cos) similarity  를 통해서 로스를 계산합니다. 

 

predictor h 가 없는 부분에서 stop gradient 연산을 수행합니다. (pytorch 의 경우 .detach())

model

자세하게는 encoder f 는 backbone + MLP 이고, predictor h 는 MLP 입니다. 

- Loss

 

여기서 사용하는 similarity(Loss) 는 cosine similarity 인데,

 

SGD 로 argmin 을 통해서 최적화된 값을 구하는 방식으로 loss 로 쓰이려면, 작은값이 우리가 원하는 방향이어야 합니다.

 

따라서 -1 을 곱해줍니다. 

 

여기서 p1 과 z2 의 각도가 비슷할수록 좋은것 이기 때문에 다음과 같이 설정을 하고 아래의 로스에 따라서 학습을 진행합니다. 

loss

이렇게 실험을 하면 놀랍게도 collapsing 문제를 해결할 수 있습니다. 

 

이후의 논문의 방향은 실험을 많이 해 봅니다. 

 

Why?)

 

여기서 궁금한 것은 '왜 stop gradient 가 collapsing 문제를 막는가?' 라는 질문이었습니다. 

 

chapter 5 에 무언가 설명이 있습니다. 

 

자신들의 이론은 Expectation Maximization 과 비슷하게 해석을 한다고 합니다. 

 

이를 두 parameter 의 set ($\theta, \eta$) 와 관련한 식으로 표현합니다. 

 

expectation maximization prob

그리고 이 Loss 를 minimize 시키는 $\theta, \eta$ 의 대한 문제를 생각해 보게 합니다, 

 

min Loss

이것을 k-means clustering 과 비슷하다고 하며 (중심찾고, maximize...)

 

다음과 같은 subproblem 들의 풀이로 대체를 시킵니다. 

 

assign subprob from minimization

식(7) 은 encoder f 를 학습시킬 때, stop gradient 를 이용해서 $\theta$ 를 학습하는 것으로 생각 할 수 있고, 

 

식(8) 은 식(5) 에서 $\eta_{x}$ 가 왼쪽의 식이 되면 풀리기 쉬워집니다. 

 

하나의 augmentation 에 대해서는 업데이트가 다음과 같고 (expectation 이 없고)

 

assign eta for one augmentation

이를 다시 (7) 번식에 넣어주면 다음과 같이 표현 할 수 있습니다. 

그리고 predictor h 는 10 의 식을 9 번으로 되도록 Expectation 에 대한 근사를 가정합니다.

 

이게 볼수록 1:1 매칭이 되지는 않습니다. 

 

아직 이해가 부족해서일지도 모르지만 논리의 흐름이 약간 부자연스럽긴 하지만 연결 시킬수 있을 정도인것 같습니다.

 

마지막에는 자신들도 왜 collapsing 문제를 해결했는지를 풀어내지 못했다고 하네요 ㅎㅎ 

 

더 자세한 내용은 다음에서 찾을 수 있습니다. 

 

https://arxiv.org/pdf/2011.10566.pdf

Exploring Simple Siamese Representation Learning 에 대한 간단리뷰는 여기까지 입니다. 

 

감사합니다. 

 

질문과 토론은 언제든지 환영합니다. 😀

 

반응형

댓글