논문 링크 - https://arxiv.org/abs/1905.11946
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
Convolutional Neural Networks (ConvNets) are commonly developed at a fixed resource budget, and then scaled up for better accuracy if more resources are available. In this paper, we systematically study model scaling and identify that carefully balancing n
arxiv.org
0. Abstract
Network의 depth, width, resolution의 balance를 조정하는 scaling작업에 대한 연구를 진행
depth, width, resolution의 모든 dimension을 균일하게 scaling하는 scaling method 제시
Neural architecture search를 통해 새로운 네트워크 EfficientNet을 설계
(기존 ConvNet보다 더 뛰어난 정확도와 효율성을 가짐)
1. Introduction
이전 연구는 ConvNet의 성능을 높이기 위해 depth, width, resolution중 하나만 scale하는 방법을 사용
본 논문에서는 depth, width, resolution을 동시에 균일하게 scale하는 Compound scale방법을 제안
Figure 1 - Compound scale을 사용한 EfficientNet은 더 적은 파라미터들로 더 높은 정확도를 보임
3. Compound Model Scaling
3-1. Problem Formulation
Conv layer는 Y_i=F_i(X_i)함수로 정의된다
ConvNet N은 구성된 레이어의 리스트 형태로 N = f_k◉f_k-1◉...◉f_2◉f_1(x) = ◉i=k-1 F_i(X1)로 표현된다
Eq(1) - <H,W,C> shape을 가진 X를 L번 반복하는 작업을 s번 수행하는 함수 F에 넣는다
일반적인 ConvNet 설계에서는 최적의 layer 구조 F_i를 찾는데 초점을 맞추는 것과 달리
model scaling은 기존 네트워크에서 미리 정의된 F_i를 변경하지 않고,
네트워크의 Length(L_i), Width(C_i), Resolution(H_i, W_i)를 scaling하는 방법이다
target으로는 주어진 제약 조건에 대한 모델 Accuracy를 Maximize하는 것이며,
이는 최적화 문제로 공식화할 수 있다
3-2. Scaling Dimensions
3-1 에서 정의한 것처럼 모델 구조 F_i를 변경하지 않고,
주어진 제약 조건을 만족하는 모델 Accuracy를 maximize하기 위해
최적의 depth(d), width(w), resolution(r)을 찾는 것이 목적이다
그러나 d, w, r은 서로 의존적이고, 서로 다른 제약조건으로 인해 값이 변한다는 어려움이 존재하여 기존 방법에서는 이중에 하나만 선택하여 scale하였다
Depth(d)
ConvNet에서 일반적으로 사용하는 scaling
Deeper network에서 vanishing gradient 문제로 학습 어려움
Figure 3을 보면 d=8.0에서 오히려 Accuracy가 떨어지는 것을 볼 수 있음
Width(w)
작은 크기의 모델에서 자주 사용되는 scaling
네트워크가 넓을수록 more fine-grained feature를 포착할 수 있고, 훈련하기 쉬운 경향이 있지만,
매우 넓고 얕은 네트워크는 higher level feature를 포착하기 어려운 경향이 있다
Figure 3을 보면 w가 커질수록 Accuracy도 상승하지만, 상승폭이 점점 감소한다
Resolution(r)
higher resolution input image를 사용하면, ConvNet은 more fine-grained pattern을 잡아낼 수 있다
Figure 3을 보면 r이 커질수록 Accuracy도 상승하지만, 상승폭이 점점 감소한다
Observation 1
네트워크의 depth,width,resolution의 dimension을 확장하면 Accuracy도 향상되지만,
모델이 클수록 상승폭은 감소한다
3-3. Compound Scaling
서로 다른 scaling dimension(d,w,r)이 독립적이지 않다는 것을 경험적으로 관찰했다
직관적으로
Higher resolution image의 경우 네트워크의 depth를 늘려야 유사한 특징을 포착하는데 도움이 된다
Higher resolution image의 경우 네트워크의 width를 늘려야 more fine-grained 패턴을 잘 포착한다
이는 단일 scaling이 아닌 서로 다른 scaling dimension을 조정하고 balancing해야한다는 것을 말한다
Figure 4를 보면 확인 가능하다
Observation 2
더 나은 Accuracy와 efficiency를 위해 ConvNet scaling을 할 때,
네트워크의 width, depth, resolution의 모든 균형을 맞추는 것이 중요하다
본 논문에서 네트워크의 width, depth, resolution를 균일하게 scale하는 Compound scaling 방법 제안
Eq(3)에서 파이는 사용자의 resource에 맞게 임의 숫자를 넣음
본 논문에서는 α x β^2 x γ^2 을 2로 제한
4. EfficientNet Architecture
model scaling은 baseline network인 F_i를 변경하지 않기에,
좋은 baseline Network를 갖는 것도 중요하다
기존 ConvNet을 사용하여 scaling method를 평가하지만, 더 잘 입증하기 위해 EfficientNet을 개발
Table 1은 EfficientNet-B0 구조이고, MBConv block(MnasNet에서 사용)을 이용하고,
거기에 squeeze와 excitation optimization을 추가하였다
Model scaling 계수 결정에는 2개의 STEP을 거침
STEP 1
파이를 1로 고정하고, resource를 2배 더 사용할 수 있다고 가정
Eq(2), Eq(3)에 따라 α, β, γ의 small grid search 를 진행
EfficientNet-B0는 α=1.2, β=1.1, γ=1.15일 때 최상의 값을 가짐
STEP 2
α, β, γ를 상수로 고정하고, Eq(3)에 따라 서로 다른 파이를 설정하고,
baseline network를 scale up을 진행하여 EfficientNet-B1 to B7을 얻음
5. Experiments
5-1. scaling Up MobileNets and ResNets
단일 차원 sclaing 방법과 비교할 때, Compound scaling 방법이 모든 모델의 Accuracy를 향상시킴
기존의 ConvNet에 대해 Compound scaling 방법이 효과적임을 보여줌
5-2. ImageNet Result for EfficientNet
다른 ConvNet보다 훨씬 적은 수의 파라미터와 FLOPS로 더 높은 Accuracy를 보여준다
EfficientNet이 추론 속도와 정확도 모두 매우 좋다
5-3. Transfer Learning Results for EfficientNet
ImageNet으로 학습 후, Transfer Learning을 진행했을 때, 5개의 dataset에서 1등을 달성
7. Conclusion
ConvNet scaling에 대해 연구를 진행하고,
네트워크의 width, depth, resolution의 balance를 놓치는 것이
Accuracy와 efficiency에 안좋은 영향을 준다는 것을 확인했다
더 좋은 성능을 위해 ConvNet을 쉽게 scaling할 수 있는 Compound scaling방법과 EfficientNet을 제안
이는 훨씬 적은 수의 파라미터와 FLOPS로 sota모델의 Accuracy를 능가하는 결과를 얻었다
참고 자료 출저
댓글