ICML 2021에 accept된 구글 논문인 EfficientNetV2: Smaller Models and Faster Training을 리뷰해보겠습니다!
1. Introduction
EfficientNet의 후속모델로 EfficientNetv2는 기존 모델보다 다음과 같은 목적성을 이룰려고 하고 이루게 됩니다.
- More efficient Training time
- More efficient Parameter number
- More efficient Accuracy
실제로 아래그림은 EfficientNetv2의 결과인데 보면 위의 목적성을 모두 잘 이뤗네요. 역시 구글..
그럼 EfficientNetv2의 어떤 contribution이 있었기에 이런 결과를 도출해냈을까요? (1) EfficientNet을 기반으로하는 search space를 구성하여 NAS search (Training-aware NAS)를 통해 EfficientNetv2 구조를 찾아 내었고 (2) image size에 따라 augmentation magnitude를 달리하는 Progressive Learning을 제안하였습니다.
2 EfficientNetV2 Architecture Design
2.1 Depthwise convolutions are slow in early layers but effective in later stages
기존 EfficientNet의 extensive depthwise convolution (MBConv)은 training의 bottleneck을 가져왔습니다. MBConv는 paramter수와 FLOPs낮지만 최신 (movbile or server) accelerators를 온전히 활용하지 못하는 문제가 있기 때문에 training에 악영향을 끼쳤습니다.
그래서 EfficientNetv2에서는 Fused-MBConv를 추가하게 됩니다. Fused-MBConv는 MBConv의 depthwise conv3x3 and expansion conv 1x1을 하나의 conv 3x3으로 바꾼 것입니다.
그래서 stage1-3까지 Fused-MBConv를 적용했을때 적은 parameter수와 FLOPs를 유지하면서 training speed도 함께 줄었습니다. (stage4-7까지는 기존의 MBConv를 사용) 그렇지만 staget1-7에 paramter수와 FLOPs, 그리고 training speed모두에 좋지 않았다고 하네요. 아래는 Fused를 사용하지 않았을때와 특정 범위에 Fused를 사용했을때의 성능 결과입니다.
각 stage마다 둘중 어떤 모듈을 사용하는 것이 최적인지 사람이 직접찾기 힘드니 여기서! NAS를 사용하게 됩니다.
2.2 Training-Aware NAS and Scaling
제안된 Training-Aware NAS는 EfficientNet을 backbone으로 사용하여 Search space을 구성하였습니다.
- Search space
- convolution operation types: {MBConv, Fused-MBConv}
- the number of layers
- kernel size: {3x3, 5x5}
- expansion ratio: {1, 4, 6}
기존의 EfficientNet의 pooling이나 skip ops에 대한 search는 수행하지 않았다고 하며 EfficientNet의 channel size을 그대로 사용하였다고 합니다. 그리고 기존의 MnasNet의 RL 방법론을 search strategy로 설정합니다.
구체적으로, search space로부터 1000개의 모델을 뽑고 reduce된 image사이즈로 10 epoch만 Training하게 됩니다. MnasNet의 RL방법론은 보상(reward)를 최대화 시키도록 RNN을 학습시켜 최적으로 network를 찾게됩니다. 보상(reward)은 \(A \cdot S^w \cdot P^v \) 으로 설정됩니다. \( A \)는 model accuracy, \( S \)는 normalized training step time과 parameter size인 \( P \)으로 구성됩니다. 그리고 \( w \) = -0.07, \( v\) =-0.05으로 설정된다고 합니다.
그렇게 해서 찾은 EfficientNetv2 은 아래와 같습니다. stage1~3은 Fused-MBConv가 사용됨을 볼 수 있네요!
2.3 EfficientNetV2 Scaling
EfficientNetV2-S부터 EfficientNetv2-M/L의 차이를 주기 위해 EfficientNet에서 사용했던 compound scaling을 사용합니다. 다만, 빠른 training time을 위해 image maximum size를 480으로 제한하였고 뒤 쪽의(stage 5,6)에 점차적으로 layer의 추가 했다고 하네요. (heuristic하게 함)
3. Progressive Learning
저자들의 가설은 다음과 같습니다 "training image size에 따라 fixed된 regularization은 accuracy 성능에 악영향을 미칠 것이야!" 입니다. image size이 작으면 network의 output feature map이 작아지고 이는 Network의 capacity가 작아지므로 작은 Image에는 regularization을 약하게(weak)주어야 한다는 말입니다. 그 반대도 마찬가지고요. image size가 크면 overfitting될 수 있으니 강하게(strong) regularization을 주어야한다는 것이죠.
그래서 해당 가설을 증명하기위해 저자들은 search space에서 샘플링된 model에 대해 image size와 RandAugmentation의 magnitude(regularization)을 달리했을 때 성능 결과를 보았고 가설은 맞아떨어졌습니다! image size가 작을때 magnitude를 작게 줘야 성능이 높았고 image size가 클때는 magnitude가 커야 성능이 좋았습니다.
3.1 Progressive Learning with adaptive Regularization
위의 결과를 통해 Progressive Learning은 다음과 같은 프로세스를 진행합니다.
- 초기 training epoch에는 smaller image size와 weak regularization을 준 상태로 training 진행
- image size가 작으니 빠르게 학습되고 simple한 representation을 학습하게 해줌
- 점차적으로 image size와 strong regularization을 주어 training 진행
수식적으로 표현해보죠. 전체 training은 총 \( N \) 번의 step을 가지며 target image size는 \(S_e \), regularization magnitude list \( \Phi_e = { \phi^k_e } \)로 정의합니다. \( k\)는 regularzation type으로 dropout, mixup, randaugmentation중 하나 입니다.
그리고 training을 총 \( M \) stage 으로 나누게 됩니다. 각 stage마다 같은 image size \(S_i \)와 regularization \( \phi^k_i \)을 사용하겠죠. 그리고 저자들은 heuristic하게 \(S_0 \)와 \( \phi^k_0 \)을 정했고 stage가 올라갈때마다 linear interpolation을 사용하여 더 큰 image size와 strong regularization을 주었습니다. 다음은 위의 progressive learning 프로세스를 알고리즘으로 표현한 것입니다.
4. Experiment setting for ImageNet
ImageNet dataset에 대해 RMSProp optimizer를 상요하였고 0.9 decay, 0.9 momentum, batch norm momentum 0.99와 weight 1-5을 주었습니다. 그리고 350epoch으로 학습하였고 batch size는 4096입니다. learning rate는 0에서 0.256까지 설정하였고 2.4 epoch마다 0.97씩 learning rate를 decay하였습니다. 추가적으로 exponential moving average with 0.9999 decay rate, RandAugment , Mixup, Dropout, and stochastic depth( 0.8 survival probability)을 사용하였습니다. 다음은 네트워크 설정입니다.
5. Result for ImageNet
'AI paper review > Mobile-friendly' 카테고리의 다른 글
[MobileOne] An Improved One millisecond Mobile Backbone 논문 리뷰 (0) | 2022.06.25 |
---|---|
EfficientFormer: Vision Transformers at MobileNet Speed 논문 리뷰 (1) | 2022.06.08 |
Lite Pose 논문 리뷰 (0) | 2022.04.18 |
MobileViT 논문 리뷰 (0) | 2022.03.28 |
Adjustable Real-time Style Transfer (0) | 2022.03.10 |