작성자 : 이혜민 (gudbooy@gmail.com)
발표일 : 20201019 at DeepLAB 논문반
Paper : https://arxiv.org/abs/1912.11370
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 resolution과 number 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를 가속화 시키고 충분한 학습을 방해할 수 있다.