Paper Info
- 저자: 구글 브레인 팀 소속
- ICML 2019 게재 예정
- 공식 TF 코드 제공
Introduction
Goal
이미지 관련 태스크에 쓰이는 CNN의 Capacity를 결정하는 3가지 하이퍼 파라미터인 depth, width, image size의 조합 중 가장 효율적으로 성능을 향상 시킬 수 있는 구성을 찾아보자.
Previous Works
일반적으로 CNN의 capacity를 늘리면, 그 성능도 함께 늘어난다는 것은 이전의 많은 연구들에 의해 증명된 바가 있다. 특히, CNN의 채널수(=Width)와 conv layer 수(=Depth)를 늘려가면서 가장 효율적인 capacity scaling 방법을 찾는 연구는 기존에도 진행된 바가 있다. 또한, 이미지 관련 태스크에서 입력 이미지의 사이즈가 증가하면, 그 성능도 향상된다는 것도 알려져 있는 사실이다. 하지만, CNN의 capacity를 늘이기 위해 필요한 연산량 및 메모리와 성능의 증가폭은 linear한 관계가 아니며, 정해진 사용가능한 연산량 및 메모리에서 가장 높은 성능을 달성할 수 있는 채널수, conv layer수, 이미지 사이즈의 세 가지 조합에 관한 연구는 진행된 바가 없다.
CNN의 Width, Depth, Resolution의 세가지 요소가 성능에 미치는 영향은 각 요소들 간에 dependency가 존재한다. 경험적으로, 어떤 한 요소만의 크기를 늘려서 Capacity를 늘리는 경우, 그 성능의 개선 효과가 빠르게 줄어드는 경향이 존재하다는 것을 이전 연구들에서 확인된바 있다.
본 논문에서는 CNN의 Capacity를 결정하는 세가지 요소들 간의 최적의 조합(혹은 비율)을 찾기 위한 경험적, 시스템적 연구 결과를 제시한다.
Contribution
- CNN capacity를 증가시키는 세가지 요소인 Width, Depth, Resolution 간의 최적의 비율을 찾는 방법을 제안하고, 이를 통해 ImageNet Classification Task에서 기존의 SOTA 네트워크 구조(GPipe)보다 8.4배 적은 weight수와 6.1배 빠른 속도로 더 높은 성능을 달성하였다.(84.4% top-1, 97.1% top-5 accuracy)
- 효율적인 base network 구조를 찾기 위해 neural achitecture search를 사용하여 효율적인 CNN 네트워크 아키텍쳐를 제안하였다
Proposed Method
Compound Model Scaling
Problem Formulation
문제를 수식으로 정의하기 위해 다음과 같이 ConvNet을 표현할 수 있다.
일반적으로 ConvNet은 여러개의 스테이지로 나뉘며, 각 스테이지마다 입력 영상의 크기가 다르고, 스테이지마다 conv레이어의 갯수가 다르다. 이를 수식으로 표현하면 다음과 같다.
대부분의 CNN 디자인은 최선의 CNN 구조 F_i를 찾으려는 것과 달리, model scaling은 F_i가 고정된 상태에서 네트워크의 Length(L_i), Width(C_i), Resolution(H_i,W_i)을 확대한다. F_i를 고정시킴으로서, model scaling의 디자인 문제가 크게 단순화 되지만, 여전히 L_i, C_i, H_i, W_i를 각 레이어마다 찾아야 하는 것은 매우 큰 설계 공간을 가진다. 이를 최적화 문제로 수식화 하면 다음과 같다.
Scaling Dimensions
위 수식 (2) 문제는 주어진 여러가지 리소스 제약 안에서, 서로 의존성이 있는 d,w,r 간의 최적 값을 찾는 것이다. 기존의 대부분의 연구들은 이 문제의 어려움 때문에 하나의 요소에 대해서만 ConvNet을 스케일링 하였다.
위 그림의 실험 결과를 보면, 각 요소들 중 하나씩만을 독립적으로 증가시킨 경우, 모두 연산량이 증가함에 따라 매우 빠르게 성능 개선 폭이 줄어드는 것을 확인할 수 있다. 이 현상을 다음과 같이 정리할 수 있다.
Compound Scaling
w,d,r의 세가지 스케일링 디멘전은 서로 독립적이지 않다. 이를 확인하기 위한 실험 결과는 아래와 같다.
위 그래프를 보면, d,r을 고정하고 w를 증가 시키는 경우, 동일한 FLOPS에서 d, r가 클 수록 w의 증가에 의한 성능 증가폭이 큰 것을 확인할 수 있다. 이 결과를 정리하면 다음과 같다.
앞에서 정리된 두가지 관찰 결과에 따라, 스케일링을 하기 위한 방법(=compund scaling method)을 아래와 같이 제안한다.
위 수식에서 φ 는 유저가 정하는 scaling factor이고, depth와 width, resolution에 대해 같은 값이 적용된다. α, β, γ는 간단한 grid search로 정할 수 있는 constant 값이다. 일반적인 컨볼루션의 연산량은 d, w^2, r^2 에 비례한다. 따라서, 스케일링에 의한 전체 컨볼루션 FLOPS은 아래의 수식에 비례하는 것으로 근사화 가능하다.
수식 (3)의 첫번째 constraint에 따라, 제안 방법에 의해 정해지는 전체 FLOPS는 2^φ 배로 증가하는 것으로 근사화 된다.
EfficientNet Architecture
Model scaling을 적용하기 위해서는 좋은 베이스라인 모델 구조를 사용하는 것이 중요하다. 제안 방법에서는 accuracy와 FLOPS를 최적화하는 multi-objective neural architecture search를 통해 베이스라인 구조를 개발하였다. MNasNet과 동일한 search space를 사용했기 때문에 결과 네트워크의 구조는 그와 매우 유사하다.(하지만, 제안방법의 목표 FLOPS 400M으로 더 크다.)
메인 빌딩 블록은 mobile inverted bottleneck MBConv (ref 참조) 이고, squeeze-and-excitation optimization이 추가되었다. NAS를 통해 찾은 베이스라인 네트워크는 다음과 같다.
베이스라인 EfficientNet-B0이 정해진 이후, 모델을 스케일링하는 방법은 다음과 같다.
위 방법에서는 가장 작은 연산량 제한에서 최적의 α, β, γ 를 grid search에 의해 찾은 후, φ을 증가시키는 방식을 사용하였다. 이 대신 φ가 증가 될 때마다 최적의 α, β, γ 를 찾는 방법도 있으나, 이 방법은 모델의 사이즈가 커질 수록 grid search에 드는 연산 비용이 너무 커지는 문제가 있다.
Experiment
Scaling Up MobileNet and ResNet
제안된 compound scaling method의 효과를 확인하기 위해 기존의 MobileNets과 ResNet에 해당 방법을 적용하여 성능 비교를 한 경우, 제안된 방법에 의해 기존 네트워크에서도 동일한 연산량에서 성능이 크게 향상되는 것을 확인할 수 있었다.
ImageNet Results for EfficientNet
제안된 베이스라인 모델 구조인 EfficientNet에 compund scaling을 적용한 결과는 위 표와 같다. 기존의 SOTA였던 GPipe에 비해, 8.4배 줄어든 파라미터수를 가진 제안 방법이 그보다 높은 성능을 달성하였고, 더 적은 연산량을 가진 다른 모델들에 비해서도 크게 향상된 성능을 보여주었다. (동일한 성능에서 ResNext-101 대비 18배 적은 FLOPS 사용)
제안 모델의 latency를 비교하기 위한 실험에서도 아래 표와 같이 크게 향상된 속도를 보여주었다.
Transfer Learning Result for EfficientNet
제안 모델을 다른 classification 데이터셋에 Transfer Learning을 한경우의 성능도 제안 방법의 효과가 입증되었다.
Comparison of different scaling method on EfficientNet
EfficientNet 베이스라인에 w,d,r를 각각 하나씩만 증가 시킨 경우와 제안된 compound scaling 성능을 비교한 결과, compound scaling에 의한 성능 개선 폭이 훨씬 크다는 것을 알 수 있다.
Conclusions
제안 방법은 CNN 모델 디자인을 할 때, 중요한 요소인 width, depth, resolution에 대해 가장 효율적인 성능을 낼 수 있는 조합을 찾는 방법과 베이스라인 모델 아키텍쳐인 EfficientNet을 제안하였다. 제안된 방법에 의한 성능 개선 효과는 굉장히 놀라운 수준이다. (기존의 neural architecture search나 효율적 모델 디자인 방법들을 압도적으로 앞섰다.) 제안 방법은 classification 태스크에 대해서만 실험이 이뤄졌지만, 다른 컴퓨터비전 관련 태스크에도 제안 방법의 접근법을 적용하면, 모델 연산량과 파라미터수를 매우 큰폭으로 줄이는데 도움이 될 것으로 기대된다.
Share article