[2019] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 논문리뷰

Chan·2021년 8월 1일

hancom프로젝트

목록 보기
8/10

EfficientNet 설명

ENET이랑은 다른듯..?

  • EfficientNet은 기존 CNN 모델에 비해 파라미터 수(연산량)가 적으면서 높은 정확도를 보이는 모델
  • 아래는 2019년 EfficientNet 발표 당시 성능 그래프

  • 파라미터 수를 줄이고 정확도를 올릴 수 있었던 이유: compound scaling 기법 사용
  • 일반적으로 CNN 모델의 정확도를 올리기 위해서 잘 짜여진 모델을 찾는 것도 있지만, 기존 모델을 바탕으로 Complexity를 높이는 방법도 사용
    (기존 모델의 width, depth, resolution size를 조절한다는 뜻)
  • width scaling(conv filter 개수), depth scaling(layer 개수), resolution scaling(input image 해상도)
  • compound scaling은 위의 3가지 scaling을 혼합한 것 (직관적으로 input image 크기가 커지면 그에 따라 receptive field도 늘어나야하고 더 커진 fine-grained pattern들을 학습하기 위해 더 많은 channel 필요할 것)

  • EfficientNet 논문에서는 모델(F)를 고정하고 depth(d), width(w), resolution(r) 3가지를 조절하는 방법을 제안
    (이때 고정하는 모델(F)를 좋은 모델로 선정하는 것이 굉장히 중요, 아무리 scaling factor를 조절해도, 초기 모델 자체의 성능이 낮다면 임계 성능도 낮기 때문)
  • MnasNet과 거의 동일한 search space 하에서 AutoML을 통해 모델을 탐색하였고, 이 과정을 통해 찾은 작은 모델을 EfficientNet-B0
    (BO가 초기모델이고 Scaling 할수록 B1, B2, B3... 늘어남)

  • 위 Imagenet 데이터셋에 대한 결과와 같이 기존 ConvNet들에 비해 비슷한 정확도를 보이면서 parameter수와 FLOPS 수를 굉장히 많이 절약함
    (FLOPS: Floating point operations per second, 1초 당 부동소수점 연산 횟수, 사칙연산, 지수로그루트 이런 연산 한번에 1 FLOPS)

  • 위 그림은 모델이 이미지를 분류할 때 이미지의 어느 영역에 집중했는지 확인할 수 있는 Class Activation Map(CAM)
  • 3개의 scaling factor를 각각 고려할 때 보다 동시에 고려하였을 때 더 정교한 CAM을 얻을 수 있다는 점도 인상깊은 결과

Reference:
EfficientNet https://arxiv.org/abs/1905.11946
EfficientNet 논문 한글 리뷰 https://hoya012.github.io/blog/EfficientNet-review/

profile
Backend Web Developer

0개의 댓글