CNN은 모델의 정확도를 높이기 위해 스케일을 키워가며 발전했다. 본 논문에서는 모델의 깊이, 너비, 입력 이미지 해상도(resolution)의 균형을 맞출 수 있는 새로운 스케일링 방법으로 compound coefficient를 제안한다. compound coefficient 방법으로 SOTA 달성! 이는 resnet이나 mobilenet 등 CNN 기반 구조에도 효과가 나타났다.
Figure 1. EfficientNet 모델은 정확도는 더 높으며 모델이 더 작고, 빠르게 동작한다.
스케일링 방법은 ConvNet의 성능향상을 위해 자주 사용되는 방법이다. 가장 많이 알려진 방법으로는 델의 깊이, 너비를 깊게 만드는 방법이다. 또한 이미지의 resolution에 따라 모델 사이즈를 변경시키는 방법이 있다. 즉 세가지 중 하나만 차원을 조정하는 방식이 사용됐었고, 사소하게 조정해줘야하는 작업이 필요해서 최적의 정확도와 효율을 내는 방법이 아직 없었다.
본 논문에서는 세 개의 균형을 간단한 상수비로 구할 수 있다. 임의 조정방식들과는 달리, 본 논문에서는 세 개를 균등하게 스케일링 한다.
ConvNet Accuracy
AlexNet 이후 ImageNet competition에서 더 깊어지고 커지면서 정확도가 높아지는 모델들이 여럿 발표되었다. 최근 발표되는 모델들은 ImageNet뿐만 아니라 다른 데이터셋에서도 잘 작동한다. 그러나 정확도는 높아졌지만, 사용하는 자원 역시 크게 늘어났다.
ConvNet Efficiency
깊은 ConvNets는 좀좀 over-parameterized된다. 효율을 높이기 위해 모델 압축하는 여러 기법이 제안되었다.(SqueezeNets, MobileNets, ShuffleNets 등.)
Model Scaling
ResNet(ResNet-18, ResNet-50, ResNet-200)은 깊이를 달리 하였다.
MobileNets는 network width를 달리 하였다.
또한 이미지 해상도가 높아지면 (찾아낼 정보가 많아서) 정확도를 높아진다. (물론 계산량도 많이 늘어난다.)
많은 연구가 진행되었으나 어떻게 효율적인 조합을 찾는지는 아직까지 정립되지 않았다.
H, W, C를 입력 tensor의 크기, F를 Conv layer라 하면 ConvNet은 아래의 수식으로 정의할 수 있다.
design space를 좁히기 위해 모든 레이어는 균등하게 scaling 하고, 최고의 정확도를 갖도록 하는 optimization 문제를 다룬다. 이를 식으로 나타내면 아래와 같다.
가장 중요한 문제는 최적의 d, w, r 은 서로 연관되어 있다는 것이고 다른 제약조건에서 값이 변한다는 것이다.
Depth: 네트워크의 깊이가 증가할수록 모델의 capacity가 커지고 더 복잡한 feature를 잡아낼 수 있지만, vanishing gradient의 문제로 학습시키기가 더 어려워진다. 이를 해결하기 위해 Batch Norm, Residual Connection 등의 여러 기법들이 등장하였다.
Width: 각 레이어의 width를 키우면 정확도가 높아지지만 계산량이 제곱에 비례하여 증가한다.
Resolution: 입력 이미지의 해상도를 키우면 더 세부적인 feature를 학습할 수 있어 정확도가 높아지지만 마찬가지로 계산량이 제곱에 비례해 증가한다.
계산량은 깊이에 비례하고, 나머지 두 변수에 대해서 그 제곱에 비례하므로 다음과 같은 비율로 변수들이 움직이게 정할 수 있다.
Figure 4. 아래 그림은 depth, reolution 고정했을 때 width의 변화에 따른 성능 변화 결과이다. network는 더욱 깊은 depth와 높은 resolution의 조건일 때, 성능이 더 높은 것을 알 수 있다.
α,β,γ는 small grid search로 결정되는 상수입니다. 그리고, ϕ는 주어진 연산량에 따라 사용자가 결정하는 상수다. 이 논문에서는 α⋅β2 ⋅γ2 ≈2 α⋅β2 ⋅γ2 ≈2 로 맞춰서 전체 계산량은 2 ϕ2 ϕ에 비례하게 잡았다.
MnasNet에 기반한 EfficientNet-B0인 baseline network를 사용한다.
α, β, γ를 직접 갖고 큰 모델에 실험해서 더 좋은 결과를 얻을 수도 있지만 큰 모델에 대해서는 그 실험에 들어가는 자원이 너무 많다. 그래서 작은 baseline network에 대해서 먼저 좋은 α, β, γ를 찾고(STEP 1) 그 다음에 전체적인 크기를 키운다(STEP 2).
기존의 ConvNet과 EfficientNet을 비교한다. EfficientNet은 모든 영역에서 일관되게 훨씬 적은 파라미터 수와 FLOPS를 보여주는 것을 알 수 있다.
-> Table 2. 파라미터 수는 최대 8.4배 적고, FLOPS는 최대 16배 적다.
Table 3. ResNet과 MobileNet을 Compound Scailing했을 때의 결과로 depth, width, resolution을 어떻게 늘리는지에 대한 비교를 결과이다.
Figure 7. CAM을 네크워크의 깊이, 너비, resolution만 조정하여 설계했을 때와 compound scaling을 활용하여 조정하는데 균형을 맞췄을 때 CAM이 어떻게 관찰되는지에 대한 결과로 compound scaling을 했을 때 영상 내에서 의미 있는 부분에 대해 피처맵의 활성화가 잘 이루어진 것을 볼 수 있다.
Figure 8. EfficientNet의 너비, 깊이, 입력 해상도를 하나만 조절했을 때와 compound scaling을 했을 때의 성능 비교
compound scaling을 통해 ImageNet과 일반적으로 사용되는 5개의 전송 학습 데이터 세트 모두에서 모바일 크기 EfficientNet 모델이 훨씬 더 적은 매개 변수와 FLOPS로 최첨단 정확도를 능가하여 매우 효과적으로 스케일링될 수 있음을 보여준다.