EfficientNet
Rethinking Model Scaling for Convolutional Neural Network
- 본 리뷰에는 잘못된 내용이 있을 수 있으므로 유의하며 읽으시길 바랍니다.
논문: https://arxiv.org/abs/1905.11946
Introduction
기존에는 Convnet의 크기를 키우는 것(scaling up)은 더 높은 정확도를 얻기 위해 사용되었고,
깊이(depth) 혹은 너비(width)를 키우는 것이 가장 흔한 방법이었다.
이 논문은 기존 방법 보다 더 높은 정확도(accuracy)와 효율성(efficiency)을 달성할 수 있는
scaling up 방법을 다룬 논문이다.
논문에서는 network의 너비(width), 깊이(depth), 해상도(resolution)의 균형이 중요하다는 것을
실험을 통해 증명하였다.
network scaling은 baseline network에 영향을 많이 받기 때문에 neural network search를 통해 새로운 baseline network(EfficientNets)을 만들었다.
아래는 EfficientNet과 다른 network의 정확도와 parameter의 수를 비교한 그래프이다.
모든 면에서 EfficientNet이 앞서고 있음을 확인할 수 있다.
Related Work
ConvNet Accuracy
AlexNet을 이후로 network의 크기가 커질수록 정확도도 높아졌다.
2014 ImageNet의 winner인 GoogleNet은 6.8M개의 parameter를,
2017 ImageNet의 winner인 SENet은 145M개의 parameter를 가지고 있었고,
2018 ImageNet에서는 557M개의 parameter를 가진 network가 우승을 하였다.
이처럼 network의 규모가 커지게 되면서, 이를 처리하기 위한 별도의 작업이 필요했고, 하드웨어 메모리를 한계를 마주하게 되었다.
그 결과 효율성에 대한 중요도가 높아지게 되었다.
ConvNet Efficiency
Model Compression은 효율성을 위해 network의 크기를 줄이는 한 방법이며,
그리고 최근에는(논문기준) neural architecture search를 이용하여 network의 크기를 조절하는 방법이 큰 인기를 끌고 있다. 하지만 적용해야 할 범위가 더 넓어서 더 많은 비용이 드는 큰 모델에는 어떻게 적용해야 하는지 불분명하다는 문제가 있다. 그래서 이 논문에서는 규모가 매우 큰 모델에도 적용할 수 있는 방법에 집중하였고, 이를 위해 model scaling에 집중하였다.
Compound Model Scaling
- Problem Formulation
- Scaling Dimensions
- Compund Scaling
이처럼 network의 balance를 조절하는 연구는 이전에도 있었지만, 까다로운 tuning manual를 따라야 했다.
하지만 이 논문에서는 아래와 같은 새로운 compound scaling method를 제시하였다. (Equation 3)
EfficientNet Architecture
model scaling은 layer operator를 바꾸지 않기 때문에 basline network의 중요도가 높다. 따라서 이 논문에서는 더 좋은 성능을 위해 새로운 baseline인 efficientNet을 만들었고 아래 table1이 EfficientNet-B0의 구조이다.
이 network에 적합한 compound scaling을 위해 equation2,3의 공식을 이용하여 는 1.2, 1.1, 1.15이다.
그리고 EfficientNet-B0의 결과를 이용하여 EfficientNet-B1 ~ B7도 얻어냈다.
Experiments
아래의 내용은 ImageNet에서 EfficientNet과 기존 network의 성능을 비교한 것이다.
(표에 있는 자세한 설명을 참고)