이전 포스트
[Machine Learning/Unsupervised Learning] - Self-Supervised Learning - BYOL (1)
Experiment
Self-supervised pretraining으로 뽑아낸 representation의 성능을 파악하기 위해 classification, segmentation, object detection, depth estimation 등의 컴퓨터 비젼 태스크를 수행합니다.
Linear evaluation on ImageNet
먼저 encoder로부터 추출된 representation에 대해 linear classifier를 훈련시킵니다. 결과는 Table 1과 같고 Top-1 (일반적인 accuracy)와 Top-5 (해당 확률이 5등 안에 들었을 때의 accuracy) accuracy를 측정합니다. 결과적으로 다른 self-supervised 성능보다 좋았으며 비지도학습 특성상 모델의 크기가 클수록 좋은 성능을 가지는 양상을 보입니다.
Semi-supervised training on ImageNet
ImageNet의 일부분 (1%, 10%)만을 가지고 representation을 fine-tuning한 이후에 linear evaluation으로 성능을 측정합니다.
Transfer to other classification tasks
ImageNet으로 얻은 representation을 이용해 다른 데이터셋 분류에 적용하는 (fine-tuning and linear evaluation) transferability를 확인합니다. 즉, representation이 generic한지 여부를 체크하는 것이죠. 다른 실험과 마찬가지로 BYOL의 성능이 다른 SimCLR에 비해 높았고 몇 개의 데이터셋에 대해서는 지도학습 방법보다 높은 성능을 보였습니다.
Transfer to other vision tasks
BYOL로 추출한 representation을 이용해 semantic segmentation, object detection, depth estimation task를 수행합니다. Table 4(b)의 depth estimation은 RGB 이미지로부터 해당 이미지의 geometric 깊이를 추출하는 것으로 pct는 the percent of pixels로 에러 $max(d_{gt}/d_p, d_p/d_{gt})$ 값입니다. ($d_p$는 predicted depth, $d_{gt}$는 ground-truth입니다) 모든 task에 대해서 BYOL이 SimCLR보다 성능이 높은 것을 알 수 있습니다.
Ablation study
Batch size
SimCLR은 negative samples를 사용하기 때문에 배치 사이즈에 큰 영향을 받습니다. BYOL과 배치 사이즈에 따른 민감도를 확인하기 위해 배치 사이즈를 128부터 4096까지 실험합니다. 실험의 성능지표는 linear evaluation on ImageNet의 top-1 accuracy입니다. 배치 사이즈에 따른 하이퍼파라미터 re-tuning을 방지하기 위해 배치 사이즈를 $N$만큼 줄일 때 $N$ 스텝만큼의 gradients를 평균내서 업데이트 하며 target networks는 $N$ 스텝마다 한 번 online network가 업데이트된 이후에 업데이트 됩니다. 밑의 결과를 보면 BYOL은 SimCLR에 비해 배치 사이즈에 robust한 것을 알 수 있습니다.
Image augmentations
SimCLR에서는 image augmentation 종류에 민감합니다. 특히, SimCLR은 같은 이미지에 대해 cropping만 수행할 경우 color histogram이 비슷해져 color만 구분하게 되는 현상을 방지하기 위해 color distortion을 augmentation으로 수행합니다. 따라서 밑의 결과에서 color distortion의 종류를 제거했을 때 성능이 급격히 떨어지는 것을 볼 수 있습니다.
이에 반해 BYOL은 target network에서 포착한 다양한 representation을 학습하기 때문에 color histogram 이외에도 다양한 feature들을 representation에 담을려고 동작합니다. 이에 따라 image augmentation 종류에 더 robust하다고 할 수 있습니다.
Bootstrapping
BYOL은 target network의 projected representation을 online networks의 target으로 사용하며, target networks의 파라미터는 online network의 exponential moving average로 천천히 움직이도록 결정됩니다. 만약 moving average의 $\tau$가 1이라면 target networks가 업데이트가 되지 않을 것이고 $\tau$가 0이라면 target networks가 매 스텝마다 online networks의 파라미터를 그대로 복사하게 됩니다.
밑의 결과를 보았을 때 $\tau=0$인 경우는 훈련이 거의 되지 않고 $\tau=1$은 훈련은 되긴 하지만 target networks가 고정되어 있기 때문에 성능이 매우 낮은 것을 알 수 있습니다.
Ablation to contrastive methods
이번에는 SimCLR과 BYOL을 다음과 같이 InfoNCE 목적 함수로 표현하여 각 요소 (predictor, target network, negative sample) 들이 성능 향상에 얼마나 영향을 미치는지 확인합니다.
Augmented 된 이미지 $u_1, u_2$에 대해 $S_\theta (u_1, u_2)$를 다음과 같이 정의할 때,
$\phi(u_1)=z_\theta (u_1)$ (no predictor), $\psi(u_2)=z_\theta (u_2)$ (no target network), $\beta=1$이면 SimCLR 이고, $\phi(u_1)=q_\theta(z_\theta(u_1))$, $\psi(u_2)=z_\eta (u_2)$, $\beta=0$이면 BYOL임을 알 수 있습니다.
위의 표에서 볼 수 있듯이 $\beta=0$ 일때 (negative example이 없을 때) BYOL만이 동작하는 것을 알 수 있습니다. 오히려 negative example을 포함했을 때 성능이 약간 감소함을 볼 수 있습니다. 이에 반해 SimCLR은 $\beta=0$이면 성능이 아예 도출되지 않는 것을 볼 수 있습니다.
Network hyperparameters
Network 구조와 차원, learning rate, weight decay에 따른 성능을 파악합니다. BYOL의 성능은 하이퍼 파라미터에 크게 의존적이지 않음을 알 수 있습니다.
주의할 점은 weight decay 항을 아예 제거했을 때에는 SimCLR/BYOL 모두 훈련이 모두 불안정해진다는 점입니다. 이는 self-supervised learning에서는 weight regularization이 필수적임을 말해줍니다.
Imporatance of a near-optimal predictor
Collapsed representation을 방지하기 위해 predictor와 moving average target network를 설정했지만 predictor를 near-optimal로 유지하는 것이 가능하다면 target network를 제거해도 가능합니다.
$\tau=0$으로 두고 predictor의 learning rate에 $\lambda$를 곱했을 때 성능을 확인합니다. Baseline에 비해 성능이 낮아지지만 predictor의 learning rate가 높아 near-optimal로 유지되므로 어느 정도 성능이 나오는 것을 알 수 있습니다.
이를 확장해서 predictor의 learning rate에는 $\lambda$를 곱하고 projector의 learning rate에는 $\mu$를 곱해 성능을 확인합니다. 밑의 결과에서 알 수 있듯이 predictor의 learning rate가 projector의 learning rate보다 비슷하거나 낮다면 representation collapse가 발생해 성능이 급감하는 것을 볼 수 있습니다.
결과적으로 collapsed representation을 방지하기 위해 predictor를 항상 near-optimal로 유지하는 것이 중요하며 이를 위해 moving average로 천천히 업데이트되는 target network가 중요한 역할을 하는 것으로 생각할 수 있습니다.
참조
'Machine Learning Tasks > Self-Supervised Learning' 카테고리의 다른 글
Self-Supervised Learning - SimCLRv2 (2) (0) | 2021.04.09 |
---|---|
Self-Supervised Learning - SimCLRv2 (1) (0) | 2021.04.03 |
Self-Supervised Learning - BYOL (1) (0) | 2021.03.28 |
Self-Supervised Learning - SimCLR (2) (0) | 2021.03.23 |
Self-Supervised Learning - SimCLR (1) (0) | 2021.03.23 |