[Paper Review]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

vhzpt109·2022년 8월 24일
0

이번 포스트에서 리뷰할 논문은 2019 IMCL에서 발표된 EfficientNet이다.

Background

EifficientNet이 공개되기 전 CNN 모델들은 모델의 크기를 키우면서 정확도를 끌어올리는 방법이 주를 이루었다. 하지만 하드웨어 자원은 제한적이며 성능과 효율성은 trade-off가 나타날 수밖에 없었다. 본 논문에서는 효율적으로 모델을 조절하며 성능과 효율성, 두 가지를 잡아내는데 성공했다. 어떤 방법론을 제시하여 모델을 효율적이면서 성능까지 끌어냈는지 다루도록 하겠다.

Model Scaling

일반적으로 CNN 모델에서 성능을 올리는 방법은 모델의 Depth, 모델의 Width, 입력 이미지의 Resolution을 조절한다. depth는 모델의 layer를 늘리는 방법이다. 대표적으로 ResNet이 있다. width는 모델의 Convolution Filter의 Channel수를 조절하는 방법이다. 대표적으로 MobileNet 등이 있다. resolution은 단순히 입력 이미지의 해상도를 키우는 방법이다. 이미 앞선 3가지 방법은 ResNet, MobileNet 등에서 모델의 성능에 관여하는 것을 실험적으로 찾아냈다. 아래의 그림은 각 scaling에 따른 정확도를 보여준다. 성능이 좋아지긴 하지만 어느 정도 선에서는 Saturation되는 모습이 보인다.

이처럼 단일 방법에 많은 연구가 진행됐지만, 이를 효율적으로 조합하여 모델의 성능을 올리는 방법은 정립되지 않았다. EfficientNet에선 이를 효율적으로 조합하여 모델의 성능을 올리는 방법을 제안했다.

Compound Model Scaling

단어의 뜻에서도 알 수 있듯이 Scaling 기법을 Compound(혼합)하여 모델의 성능을 올린 방법이다. 다음의 그림을 보면 단일 기법을 적용했을 때보다 기법을 혼합하여 적용하였을 때 더 높은 성능 향상을 보인다.

그렇다면 왜 혼합하여 적용했을 때 더 높은 성능을 보이는 걸까? 아래의 그림을 봐보자.

위의 예제는 Resolution Scaling을 한 예제이다. 이미지의 해상도가 높아지게 되면 Receptive Field(빨간 사각형)가 담는 영역이 작아진다. 그로 인해 Receptive Field를 증가시켜야 하는데, Receptive Field를 증가시키기 위해선 모델의 Depth를 증가시켜야 하고, 해상도가 커진 만큼 좀 더 세부적인 Feature를 얻게 된다. 이 세부적인 Feature를 처리하기 위해선 Convolution 채널의 수가 증가되어야 하는데, 이처럼 모델의 width, depth, resolution은 서로 성능 향상의 밀접한 상관관계가 있다. 그로 인해 혼합하여 적용했을 때 더 높은 성능을 보이는 것이다.

EfficientNet Architecture

EfficientNet은 MnasNet에 기반한 base network를 사용한다. MnasNet이란 AutoML 기법 중 하나인 Neural Architecture Search을 사용하여 성능과 효율을 최적화한 모델이다. 간단하게 말하면 AutoML 이란 Model Architecture 등을 사람이 직접 설계하는 것이 아닌 Machine Learning 방법론으로 설계하는 방법이다. 즉 딥러닝 모델이 한 Domain Task에 최적화된 모델을 설계해 주는 것이다. 딥러닝 모델이 다른 딥러닝 모델을 설계해 준다고 이해하면 된다. (Neural Architecture Search에 대해선 차후에 다른 포스트에서 리뷰를 하겠다) MnasNet은 모델의 성능과 효율(모델이 가벼운 정도)을 최대화 한 모델이기 때문에 light 하면서 성능까지 좋은 모델이다.

EfficientNet은 b0부터 b7까지의 모델이 있으며 EfficientNet은 MnasNet을 기반으로 한다. b0부터 b7의 차이는 Compund Model Scaling의 차이다. 위에서 언급한 width, dept, resolution를 점차 올린 것이다. EfficientNet-b0는 base network이고, b7으로 올라갈수록 3개의 변수에 대한 상수 값들이 높아진다.

Experiments

위 테이블을 보면 기존 CNN 모델보다 작은 파라미터로 더 높은 성능을 보이는 것을 알 수 있다.

ResNet과 MobileNet에도 Compound Scaling을 적용했을 때도 성능 향상을 보였다는 실험적 지표이다.

Class Activation Map을 통해 Compound Scaling을 적용한 모델이 실제 영상에서 더 중요한 Feature에 반응하는 것을 보여준다.

Conclusion

EfficientNet은 Neural Architecture Search로 얻어낸 효율적인 모델에서 Compound Scaling을 적용하여 성능까지 끌어올린 모델이다. 기존 CNN보다 8.4배 더 작고 6.1배 높은 정확도로 ImageNet SOTA를 달성했다.

Reference

Paper : https://arxiv.org/abs/1905.11946?context=stat.ML

profile
Machine Learning Engineer

0개의 댓글