안녕하세요 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())
자세하게는 encoder f 는 backbone + MLP 이고, predictor h 는 MLP 입니다.
- Loss
여기서 사용하는 similarity(Loss) 는 cosine similarity 인데,
SGD 로 argmin 을 통해서 최적화된 값을 구하는 방식으로 loss 로 쓰이려면, 작은값이 우리가 원하는 방향이어야 합니다.
따라서 -1 을 곱해줍니다.
여기서 p1 과 z2 의 각도가 비슷할수록 좋은것 이기 때문에 다음과 같이 설정을 하고 아래의 로스에 따라서 학습을 진행합니다.
이렇게 실험을 하면 놀랍게도 collapsing 문제를 해결할 수 있습니다.
이후의 논문의 방향은 실험을 많이 해 봅니다.
Why?)
여기서 궁금한 것은 '왜 stop gradient 가 collapsing 문제를 막는가?' 라는 질문이었습니다.
chapter 5 에 무언가 설명이 있습니다.
자신들의 이론은 Expectation Maximization 과 비슷하게 해석을 한다고 합니다.
이를 두 parameter 의 set ($\theta, \eta$) 와 관련한 식으로 표현합니다.
그리고 이 Loss 를 minimize 시키는 $\theta, \eta$ 의 대한 문제를 생각해 보게 합니다,
이것을 k-means clustering 과 비슷하다고 하며 (중심찾고, maximize...)
다음과 같은 subproblem 들의 풀이로 대체를 시킵니다.
식(7) 은 encoder f 를 학습시킬 때, stop gradient 를 이용해서 $\theta$ 를 학습하는 것으로 생각 할 수 있고,
식(8) 은 식(5) 에서 $\eta_{x}$ 가 왼쪽의 식이 되면 풀리기 쉬워집니다.
하나의 augmentation 에 대해서는 업데이트가 다음과 같고 (expectation 이 없고)
이를 다시 (7) 번식에 넣어주면 다음과 같이 표현 할 수 있습니다.
그리고 predictor h 는 10 의 식을 9 번으로 되도록 Expectation 에 대한 근사를 가정합니다.
이게 볼수록 1:1 매칭이 되지는 않습니다.
아직 이해가 부족해서일지도 모르지만 논리의 흐름이 약간 부자연스럽긴 하지만 연결 시킬수 있을 정도인것 같습니다.
마지막에는 자신들도 왜 collapsing 문제를 해결했는지를 풀어내지 못했다고 하네요 ㅎㅎ
더 자세한 내용은 다음에서 찾을 수 있습니다.
https://arxiv.org/pdf/2011.10566.pdf
Exploring Simple Siamese Representation Learning 에 대한 간단리뷰는 여기까지 입니다.
감사합니다.
질문과 토론은 언제든지 환영합니다. 😀
댓글