[논문리뷰] EfficientNet - penny4860/study-note GitHub Wiki
1. 정리
요약
- Compound Scaling 방법을 제안
- baseline 모델을 scaling 하는 방법으로, 3가지 dimension을 모두 고려
- depth
- width
- resolution
- single dimension scaling 방식에 비해 효율적
- baseline 모델을 scaling 하는 방법으로, 3가지 dimension을 모두 고려
- EfficientNet을 제안
- NAS로 baseline model을 찾고
- mnasnet과 비슷한 구조 :
MBConv / SE
- mnasnet과 비슷한 구조 :
- compound scaling 방식으로 모델의 크기를 늘림.
- ImageNet 성능
Accuracy / FLOPS / parameter / cpu inference time
에서 좋은 성능training time / gpu inference time
에 대한 실험결과는 없음.
- Transfer Learning 성능
- NAS로 baseline model을 찾고
질문
2. 내용
1. Introduction
-
Compound Scaling
- ConvNet의 크기(scale)를 키우는 방법은 3가지가 있다.
- resolution / depth / width(filter 숫자)
- 기존의 연구들은 Network의 크기를 키우기위해 1가지 방식만을 고려.
- 본 논문에서는 3가지 요소각각의 fixed scaling coefficient를 정하고, 이들을 동시에 scale up.
- 직관적 설명
resolution
이 커지면- 더 큰 receptive field가 필요하다. -->
depth
를 키워야 함. - 더 많은 pattern을 capture해야함 -->
width
를 키워야 함.
- ConvNet의 크기(scale)를 키우는 방법은 3가지가 있다.
-
EfficientNet
- NAS로 baseline network를 찾고
- compound scaling으로 모델의 complexity를 높임.
- ImageNet에서 SOTA
- 다른 classification task에서도 SOTA의 성능을 보임
2. Related Work
-
ConvNet Accuracy
- ImageNet Task를 타겟으로 Convnet 모델을 개발
- 다른 classification task에서도 높은 성능을 보임
- 다른 CV task (object detection)에서도 높은 성능을 보임.
-
ConvNet Efficiency
- squeezenet 계열
- mobilenet 계열
- shufflenet 계열
- NAS로 찾은 모델
- mnasnet
- proxylessnas
-
model scaling
- ConvNet의 스케일을 어떻게 높일것인가?
3. Compound Scaling
3.1. Problem Formulation
- CNN 디자인
- layer 구조를 찾는다.
- baseline 모델을 찾는다.
- baseline 모델을 scaling
3.2. Scaling Dimensions
- 1st Observation
- 3가지(depth, width, resolution) 중에서 1개라도 늘리면 성능이 좋아짐
- 너무 늘릴경우 성능향상이 saturation / diminish 된다.
3.3. Compound Scaling
-
2nd Observation
- 네트워크를 scaling 할떄는 3가지 dimenstion을 골고루 늘려야함.
-
compound scaling method
- theta : compound scaling coefficient
- 모델의 크기를 결정
- alpha, beta, gamma :
- 결정된 resource를 어떻게 배분할지를 결정
- theta : compound scaling coefficient
4. EfficientNet Architecture
-
개발과정
- NAS로 Baseline Model인
EfficientNetB0
을 찾음.- accuracy / flops을 최적화
- latency는 반영하지 않았음.
- Compound Scaling 으로 B1 ~ B7까지 scaling
- B0의 최적 (alpha, beta, gamma) 조합을 grid search로 찾아 이를 fix
- theta를 높여서 B1 ~ B7에 반영
- NAS로 Baseline Model인
-
모델 구조
- mnasnet과 비슷한 구조
- 주요 빌딩 블록
- MBConv : Mobile Inverted Bottleneck
- mobilenet v2, mnasnet
- Squeeze-and-Excitation
- SENet
- MBConv : Mobile Inverted Bottleneck
5. Experiments
5.1. Scaling Up MobileNets and ResNet
- 같은 자원을 사용할때 compound scaling이 single dimension scaling 보다 성능이 좋았음.
5.2. Imagenet
-
Training Setting
- rmsprop optimizer
- decay 0.9 and momentum 0.9;
- batch norm momentum 0.99;
- weight decay 1e-5;
- initial learning rate 0.256 that decays by 0.97 every 2.4 epochs.
- swish activation
- fixed autoaugment policy
- stochastic depth
- 모델 크기에 따라 dropout ratio 조절
- B0 : 0.2
- B7 : 0.5
- rmsprop optimizer
-
accuracy / flops / parameters / cpu infrence time 에서 성능이 좋았음