///
Search
Duplicate
🏷️

Big Transfer (BiT): General Visual Representation Learning

Created
2021/07/04 07:12
발표일자
2020/10/19
발표자
이혜민
Tags
Vision
CNN
TransferLearning
✅main
포스팅 종류
논문리뷰
작성자 : 이혜민 (gudbooy@gmail.com)
발표일 : 20201019 at DeepLAB 논문반

Motivation

해당 Recipe을 "Big Transfer" 라고 부름
Transfer learning (TL) is a research problem in machine learning (ML) that focuses on storing knowledge gained while solving one problem and applying it to a different but related problem.
본 논문에서는 복잡한 학습 기법이나 새로운 패러다임을 제안하는 것은 아니고, 예전 부터 흔히 사용되었던 Transfer Learning에 관련된 내용을 좀 더 자세히 살펴보고, 어떻게 높은 성능을 낼 수 있는지에 대해서 설명과 이에 대한 Transfer 관련 Recipe을 제안.
여기서 제안된 Recipe과 아주 간단한 Heuristic이 들어간 Transferring 기법만 적용해서 20개의 Dataset에 대해서 SOTA 수준의 성능을 달성
기존 SOTA 기법들의 문제점들
복잡하고 긴 Tranining 과정이 필요하며, 더욱이 특정 Target Domain에 맞춘 Dataset이 어느정도 갖춰야하는 문제
수고스러운 Hyperparameter Tuning
반대로 Big Transfer의 경우에는 위의 과정이 없이 SOTA에 필적한 성능을 낼 수 있다고 이야기한다.
본 논문에서는 효과적인 Transfer를 만들기 위한 필수 구성요소들 Dataset의 Scale, Model Architecture, Tranining Hyperparameter 가 어떻게 Transfer 성능과 연관되는지에 대한 empirical 한 Study를 진행

Big Transfer

Transfer를 크게 두 개의 형태로 Component를 나눠서 생각한다.
1.
Upstream component : Pre-training에서 고려되어야 하는 것들
2.
Dowstream component : Fine-tuning에 고려되어야 하는 것들

Upstream Pre-Training

1.
Upstream에서 고려되어야 하는 Point는 Scale이다.
Scale에 관련된 Common-Sense
Larger Dataset을 써야 성능이 더 좋게 나온다.
Larger Dataset으로 학습시에는 Larger Architecture를 사용해야만 성능 Gain의 효과를 크게 얻을 수 있다.
Scale에 관련된 Common Sense에 관련해서 조금 더 높은 Insight를 얻기 위해서 다양한 Model들과 다양한 규모의 학습 데이터를 사용
Architectures
ResNet-50x1 ResNet-50x3, ResNet-101x1, ResNet-101x3, and ResNet-152x4
Datasets
BiT-S : ILSVRC-2012 - 1.3M Images - 1000 class
BiT-M : ImageNet-21k 14M images - 21k class
BiT-L : JFT 300M images (약 ~20%의 Noisy Label) - 1.26 label / image
1.
Upstream에서 고려되어야 하는 두 번째 Point는 Group Normalization(GN), Weight Standardization(WS) 이다.
SOTA-Model 뿐만 아니라 다양한 CNN Model을 학습 시킬 때, 학습의 Stability 뿐만 아니라 높은 성능을 내기 위해 BN이 흔히 사용된다.
본 논문에서는 BN이 Big Transfer에 좋지 않다는 사실을 발견했다. (크게 두 가지 이유가 존재하는데)
1.
큰 모델을 small per-device batch로 학습할 때 (Model의 Mem Foot-print가 크기 때문) BN 성능이 떨어지고, Global BN을 사용하게 되면, 분산환경에서 발생하는 inter-device synchronization cost를 일으킨다.
2.
BN의 경우에는 running statics를 학습 과정에서 계속 update해야하는데, 이것이 Transfer시에 좋지 않다.
작은 Batch를 사용하기 위해 BN 대신 GN을 쓸 수 있지만 실제 GN 단독으로 사용하기에는 성능이 BN보다 떨어진다. 따라서 GN과 WS을 합쳐서 사용하였고 다양한 Dataset (ImageNet and COCO) 에서 높은 성능을 낼 수 있음이 증명되었고, GN과 WS가 Large Batch에서도 매우 유리하다는 점을 본 논문에서 찾아냈고 Transfer에서도 효과적임을 실험적으로 증명한다.
Group Normalization
각 채널을 단위로 N개의 Grouping을 해서 Normalization을 수행 시키는 기법 (작은 Batch에서도 무난한 성능을 보여 줌)
Weight Standardization
Conv Filter의 Kernel Weight값을 Normalization 해주는 방법
Batch Size에 무관하게 적용이 가능
Weight Activation 대비 사이즈가 훨씬 적으므로 Batch Norm보다 Memory, Compute Intensive
GN과 적용시에 BN보다 높은 성능을 보인다는 사실이 증명되었고 큰 Batch에서 GN의 성능이 매우 떨어지는 것을 보완해 준다.

