[논문리뷰 | CV] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (2020) Summary

9e0na·2023년 6월 19일
1

[논문리뷰]

목록 보기
5/41

Title

  • EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
  • EfficientNet

0. 이 논문을 읽기 전에 알면 좋을 것들

1) FLOPS

: Floating point Operations Per Second라는 의미로 컴퓨터의 성능을 수치로 나타낼 때 주로 사용되는 단위이다. 즉, 초당 부동소수점 연산이라는 의미로 컴퓨터가 1초동안 수행할 수 있는 보동소수점 연산의 횟수를 기준으로 삼는다.

2) NAS

: Neural Architecture Search의 약어로 신경망 모델 구조 탐색이라는 의미이다. 기존 딥러닝 아키텍처 설계에 있어서 대부분 수동적으로 하이퍼파라미터를 조정하였고, 이에 따라 어느 task에서 어떤 dataset을 쓰느냐에 따라 최적의 네트워크 구조가 달랐다. NAS는 이런 고민으로부터 시작되었고, data와 task를 대상으로 뉴런 연결 구조 및 가중치를 탐색하는 것이 목표이다.

NAS는 Search Space(탐색 범위), Search Strategy(탐색 전략), Performance Estimation Strategy(모델 성능 추정 전략) 등 3가지 요소로 구성된다.

2.1) Search Space

  • 알고리즘이 탐색을 수행하는 영역으로 Layer수, 하이퍼 파라미터, Operation의 종류 등을 의미한다.

2.2) Search Strategy

  • Search Space의 요소들을 이용하여 최적 Architecture를 찾기 위한 방법
  • Exploration, exploitation을 고려해야 한다.

2.3) Performance Estimation Strategy

  • Search Strategy에서 추출한 후보 Architecture의 성능을 예측한다.
  • Search Strategy는 후보 Architecture의 예상 성능을 반영하여 새로운 Architecture를 만드는 과정을 반복한다.

Abstract

  • 효율적인 모델 구축을 위한 depth(깊이), width(너비), resolution(해상도) 세 가지의 균형을 이루는 network가 더 나은 성능을 가진다는 것을 증명했다.
  • 본 논문에서는 이를 Compound Scaling Method라고 부른다.
    -> 복합계수(compound coefficient) 를 사용해 모델의 depth/width/resolution를 균일하게 스케일하는 새로운 방법을 제시

  • 위 그림은 EfficientNet 모델이 다른 모델과 비교했을 때 더 적은 파라미터들로 더 높은 정확도를 보인다는 것을 보여준다. (다른 모델은 파라미터수가 많을수록 정확도가 올라간다.)

1. Introduction

  • 지금까지 CNN모델의 정확도를 높이기 위해 depth, width, image size 중 하나만 scaling 하는 것에 초점을 맞췄다.
  • '지금까지 더 나은 정확도와 효율성으로 ConvNet을 scaling하는 정형적인 방법은 없을까?'라는 의문점을 제기하였다.
  • 이 연구에서 width, depth, resolution 세 가지의 (d, w, r)균형을 balance있게 scaling하는 것이 효과적이라는 것을 증명하였고, compound scaling method를 제안하였다.
    -> 상수 비율로 세 가지를 각각 scaling하면 된다는 것을 알아챘다.
  • compound coefficient 방법으로 SOTA를 달성하였고, 이는 Resnet or MobineNet에서도 영향을 미쳤다.

  • 위 그림에서 맨 오른쪽에 있는 (e) compound scaling과 같이 width, depth, resolution 세 가지 요소를 모두 scaling을 시도할 것이다.
    • ex) 만약 2^N 만큼의 컴퓨팅 자원을 사용할 수 있다면, depth를 α^N, width를 β^N, image size를 γ^N 로 증가시키면 된다.
      • 즉, 이미지가 크면 receptive field를 늘리기 위해 더 많은 Layer가 필요하고, 더 미세한 pattern을 얻기 위해 더 많은 channel이 필요하다.

2. Related Work


3. Compound Model Scaling


4. EfficientNet Architecture


5. Experiments


6. Discussion


7. Conclusion

  • 이 논문은 ConvNet Scaling을 깊게 연구하였고, width, depth, resolution 간 균형이 Model을 scale up하는 데 매우 중요한 요소였음을 확인하였다.
  • accuracy가 더 높고, 효율적이며 좋은 성능을 가지는 compound scaling과 EfficientNet을 제안한다.
  • compound scaling을 적용한 EfficientNet은 더 적은 parameters와 FLOPs로 더 좋은 성능을 보였다.

🎯 Summary

  1. 저자가 뭘 해내고 싶어 했는가?

    • 기존에는 모델 성능을 높일 때 수동으로 조절했던 depth(깊이), width(너비), resolution(해상도) 등을 compound scaling로 제안함으로써 짧은 시간에 좋은 성능을 내는 모델을 만들고자 하였다.
    • compound scaling을 적용한 EfficientNet을 제안하여 효율성을 높인 모델 구축하고자 한다.
  2. 이 연구의 접근 방식에서 중요한 요소는 무엇인가?

    • 기존에는 성능 향상을 위해 width, depth, resolution 중 하나만 선택하여 scaling하였다.

      하지만 Compound Scaling Method를 통해 복합계수(compound coefficient)를 사용해 이 세 가지 요소를 균일하게 스케일하자는 Idea가 핵심이다!
  3. 어느 프로젝트에 적용할 수 있는가?

    • Wconcept_Clothes 패션 의류 이미지 분류 프로젝트를 할 때 적용할 수 있다.

      기존에는 ResNet을 하였지만, EfficientNet을 사용하여 경계선이 모호한 이미지 또는 뭉텅이로 있는 이미지 등에 적용함으로써 더 좋은 성능을 기대해본다.
  4. 참고하고 싶은 다른 레퍼런스에는 어떤 것이 있는가?

    • 선행논문: ResNet > MobileNet > SENet
    • EfficientNet에서는 MobileNet과 SENet에서 제안했던 개념이 사용되기 때문에 먼저 공부하는 것을 권장한다.
      • ObjectDetection + EfficientNet을 적용한 EfficientDet를 공부하기!
  5. 느낀점은?

    EfficientNet이 현업에서 왜 많이 사용되는지 알 수 있었고, scaling을 통해 정확도 및 성능을 더 올릴 수도 있구나를 알게 되었다.

    한정된 resource에서 어떻게 하면 성능을 더 높일 수 있을까?라는 의문을 던지며 이와 비슷한 논문 리뷰를 얼른 해봐야겠다!!

📚 References

profile
데이터사이언티스트가 되기 위해 [a-zA-Z]까지 정리하는 거나입니다 😊

0개의 댓글