일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- remixmatch paper
- WGAN
- tent paper
- GAN
- 최린컴퓨터구조
- simclrv2
- mme paper
- CycleGAN
- cifar100-c
- Pseudo Label
- ConMatch
- Meta Pseudo Labels
- BYOL
- mocov3
- adamatch paper
- UnderstandingDeepLearning
- conjugate pseudo label paper
- shrinkmatch
- Pix2Pix
- shrinkmatch paper
- semi supervised learnin 가정
- CGAN
- Entropy Minimization
- dann paper
- dcgan
- CoMatch
- 백준 알고리즘
- SSL
- 딥러닝손실함수
- 컴퓨터구조
- Today
- Total
Hello Computer Vision
비전공생의 MoCo v3(2021) 논문리뷰 본문
오랜만에 리뷰할 논문은 MoCo V3 논문이다. 해당 논문은 CNN이 아닌 Transformer를 통한 Contrastive Learning을 수행하였고 왜 Transformer를 사용하였는지에 대한 경험적인 실험결과들을 많이 담고 있다. 그리고 밑 글에서 추가로 설명하겠지만 기존 MoCo에서 사용하였던 memory bank는 사용하지 않는다.
https://arxiv.org/pdf/2104.02057.pdf
Introduction
이전부터 NLP분야에서는 Transformer를 통한 Masked autoencoder가 유행하고 있지만 CV분야에서는 여전히 Siamese 구조가 유행하고 있다는 걸 언급한다(ResNet기반). 따라서 저자는 Vision분야에서도 ViT를 쓰는 것에 집중했다고 한다. 그러나 적용한 방법으로는 MAE를 사용하는 것이 아닌 기존의 Contrastive Learning을 사용하여 기존의 ResNet과 비교하였다. ViT방법을 사용하였을 때 unstable한 결과가 나오기는 했지만 이것이 큰 실패를 나타내지는 않는다고 한다(Accuracy 1~3% 정도의 하락). 결과적으로는 큰 ViT모델이 좋은 결과를 나타냈다고 한다.
Related work
기존의 Contrastive Learning은 SSL분야에서 Positive sample은 attract하고 negative sample은 dispel하면서 큰 성공을 거두었다. 그리고 Transfomer는 NLP분야에서 self attention을 활용해 큰 성공을 거두었다. 그리고 ViT라는 모델이 만들어져 Vision분야의 supervised에서도 많은 성공을 거두었다. 그리고 저자는 이 ViT가 SSL에서도 더 많은 연구가 이루어져야 한다고 말한다.
MoCo v3
여기서 ViT에 대해 실험결과들은 모두 MoCo v3의 세팅을 따른다. 기존의 InfoNCE loss를 사용하고 memory bank는 사용하지 않는데, 큰 batch size를 사용할 수록 memory bank는 별로 필요없다고 한다.
알고리즘을 한번 보자면, 증강을 활용해 query, key를 생성 후 , encoder fq, fk를 통해 query, key를 통과시킨후 similiary에 대한 loss를 구한 후 fq 만 업데이트 하고 fk는 moving average 사용해 업데이트 한다. 여기서 encoder f는 ResNet, ViT가 될 수 있다.
그리고 ResNet을 이용한 MoCo v3는 ImageNet에 대한 accuracy를 위와 같이 얻었다고 한다. 이에 대한 성능 향상은 높은 batch size와 추가적인 prediction head로 인한 향상이라고 한다.
Stability of Self-supervised ViT Training
저자는 backbone을 단순히 ViT로 바꾸었다고 하는데 main challenge 는 훈련과정에서의 instability라고 한다.
instability는 단순히 accuarcy를 통해 나오는 것이 아니라고 하며 knn curve를 측정한다.
(사실 위 언급은 정확히 무슨 뜻인지 이해를 못하였다. 단순히 accuracy면에서는 약간의 낮은 수치를 보여주었지만 knn curve를 수행하면 위 그래프처럼 instability가 나타났다고 설명하는 거 같다.)
위 그래프를 보면 batch가 6k정도 됐을 때 학습이 불안정한 것을 확인할 수 있다. training과정에서 잘 수렴하지는 않았고 ㅁaccuracy는 약 69.7%가 나왔다고 한다.
Learning rate은 보통 배치사이즈가 커지면 동시에 같이 올려주어야 한다.
learning rate이 낮을수록 더 stable했지만 prone to underfitting한다고 언급한다.
Optimizer에 대해서 AdamW를 공통으로 사용한다. 큰 배치사이즈에는 LARS 를 사용할 수 있지만 하이퍼 파라미터에 굉장히 민감하다고 한다. 따라서 이후 optimizer는 AdamW로 고정한다고 한다.
저자는 이러한 instability를 first layer에서의 gradient 가 spike하는 것을 발견했다고 한다(gradient가 갑자기 훅 증가). 아래 그래프를 보면 first layer에서 10epoch빨리 last layer보다 gradient 가 증가했다고 한다. 따라서 instability가 이러한 현상에서 일어난 것이 아닐까 생각해 patch projection layer를 training과정에서 freezing하고 random patch projection을 사용한다고 한다.
그 결과를 비교해보았을 때 조금 더 stabilize한 결과를 보여준다.
그리고 ResNet과 결과들을 비교해보았을 때 큰 모델일수록 더 좋은 성능, 경쟁력 있는 결과를 나타냈다고 한다.
느낀점
위에 나타낸거 이외에도 더 많은 결과가 나와있긴한데 개인적으로 아쉬운 부분은 실험적인 결과들만이 존재했다는 것이 아쉬웠다. CNN, Transtomer의 어떠한 차이 때문에 이러이러한~ 차이를 두어 실험했다가 아니라 내가 기대한 내용과는 조금 멀어서 아쉬웠다. 이 논문을 통해 확실히 알 수 있는건 아직 Contrastive Learning에서의 backbone은 별 차이 없다는 것이다. 다른 논문들도 찾아봐야겠다는 생각을 한다.
'Self,Semi-supervised learning' 카테고리의 다른 글
비전공생의 Supervised Contrastive Learning(2021) 논문 리뷰 (1) | 2023.11.21 |
---|---|
비전공생의 Realistic Evaluation of Deep Semi-supervised Learning algorithms(2018) 논문리뷰 (0) | 2023.11.21 |
비전공생의 SimCLR-V2(2020) 논문리뷰 (0) | 2023.08.15 |
비전공생의 Unsupervised Feature Learning via Non-Parametric Instance Discrimination(2018) 논문 리뷰 (0) | 2023.08.14 |
비전공생의 CoMatch(2021) 논문 리뷰 (0) | 2023.08.13 |