티스토리 뷰

들어가며

본 글은 논문 EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks를 리뷰한 글입니다.

 

내용

기존의 한계

ConvNet을 스케일 업 할 때 보통 depth, width, image resolution을 스케일링하는 데, 이에 대한 제대로 된 이해가 없다.

 

  • 스케일 업 할 때도 위 세 요소 중 하나만 스케일링한다.
  • 2, 3가지도 임의로 스케일 할 수 있으나 수동으로 튜닝해야 하며 정확도와 효율성 또한 최적이 아니다.

 AlexNet이후로 지속해서 모델의 크기가 커졌으나 하드웨어 메모리의 한계로 더 높은 정확도를 위해선 더 나은 효율성이 필요하다.

 최근 MobileNet, SqueezNet, ShuffleNet이나 NAS(neural architecture search)로 네트워크의 width나 depth, 커널 타입 / 사이즈를 튜닝하며 정확도와 효율성을 트레이드하며 모델 압축을 하고 있으나 더 큰 모델로 확장하는 방법이 명확하지 않다.

 앞선 연구에서도 깊이, 너비, 해상도를 균형있게 스케일링하는 시도가 있었으나 해당 연구는 수동으로 튜닝해 주었다.

논문의 키 아이디어

네트워크의 width/depth/resolution의 균형을 잘 잡는 것이 중요하다. (경험적으로 관찰)

 

  • 균형만 잘 잡히면 각 요소를 일정한 비율로 확장하여 간단히 정확도와 효율성을 끌어올릴 수 있다.
  • 이러한 관찰에 근거하여 혼합 스케일링 방법(compound scaling method)을 제안한다.
  • 이 방법은 관행적인 방법과는 달리 네트워크의 width, depth, resolution을 균일하게 고정된 스케일링 계수에 따라 스케일링해주면 된다.

Compound Model Scaling

문제 정의

ConvNet의 i번째 레이어는 Fi를 오퍼레이터, Yi를 출력 텐서, Xi<Hi,Wi,Ci>의 입력 텐서라 할 때Yi=Fi(Xi)로 정의될 수 있다. ConvNet을 N이라 할 때 N=Fk...F2F1(X1)=j=1...kFj(X1)와 같은 레이어를 엮은 리스트로 표현될 수 있다. 또한 ResNet과 같이 ConvNet의 각 스테이지의 레이어는 같은 아키텍처를 공유한다. 따라서 다음과 같이 표현할 수 있다.

여기서 FiLi은 레이어 Fii 번째 스테이지에서 Li번 반복된다는 의미이다.

 보통의 ConvNet이 Fi의 최선의 아키텍처를 찾는데 집중하는 반면 모델 스케일링은 이 Fi를 고정하고 레이어의 길이인 Li, 너비인 Ci, 그리고/혹은 해상도인 (Hi,Wi)를 확장해 보는 것이다. 이런 식으로 Fi를 고정하면 디자인 문제를 간소화할 수 있다. 그러나 여전히 각 레이어별로 Li,Ci,Hi,Wi를 탐색하기엔 디자인 공간이 크므로 각 레이어 별로 균일하게 스케일링한다. 논문의 목표는 어떠한 리소스가 제한된 환경이 주어졌을 때 모델의 정확도를 최대화하는 것이다. 그리고 이는 최적화 문제로 정의될 수 있으며 다음과 같이 수식화 할 수 있다.

 

w,d,r은 각각 너비, 깊이, 해상도를 스케일링 하기 위한 계수이며 F^i,L^i,H^i,W^i,C^i은 베이스라인 네트워크에서 사전 정의되어 있는 파라미터이다.

Scaling Dimensions

