Revisiting Self-Supervised Visual Representation Learning
Alexander Kolesnikov, Xiaohua Zhai, Lucas Beyer
(Submitted on 25 Jan 2019)
arXiv:1901.09005
Introduction에선 unlabeled data에 대한 설명을 하고 이전의 논문들이 신박한 pretext task에 대한 제안이 주제였다면 이번 구글팀에서는 CNN architecture 자체를 주제로 선정하였다.
self-supervision이 robotics, videos, images 등에서 응용될 수 있다는 설명이 있었다.
이제 실험에 쓰일 CNN architecture를 살펴본다.
처음으로 ResNet이다. 채널의 수를 늘리기위해 widening factor를 사용한다.
또한 버전을 2가지로 사용하는데 여기서 ResNet v2는 shortcut connection을 더해주기전에 activation을 취해주는, 기존 ResNet v1보다 성능이 조금 더 향상된 버전이다.
나중에 표에서 보일 (-) 모델은 마지막 GAP(global average pooling) 전에 존재하던 ReLU를 없앤 버전이다.
다음은 ResNet을 기반으로 조금 변화를 준 RevNet이다.
RevNet은 여기에 정리를 해두었다.
fully labelled 세팅에서는 RevNet보다 ResNet의 성능이 조금 더 좋았다.
마지막 세번째 모델은 VGG-19이다. ResNet과 동일한 조건으로 맞추기위해 역시나 widening factor k를 사용한다.
앞서 소개한 모델들은 다음 네가지의 self-supervised 테크닉을 통해 훈련된다.
Jigsaw, Relative는 아래에 설명했었다.
2019/11/06 - [AI/논문정리] - Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles
또한 Exemplar는 아래에 설명했다.
이제 해당 아키텍처에 각 모델들을 다 훈련시키고 얻은 representation(pre-logit)들을 linear logistic regression에 적용하여 평가를 시작한다.
평가를 위한 데이터는 ImageNet과 Places205를 사용하는데 이 때 공식적인 validation set은 비공개이며 공식 validation set에 overfitting하는것을 방지하기 위해서 training set으로부터 랜덤하게 뽑은 것들을 validation set으로 사용한다.
Table 2. 에서의 평가만 공식 validation set을 사용한다.
또한 Places205는 ImageNet과 완전히 다른 종류의 데이터라서 새로운 데이터에 representation이 얼마나 잘 일반화되는지를 알 수 있다.
ImageNet에 대해 평가를 진행했을 때 결과이다.
각 표는 각 모델을 통해 훈련시킨 representation을 linear logistic regression에 넣어서 얻은 accuracy들이다.
다음 실험을 통해 두가지 결과를 얻을 수 있다.
- 하나의 모델에서 가장 좋은 성적을 얻은 아키텍처가 다른 모델에서도 가장 좋은 성적을 얻지는 않음. (랭킹이 일관적이지 않음.)
- CNN 모델의 채널수를 증가시킬수록 성능은 증가되었다.
다음 표는 동일한 평가실험을 Places205 데이터에 적용했을 때 표이다.
위의 두 표를 그래프로 표현하면 위와 같다.
둘의 패턴이 동일했고 이는 새로운 데이터 셋에 일반화가 잘 되었다는 것을 의미한다.
각 self-supervision 모델에서의 베스트 architecture를 뽑아 기존의 연구결과와 비교를 했다.
결과적으로 구글 팀에서 적용한 새로운 architecture 결과는 기존의 연구결과와 fully-supervised 결과 사이의 차이를 반으로 줄이게 되었다.
결국, pretext task 뿐만아니라 self-supervised learning architecture를 선택하는 것도 굉장히 중요하다는 뜻이다.
이번에는 linear model이 평가에 적합한지를 생각해보았다.
linear model을 사용하기 위해서는 데이터도 linearly separable해야하고 모델이 더욱 강력해지면 architecture 선택이 덜 중요해지는 일이 발생한다.
때문에 MLP(Multi-layer perceptron)과 비교를 해보았는데 실제로는 둘 사이의 차이가 그렇게 크지 않았다.
그래서 구글팀은 그냥 linear model이 적합하다고 평가했다.
pretext task에서 좋은 성능을 보인 것이 더 좋은 representation을 의미하는지를 테스트해보았다.
하지만 architecture가 고정되어 있지 않은 경우에는 그렇지 않았다.
이번에는 skip-connection이 어떤 영향을 주는지 확인해보았다.
VGG의 경우 레이어의 끝으로 갈수록 성능저하가 심해졌고 이는 끝의 레이어로 갈수록 pretext task에 특화되고 중간레이어에서 발생하는 더 general semantic representaion을 버리게 된 결과라고 설명했다.
반대로 ResNet과 RevNet에서는 성능이 좋아지는 것을 확인할 수 있다.
저자들은 residual block이 어느 조건에서 invertible해서 정보의 손실없이 충분한 representation을 가지기 때문이라는 가설을 세웠다.
ResNet보다 더욱 강한 invertible 을 보장하는 RevNet은 Rotation에서만 해당하지만 ResNet보다 5% 가량 성능이 더욱 좋았다.
모델의 width(capacity) 와 representation 사이즈의 영향력을 정확하게 파악하기 위해서 분리를 했다.
추가적인 linear layer를 달아줌으로써 pre-logit layer의 사이즈를 컨트롤하면서 둘 사이의 분리를 해낼 수 있었다.
결과적으로 두가지 모두 증가시켰을 때 성능이 가장 좋았다...
(저 사이즈보다 더 커지면 성능은 어디까지 좋아질 것인가..?)
모델의 사이즈에 대해서는 원래 large dataset에서만 성능향상을 보이고 적은 dataset에대해서는 representation usefulness를 해할 수 있다.
하지만 실험을 해본 결과 이와 같은 상황에서는 큰 데이터든 작은 데이터든 상관없이 width를 늘렸을 때 성능향상을 보였다.
마지막 실험은 SGD를 사용할 때, learning rate가 제일 처음 decay될 때 성능에 영향을 주는 것을 실험했다.
결과적으로 늦게 first decay를 할 수록 더욱 좋은 성능을 보였고
이는 SGD optimization 하이퍼파라미터가 중요한 역할을 한다는 것을 의미한다.
결론은 pretext task만큼 architecture 선정도 매우 중요하다는 것을 강조했다 :)
(이미지는 논문의 것을 그대로 사용하여 본인이 직접 ppt를 작성하였습니다.)