본문 바로가기

Paper

[논문] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

original paper: https://arxiv.org/pdf/1905.11946.pdf

발표 PPT
https://konkukackry.sharepoint.com/:p:/g/personal/chdnjf103_konkuk_ac_kr/Efhj8tmvHMNNskT_saA6dIkBRM3dNKm9cFNk8JMPfKhZ-A?e=aOJLpa 


Abstract

CNN 모델의 크기를 키우면 성능이 좋아지지만, 리소스와 trade-off 가 있다. compoud coeffcient를 통해 모델 최적의 depth, width, resoultion을 찾는 EfficientNet을 제안한다. 이를 통해 적은 파라미터(리소스)로 뛰어난 성능을 달성했다.

 

Intro

CNN 모델 크기를 키우는 방법은 크게 depth, width, resoluion으로 나눠진다. 이때까지 연구는 나머지를 고정하고 하나의 파라미터를 scale 하며 휴리스틱하게 모델 성능을 평가했다. EfficientNet은 3가지 파라미터 사이의 밸런스를 고정된 상수로 scaling 하는 방법을 제시한다. 이를 통해 한정된 리소스 하에서 최적의 성능을 내는 모델을 만들 수 있다.

예를 들어 컴퓨팅 리소스가 $2^N$ 이면 depth는 $\alpha^N$, width는 $\beta^N$ resolution은 $\gamma^N$ 으로 uniform 하게 scale 한다. 이는 인풋 이미지가 커지면(데이터가 커지면) 더 큰 모델 capacity가 필요하다는 기존 연구에 관점에서 합리적이다. 이 scale method를 MobileNet과 ResNet base model에 적용하였고 잘 동작했다. 아래 그래프를 보면 EfficientNet이 기존 모델들보다 적은 파라미터(리소스)로 좋은 성능을 보인다.

Fig1, EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

즉, depth, width, resolution을 동시에 늘리는게 좋은데, 리소스와 성능 사이에서 어떻게, 얼마나 늘릴지에 대한 효과적인 scale method가 이 논문의 main contribution.

 

compound scaling method

방법은 생각보다 간단하다. $\alpha$, $\beta$, $\gamma$는 고정된 상수로 주어지고 파이에 사용자가 원하는 값을 정해주면, 각 파라미터가 uniform 하게 scale 되어 결정된다. ConvNet 연산량은 위 세 가지 파라미터에 dependent 한데, 그 비율이 depth는 그대로, width와 resolution은 제곱으로 영향을 준다. 따라서 제약식 $\alpha* \beta^2*\gamma^2 = 2$ 은 스케일링으로 인한 연산량 증가가 2에 비례하게 하기 위함이다. 

해당 방법을 적용해보기 위해 MnasNet을 조금 변형하여 EfficientNet-B0으로 baseline network를 만들었다. 이때 optimization goal은 다음과 같이 정확도와 연산량을 함께 최적화한다.

we first fix φ = 1, and find the best values for EfficientNet-B0 are α = 1.2, β = 1.1, γ = 1.15, under constraint of α · β 2 · γ 2 ≈ 2. 

이렇게 파이가 1일 때 grid search로 찾은 최적의 파라미터값($\alpha$, $\beta$, $\gamma$)을 고정한 뒤 파이를 늘려가며 실험한다.

ImageNet에서 기존 모델들에 비해 파라미터와 FLOPs가 작고 비슷한 혹은 상회하는 정확도를 보였다.