Statictics & Math & Data Science/Neural Networks

[EfficientNet] 논문 리뷰: 모델의 파라미터(스케일링)에 대한 고찰

Taewon Heo 2020. 4. 9. 11:49

EfficientNet 논문은 ConvNets의 스케일을 높이는 기존 접근법을 다시 한번 짚고 넘어가자는 의미의 ‘Rethinking’을 논문의 타이틀로 사용하였다. 이 논문은 기존 ConvNets들이 성능을 향상시키기 위해 사용한 방법들을 구분하여 소개하고, 성능을 향상시키면서 모델 연산량을 최대화하는 효율적인 ConvNets을 제안한다.

2012년 AlexNet (Krizhevsky et al., 2012)을 시작으로 ImageNet 대회에서 정확도는 큰 폭으로 향상되었다. GoogleNet (Szegedy et al., 2015)는 6.8M의 파라미터 수를 가진 모델로 74.8%의 top-1 accuracy를 달성했으며, SENet (Hu et al., 2018)은 145M의 파라미터 수를 가진 모델로 82.7%의 top-1 accuracy를 달성했다. GPipe (Huang et al., 2019)는 557M의 파라미터 수를 가진 모델로 84.3%의 top-1 accuracy를 달성했다. 일반적으로 대부분의 어플리케이션에서는 정확도가 가장 중요하지만, 메모리의 한계도 존재하기 때문에 앞으로 높은 성능을 얻기 위해서는 효율성도 반드시 고려해야한다.

