EfficientNet

이승수·2022년 8월 23일
0

일반적으로 모델의 정확도를 높일 때,
①network의 depth를 깊게 만드는 것
②channel width(filter 개수)를 늘리는 것(width가 넓을수록 미세한 정보가 많이 담아짐)
③input image의 해상도를 올리는 것을 조절한다.
EfficientNet은 3가지를 효율적으로 조절할 수 있는 compound scaling 방법을 사용했다. 깊이, 너비, 입력 이미지 크기가 일정한 관계가 있다는 것을 실험적으로 찾아내고, 이 관계를 수식으로 만들었다.


※ EfficientNet은 이 3가지의 최적의 조합을 AutoML을 통해 찾은 논문이다. 조합을 효율적으로 만들 수 있도록 하는 compound scaling 방법을 제안하며 이를 통해 더 작은 크기의 모델로도 SOTA를 달성한 논문이다.

Compound Scaling

  • Depth: 네트워크의 깊이가 증가할수록 모델의 capacity가 커지고 더 복잡한 feature를 잡아낼 수 있지만, vanishing gradient의 문제로 학습시키기가 더 어려워진다. 이를 해결하기 위해 Batch Norm, Residual Connection 등의 여러 기법들이 등장하였다.
  • Width: 각 레이어의 width를 키우면 정확도가 높아지지만 계산량이 제곱에 비례하여 증가한다.
  • Resolution: 입력 이미지의 해상도를 키우면 더 세부적인 feature를 학습할 수 있어 정확도가 높아지지만 마찬가지로 계산량이 제곱에 비례해 증가한다.

w(너비), d(깊이), r(입력 해상도)에 따른 정확도 값을 나타낸 그래프이다. 그림을 보면 w, d, r이 일정값 이상이 되면 정확도 증가량이 줄어든다. w, d, r 중 하나만 조절하는 것보다 d와 r을 함께 조절하여 최고의 효율을 찾아내는 것이 Compound Scailing 이다.

profile
AI/Data Science

0개의 댓글