[논문 리뷰] EfficientNet : Rethinking Model Scaling for Convolutional Neural Network
2019년에 나온 논문이지만 아직도 Computer Vision 분야에서 많이 쓰이는 EfficientNet 논문 리뷰입니다.
[ 논문 링크 ]
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks | Papers With Code
Papers with Code - EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
🏆 SOTA for Medical Image Classification on NCT-CRC-HE-100K (Accuracy (%) metric)
paperswithcode.com
We demonstrate the effectiveness of this method on scaling up MobileNets and ResNet.
EfficientNet이 나오기 전에는 VGGNet -> Resnet -> MobileNet으로 이미지 분류에서 대표적인 모델들이 있었습니다.
모두 NN (Neural Network) 기반의 CNN 모델입니다. 성능을 올리기 위해 단순히 layer의 수를 깊게 쌓는 depth scaing을 활용했습니다. Resnet-200의 경우는 layer의 수가 200개이니 ..
1. Intro
- scaling up : depth 깊고, width 넓게, image resolution로 model size 크게 중 하나
→ balance all dimensions of network width/depth/resolution (상수비)

2. compound scaling이란?
: quantify the relationship among all three dimensions of network width, depth and resolution
=> 결국에는 연산의 효율성을 고려하며, 성능은 그대로 유지시킬 수 있는 scaling 방법입니다.
- problem formulation
- design space를 줄이기 위해 모든 layers가 uniformly scaling 되도록 함 (with constant ratio)
- scaling dimensions

d : deeper ConvNet → capture richer and more complex features, generalize well on new tasks
// but more difficult to train due to the vanishing gradient problems
w : wider networks → capture more fine-grained features and are easier to train
// but have difficulties in capturing higher level features
r : higher resolution input → ConvNets can potentially capture more fine-grained patterns
- compound scaling method

φ : a user-specified coefficient (몇 개의 resources가 사용가능할지 control)..
결론적으로 논문에서는 EfficientNet이 이제껏 나왔던 논문들보다 좋다는 것을 강조하고 있습니다.
현업에서 이미지 분류를 수행할 때에도 EfficientNet이 가장 좋은 성능을 보이고 있습니다. 특히 저는 이미지의 크기게 따라 B1~B3 버전을 사용하곤 합니다. 많은 튜닝을 하지 않아도 어느 정도의 성능이 보장되는 것 같아 현재까지도 활용성이 높은 모델인 것 같습니다.
경험적으로 클래스별 이미지의 수가 다를 경우에는 모수가 적은 클래스에서는 그리 좋은 성능을 보이지 않아, 모델 튜닝 방법에 대해 고민해보는 요즘입니다.