앞서 정의한 문제의 주요 어려움은 d,w,r이 상호 의존적이고 리소스 제약에 따라 그 값이 변한다는 점이다. 이러한 문제 때문에 기존 모델들은 깊이, 너비, 해상도 중 하나만 스케일링하였다.

 

 Depth(d)를 조절하는 것은 가장 흔한 방법이며 직관적으로 깊은 ConvNet은 더 풍부하고 복잡한 피처를 포착할 수 있으며 새로운 태스크에서 더 잘 일반화 할 것 같다. 그러나 네트워크가 깊어질수록 vainishing gradient problem으로 인해 학습시키기 어려워진다. skip connection이나 batch normalization과 같은 테크닉들이 이런 현상을 완화해 주긴 하나 ResnNet-1000이 ResNet-101과 유사한 정확도를 보이는 것에서 볼 수 있듯 매우 깊은 네트워크에선 정확도 향상도 줄어든다. Figure 3에서 이러한 경향을 확인할 수 있다.

 Width(w)는 작은 사이즈의 모델에서 스케일링 할 때 자주 사용되며 넓은 네트워크가 fine-grained 피처를 더 잘 포착하는 경향이 있다고 한다. 그러나 극도로 넓고 얕은 네트워크는 고수준의 피처를 잘 포착하지 못하는 경향이 있다고 한다. Figure 3에서 볼 수 있듯 정확도 향상은 금방 포화(saturate)된다.

 Resolution(r)이 큰 입력 이미지일 수록 ConvNet은 잠재적으로 더 fine-grained 한 패턴을 포착할 수 있다. 초기 ConvNet은 224×224로 시작해서 현대의 ConvNet은 더 높은 정확도를 위해 299×299나 331×331을 사용한다. SOTA 모델도 480×480을 사용하며 객체 탐지 분야에서도 600×600이 널리 쓰인다. Figure 3에서 확인할 수 있듯 해상도가 높아지면 정확도가 개선되나 매우 높은 해상도에선 정확도 향상이 줄어든다.

 

위 내용을 종합하면 너비나 깊이, 해상도를 스케일링 하는 것 모두 정확도를 개선하나 모델이 커질수록 정확도 향상은 줄어든다.

Compound Scaling

직관적으로 이미지 해상도가 커지면 네트워크의 깊이도 커져야 더 많아진 픽셀의 유사한 피처를 포착하는 데 도움이 된다. 너비도 마찬가지로 더 fine-grained 한 패턴을 포착하기 위해 이미지의 해상도가 커지면 너비도 함께 커져야 한다. 이러한 직관은 깊이와 너비, 해상도를 통합하고 균형을 맞춰야 한다고 말한다.

 이 직관이 옳은지 검증하기 위해 Figure 4에 서로 다른 깊이와 해상도를 지닌 네트워크에 너비를 스케일링한 것을 비교했다. 깊이와 해상도를 변경하지 않은 네트워크의 경우 정확도가 금방 포화한다. 깊이와 해상도의 계수를 모두 2로 더 크게 만든 경우 같은 FLOPS에서 더 나은 정확도를 보였다.

 

위 내용을 종합하면 저 나은 정확도와 효율성을 추구하기 위해선 ConvNet 스케일링 과정에서 네트워크의 너비, 깊이, 해상도 모두의 균형을 맞추는 것이 중요하다는 것이다.

본 논문에선 혼합 계수인 φ 를 네트워크의 너비, 깊이, 해상도에 균일히 원칙적으로 사용하는 compound scaling method를 제안한다.

여기서 α,β,γ는 작은 그리드 서치로 결정될 수 있는 상수이다. 그리고 φ 는 리소스를 얼마큼 더 쓸 수 있는지에 따라 유저가 정해주는 계수이다. 특히 FLOPS는 기존 합성공 연산자에선 d,w2,r2에 비례해서 늘어난다. 따라서 위 식의 경우 총 FLOPS는 (αβ2γ2)ϕ와 근사하게 증가할 것이다. 본 논문에선 αβ2γ22로 제한한다.

 

EfficientNet Architecture

베이스라인 네트워크에서 레이어 오퍼레이터 별로 모델 스케일링을 바꾸지 않기 때문에 좋은 베이스라인 네트워크를 갖는 것 또한 중요하다. 평가는 기존 모델에서 할 예정이지만 더 좋은 시연을 위해 본 논문에선 EfficientNet이라 불리는 새로운 모바일 사이즈의 베이스라인을 개발했다.

 정확도와 FLOPS 둘 다 최적화 하는 아키텍처를 찾았고 식은 ACC(m)×[FLOPS(m)/T]w 이다. ACC(m)FLOPS(m)은 각각 모델 m의 정확도와 FLOPS를 의미한다. T는 목표하고자 하는 FLOPS이며 w는 정확도와 FLOPS 사이의 트레이트 오프를 조절하는 하이퍼파라미터로 -0.07로 정해주었다. 또한 어떤 하드웨어를 타겟으로 삼고 있지 않기에 레이턴시보단 FLOPS를 줄이는 방향으로 탐색하였다. 주요 블록은 mobile inverted bottleneck MBConv이다.

 

 

실험

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함