효율을 향상시킨 ConvNets은 SqueezeNet(Iandola et al., 2016; Gholami et al., 2018), MobileNets (Howard et al., 2017; Sandler et al., 2018), ShuffleNets (Zhang et al., 2018; Ma et al., 2018)이 있다. 효율적인 네트워크 구조에 대한 연구로 네트워크의 너비, 깊이, 커널 사이즈의 튜닝을 통한 효율성을 향상시킨 모델이 등장하였고, ResNet (He et al., 2016)은 네트워크의 깊이(#layer)를 조절한 ResNet-18, ResNet-200를 발표하였다. 반면, 너비(#channels)를 조절하여 스케일링한 WideResNet (Zagoruyko & Komodakis, 2016)MobileNets (Howard et al., 2017)은 더 큰 사이즈의 이미지를 활용하여 성능을 향상시킨 모델이다.

Figure 1. Model Scaling

 

EfficientNet은 이러한 모델 스케일링 기법을 중점적으로 다뤄 새로운 스케일링 기법을 제안한다. 우선, 깊이(depth)를 증가시키는 방법은 많은 ConvNets에서 사용되었다. 레이어 수가 많아질수록 ConvNet은 더 다양하고 복잡한 특징을 잡아낼 수 있고, 새로운 이미지에 대한 일반화 성능도 좋아진다. 하지만 레이어 수가 많아질수록 기울기 소실 등의 문제로 학습이 어려워지는 문제가 발생한다. 너비(width)를 스케일하는 방법은 작은 사이즈의 모델에 주로 사용되며, 너비의 확장은 더욱 미세한 특징을 잡아낼 수 있고 네트워크 학습을 쉽게 만든다. 하지만, 과도한 스케일링은 고수준의 특징을 잡아내기 어렵게 하는 경향이 있다. 해상도(resolution)을 증가시키는 방법은 더욱 미세한 패턴을 잡아낼 수 있다. ConvNet의 입력 크기는 224 x 224를 시작으로 299, 331, 480 과 같이 점점 커졌고 더 높은 정확도를 보였다. Object detection ConvNets에서는 600 x 600이 가장 많이 사용된다. 해상도도 마찬가지로 해상도가 높아짐에 따라 성능 향상 폭은 감소한다.

아래의 그림은 베이스라인 모델을 각기 다른 Width(w), Depth(d), Resolution(r)를 바꿔가며 실험한 결과이다. 결과적으로 더 큰 깊이와 너비, 해상도를 가질수록 높은 성능을 달성한다. 하지만, 정확도가 80%에 도달하게 되면, FLOPS 증가에 비해 정확도 향상이 어려워진다.

Figure 2. Scaling Up a Baseline Model with Different Network Width (w), Depth (d), and Resolution (r) Coefficients

 

일반적으로 해상도가 높아질수록 네트워크의 레이어도 많아져야 하고, 너비도 증가해야한다. 이처럼, 너비, 깊이, 해상도와 같은 스케일링 차원들은 서로 독립적이지 않으며, 균형을 잘 맞춰야 한다. 아래의 실험은 스케일링을 복합적으로 실험한 결과이다.

 

Figure 3. Scaling Network Width for Different Baseline Networks

 

우선, 너비는 고정한 채로 깊이와 해상도를 변경한 경우 정확도가 빠르게 포화되는 현상을 보였다. 깊이를 증가시키고 (d=2.0) 해상도를 높인 (r=1.3) 경우, 동일한 FLOPS에서 더 높은 성능을 달성했다.

EfficientNet 논문에서는 새로운 복합 스케일링 기법을 제시하기 위해 compound coefficient  를 이용하여 스케일링 차원을 정의하였다.

α, β, γ  grid search를 통해 결정한 상수이고, compound coefficient 사용 가능한 리소스에따라 사용자가 결정하는 계수이다. 일반적인 컨볼루션 연산의 FLOPSd,w2, r2 에 비례한다. 예를 들어, 깊이를 증가시켜 레이어 수를 두 배로 하면, FLOPS도 두 배가 된다. 반면, 네트워크의 너비나 해상도를 두 배 증가시키면, FLOPS는 네 배 증가한다. 일반적으로 ConvNets의 연산 비용은 컨볼루션 연산이 대부분을 차지하므로 FLOPS(α∙β2γ2)^  로 추정할 수 있다. 위 수식에서는 α∙β2γ2≈2  라는 제한조건을 설정함으로써, FLOPS2 로 추정할 수 있도록 했다.

 

Table 1. EfficientNet-B0 baseline network

위의 표는 EfficientNet-B0의 구조이며, 주요 blockmobile inverted bottleneck MBConv (Sandler et al., 2018; Tan et al., 2019)로 구성되어 있고 squeeze-and-excitation optimization (Hu et al., 2018)을 적용하였다. 실험은 이 베이스라인 모델로 시작하여 복합 스케일링 기법을 다음과 같이 두 단계로 적용하였다.

  • STEP 1: 1로 고정하고 제한 조건을 만족하는 범위 내에서 grid searchα, β, γ 를 구한다. EfficientNEt-B0의 경우 α=1.2,  β=1.1,  γ=1.15  이 최적의 값이었다.

  • STEP 2: α, β, γ 를 상수로 고정하고 를 증가시켜가며 네트워크의 스케일을 확장하고, 그 네트워크는 EfficientNet-B1부터 B7이 된다.

사이즈가 큰 모델도 마찬가지로 파라미터 최적화를 통해 스케일링 차원을 구할 수 있지만, 모델의 크기가 클수록 탐색 비용이 매우 크다. 반면, 제안된 기법은 작은 네트워크에서 α, β, γ 가 균형을 이루는 적절한 값을 찾고 compound coefficient를 증가시킴으로써 효율적인 스케일링 차원(깊이, 너비, 해상도 값) 탐색을 가능하게 한다.

결과적으로 본 논문에서 제안한 기법을 사용하여 EfficientNet-B1부터 B7을 학습시켜 ImageNet 결과를 보면, 다른 ConvNets과 비교하여 파라미터 수와 FLOPS이 훨씬 작으며 높은 성능을 보인다. 특히, EfficientNet-B784.4% top1 / 97.1%top-5 accuracy를 보였으며, 66M의 파라미터 수와 37B FLOPS, GPipie (Huang et at., 2018)와 비교하여 더 높은 정확도에 파라미터 수는 8.4 배 적다.

Figure 4. Model Size vs. ImageNet Accuracy

 

[참조] TAN, Mingxing; LE, Quoc V, “Efficientnet: Rethinking model scaling for convolutional neural networks.” arXiv preprint arXiv:1905.11946, 2019.