Transfer to Downstream Tasks

1.
Fine-tuning protocol을 고려한다. (즉 Hyperparameter 설정)
기존의 기법들은 새로운 task로 adaptation시 복잡한 hyperparameter search가 필요한대 Big Transfer에서는 오직 하나의 Hyperparameter만 Try 한다.
Hyperparameter로 고려되어야 하는 중요한 set은 아래와 같다.
Training Schedule length
통상적으로 Larger Dataset의 경우에는 긴 학습 시간이 필요하다.
Resolution
Whether to use MixUp regularization
Pre-training 시 보다, Transfer 시 그 효과가 매우 크다.
1.
전처리는 Standard 전처리 방식을 Fine-Tuning 시에도 유지한다.
2.
가장 특이한 점은 Transfer시 어떠한 Regularization도 적용하지 않는다. -> 적용하지 않아도 높은 성능을 보인다.
위의 내용에 기초해 Big Transfer는 BiT-HyperRule 이란 heuristic rule을 Hyperparameter를 만들어내는데, 이것은 task의 intrinsic image resolutionnumber of datapoints를 이용해 만들어진 간단한 함수를 의미한다.
e.g : BiT-HyperRule(image resolution, number of datapoints) = {Training Schedule, Resolution, Usage of Mixup}
mixup: Beyond Empirical Risk Minimization (ICLR'18)
2. Downstream Datasets
ILSVRC-2012
CIFAR-10/100
Oxford-IIIT Pet
Oxford Flowers-102
VTAB (19 diverse visual tasks, each of which has 1000 training samples)
generality of representation learning을 측정하기 위한 dataset
Task들은 3 개의 Category로 Image들이 나눠짐
Natural : classical datasets of natural images captured using standard cameras
Specialized : captured using standard cameras, but through specialist equipment, such as satellite or medical images
Structured : mostly generated from environments

Experiments

Upstream Pre-Training Hyperparameter Details
ResNet-V2 Architecture Replace BN with GN and WS in all conv layers
ResNet-152 Architecture in all datasets, with every hidden layer widened by a factor of four (ResNet152x4)
SGD with momentum Optimizer (initial leraning rate of 0.03 and momentum 0.9)
Train BiT-S and BiT-M for 90 epochs and decay the learning rate by a factor of 10 at 30 60 and 80 epochs
Train BiT-L for 40 epochs ad decay the learning rate 10, 23, 30, and 37
Golbal batch size of 4096 and train on a Cloud TPUv3-512
use linear LR warm-up for 5000 steps
Weight Decay of 0.0001
Downstream Pre-Training Hyperparameter Details
Most hyperparameters are fixed accross all datasets, but schedule, resoultion and usage of MixUp depend on the task image resolution and training set size.
SGD with momentum (initial learning rate 0.003 and momentum 0.9), batch size 512
Decay lerarning rate by a factor of 10 at 30%, 60% and 90%
BiT-HyperRule은 간단한 Mapping Function으로 구현 (Number of Datapoints로 아래와 같이 category를 나눔)
Medium : fewer than 500k labeled examples - 10K steps, with mixup (a=0.1)
Small : fewer than 20k labeled examples - 500 steps, withou mixup
Large : any larger dataset (Larger than 500k labeled examples) - 20k steps, with mixup (a=0.1)

Standard Computer Vision Benchmarks

실험 결과를 보면 Specialist method와 Generalist SOTA가 보이는데 각각의 의미는 아래와 같다.
Specialist Method : ILSVRC-2012로 모델로 학습을 먼저하고 거기에 더 많은 (JFT, Instagram-1B) Dataset (Pseudo Label)으로 학습을 더 한 모델 (e.g. Noisy Student)
Self-training with Noisy Student improves ImageNet Classficiation (CVPR'20)
Generalist Method : 이 경우엔 큰 Dataset으로 학습을 하고 그 다음에 Target Domain으로 학습을 하는 방법 (e.g. Big Transfer)
당연히 Specialist Method는 복잡한 과정이 요구 되어지며, 상당히 많은 Resource가 필요하다. 따라서, 직접적인 비교를 할 수 없다.
BiT-L 이 대부분의 Generalist SOTA Method를 이기는 것을 볼 수 있다.
그리고 Research Community에서 조금 간과하는 Dataset인 ImageNet-21k를 사용한 예를 보면 아주 큰 폭으로 성능이 향상되는 것을 볼 수 있다.

Task with Few Datapoints

BiT-L을 Transfer할 때 필요한 Downstream dataset의 labeled samples의 갯수와 성능과의 연관 관계를 살펴본다.
각 Downstream Dataset에서 Class 당 이미지를 1에서 원래 갯수까지 변경해서 학습한 결과이다.
보면 갯수의 양이 조금만 늘더라도 성능이 큰 폭으로 향상되는 것을 볼 수 있다.
그리고 오른쪽에 있는 실험은 Semi-Supervised 방식으로 학습한 결과인데. 해당 경우는 BiT와 바로 직접적으로 비교하기는 힘들다 왜냐하면 BiT는 Out-of-domain Data에 대한 정보도 학습에 사용하는 반면에 Semi-Supervised는 사용할 수 없고, 또한 BiT는 Extra Unlabelled Data를 사용할 수 없지만, Semi-Supervised는 Extra Unlabelled Data를 사용할 수 있다는 점에서 직접 비교가 어렵다.
그럼에도 불구하고 out-of-domain에 데이터를 사용한 결과와 extra unlablled data를 사용한 결과의 상대적인 효과를 보여주는 중요한 지표이다.

Object Detection

Object Detection Task에 적용시 성능이 어떻게 되는지 살펴보자
COCO-2017 Dataset을 사용하였고 Baseline Model은 RetinaNet이고 Hyperparameter는 RetinaNet과 동일하게 Setting 하였다. (왜냐하면 Task자체가 아예 다르기 떄문에 BiT-HyperRule을 사용하기 어려움) - 그리고 모델도 Memory Constraints를 피하기 위해서 ResNet-101x3 Model을 사용하였다.
성능이 매우 큰 폭으로 올랐다.

Analysis

해당 Section 에서는 BiT에 대한 다양한 Component를 분석한다.

Scaling Models and Datasets

일반적으로 Larger Neural Network가 실제 더 높은 성능을 낸다고 알려져 있다. <-- 이 말이 사실인지 보자
1.
실험을 통해 Model Capacity와 Upstream Dataset에 따른 Downstream 성능의 상관관계를 파악한다.
실험 결과로 추론할 수 있는 내용
작은 Dataset으로 학습하면 할 수록 Larger Model에 대한 이점이 사라진다. --> ILSVRC-2012 로 학습한 경우 모델에 따른 성능 Variance가 가장 작은 것을 볼 수 있다.
작은 모델의 경우 많은 Dataset으로 학습한다고 해서 높은 성능을 보이는 것은 아니다. --> ResNet-50x1 의 경우 큰 데이터 셋에서 오히려 성능이 감소했다.
즉, 큰 모델과 큰 데이터 셋으로 학습을 해야지 높은 성능을 낼 수 있다. (하나만 부족해도 좋지 않다.)
2. 실험을 통해 few-shot (image per class가 매우 적은 상태의 Downstream Dataset을 사용)은 Model Capacity와 Upstream Dataset에 의해서 어떻게 영향을 받는지 살펴본다.
실험 결과로 추론할 수 있는 내용
극단적으로 Image per class가 한 장인 경우에도 Larger Network, Larger Dataset이 압도하는 것을 볼 수 있다.
특이하게도 JFT300으로 학습한 ResNet152x4 Model을 Few Shot으로 학습한 모델이 ILSVRC-2012로 전체 학습한 모델보다 높은 Accuracy를 보이는 경우가 있었다.
즉, Datasets이 작을 수록 높은 성능을 내기 위해서는 큰 모델과 큰 데이터 셋으로 학습된 Pre-Trained를 쓰는 것이 유리하다.

Optimization on Large Datasets

앞에서도 언급했지만, Research Area에서는 ImageNet-21k은 학습 데이터로 잘 사용되지 않으며, 그 이유는 대부분 학습에 대한 Robust Training Procedure가 없기 때문이라고 볼 수 있다. (따라서, ILSVRC-2012 가 더 많이 사용된다.)
Computing Power가 증가함에 따라, ImageNet-21k도 많이 사용될 가능성이 커질 것이며 해당 섹션에서 ImageNet-21k 학습에 대한 어느정도 Guideline을 제공한다.
학습 시 고민되어야 하는 내용
ILSVRC-2012 대비 더 큰 Training Budget (Tranining Schedule)이 필요하다. --> Budget을 크게 올린다면 성능이 큰 폭으로 향상될 수 있다.
만약 동일한 Training Budget (1.28M images x 90 Epochs) 를 쓰면, 오히려 더 성능이 안좋아진다.
Pre-training 시 Weight Decay 값을 잘 조절하는 것이 중요하다.
낮은 Weight Decay값이 convergence를 향상시킬 수 있는 것으로 보여질 수 있지만, Final 성능은 매우 떨어질 수 있다.
즉 낮은 Weight Decay값은 Weight Norm을 키우고 이로 인해서 Convergence를 가속화 시키고 충분한 학습을 방해할 수 있다.