A critical analysis of self-supervision, or what we can learn from a single image
Yuki M. Asano, Christian Rupprecht, Andrea Vedaldi
(Submitted on 30 Apr 2019 (v1), last revised 26 Nov 2019 (this version, v2))
arXiv:1904.13132
self-supervised task를 통한 학습은 low layer에만 좋은 영향을 준다.
즉, high-level representation을 배우지 못한다는 의미.
그리고 단 한장의 이미지를 augmentation을 통해 여러장을 만들고 사용하면 평소의 많은 이미지 학습과 성능이 비슷하다고 주장.
그들은 현재까지 나온 self-supervision 에 대해서 의문을 가졌고 과연 이 self-supervision이 neural net의 각각 다른 파트를 학습하는 데 아주 많은 수의 이미지에 담겨있는 정보를 모두 이용할 수 있을 것인지를 답하기로 했다.
데이터는 처음에 d개 선택하고 이 중 d보다 적은 수의 N개 source만을 선택한다.
그 다음 augmentation을 통해 d-N개의 이미지를 생성하고
결국 총 d개의 이미지를 학습하게 된다.
여러가지 augmentation 을 사용한다.
이미지 a는 사진이고 b는 손으로 그린 그림이다.
c는 crowdedness를 비교하기 위한 케이스이다.
self-supervised pretext task로는 위의 세가지를 주로 이용한다.
각 층에서의 성능을 비교하기 위해 각 층마다 linear probes를 달아준다.
linear probes는 하나의 linear classifier를 더 달아주는 것을 의미한다.
ImageNet과 CIFAR-10/100에 대해서 학습을 시키고 linear classifier의 정확도를 측정하기 위해서는 ImageNet validation set을 이용한다.
3가지 Augmentation을 비교했을 때 하나만 사용했을 때는 scale이 제일 좋았고
결론적으로 모두 활용했을 때 가장 효과가 좋았다.
single source image를 사용했을 때 (N=1) 성능은 random initialization보다 훨씬 좋았다.
또한 scattering network 보다도 처음 1,2 층에서 성능이 더 좋았다.
BiGAN을 보면 1~3층에서는 단 한장의 이미지를 사용한 경우가 모든 이미지를 다 사용한 경우보다 성능이 좋았다.
RotNet의 경우는 단 하나의 이미지에서 photographic bias를 추출할 수 없었고 그 때문에 성능이 낮게 나왔다.
crowdedness를 비교하기위해 DeepCluster를 사용했는데 이 때 바다와 하늘로만 이뤄진 사진인 image C와 사람이 가득했던 image A와의 성능이 그렇게 차이가 나지 않았다.
이는 augmentation이 large untextured areas 를 보상할 수 있고 이미지의 선택이 그렇게 중요하지 않다는 것을 의미한다.
사진을 한장만 이용하는 MonoGAN의 경우 conv1, 2에서 성능이 좋았다.
그러나 층이 deep해질수록 성능차이는 커졌고 이는 단 한장의 사진으로는 네트워크가 high level concepts를 배우지 못함을 뜻한다고 주장했다.
conv1 을 시각화했을 때 다음과 같다.
시각화된 모습이 성능을 예측하는데 도움이 되지는 못한다.
예를들어 BiGAn의 경우 많은 edge detector를 보여주는데 deepcluster는 반복되는 point feature를 많이 보여준다.
하지만 그들의 성능은 비슷하다.
만일 freeze 시키지 않고 전체 네트워크를 finetune했을 때 그 성능은 fully-supervised 네트워크의 성능으로 회복이 가능했다.
한장의 이미지로 학습시킨 MonoBiGAN을 통해 얻은 feature들을 style transfer에 사용하면 supervised의 것과 그렇게 크게 차이가 나지 않는 것을 볼 수 있다.
결론은 한장의 이미지를 augmentation하여 사용하면 어느정도 괜찮은 feature들을 뽑아낼 수 있다는 것이다.
아, 그리고 물론 conv1, conv2 쯤에 한정적으로 말이다. :)