Markdown 수식추가 Markdown 추가 네이버 스크립트 구글 스크립트

Revisiting ResNets: Improved Training and Scaling Strategies

I. Bello W. Fedus X. Du E. Cubuk ...

Abstract

Novel Computer vision architecture들은 spotlight를 독점하지만, 모델 구조의 영향력은 보통 학습 방법과 scaling strategies의 변화와 함께 융합된다. 본 논문은 ResNet을 가지고 3가지 측면에서 위의 내용을 풀어낸다. 놀랍게도, training과 scaling 전략들이 구조를 바꾸는 것보다 더 좋은 결과를 가져왔다. 최고의 성능을 가지는 scaling strategy를 보여줄뿐만 아니라, 2가지의 새로운 scaling strategies를 제안한다. 1) overfitting이 발생할 수 있는 영역에서 model depth scaling. 2) 추천된 방법이 아닌 좀 더 느리게 image resolution을 증가시키는 것.

본 논문에서는 ResNet을 개선하여 ResNet-RS를 제안한다. TPU에서 EfficientNet보다 1.7~2.7배 더 빠르며 비슷한 정확도를 가지며 large-scale semi-supervised learning setup에서 Top-1 86.2%의 정확도를 가진다. 본 저자들은 새로운 ResNet을 실제로 사용하는 것을 추천한다.

1. Introduction

vision model의 성능은 모델구조, 학습 방법과 scaling 전략의 생성물이다. 하지만, 최근 연구들은 구조 변경만 강조하며, novel architecture들이 많은 발전의 기초가 되지만 동시에 학습 방법과 hyperparameters들을 변경해야하는 부분들이 있다. 최신의 학습방법으로 새로운 구조를 학습한 것들도 때지난 학습방법으로 오래된 구조와 비교를 자주한다. (ResNet과의 비교). 본 논문은 유명한 ResNet 구조의 학습방법과 scaling 전략의 영향력에 대해 연구한다.

먼저, ResNets에 적용된 최근 학습방법과 정규화 방법에 대해서 조사했으며 표 1에서 볼 수 있다. 학습방법 사이의 상호작용을 발견했으며, 여러개의 정규화 기술을 사용할 때, weight decay value를 줄이면 이득을 보는 것을 확인했다. 표 1에서도 확인할 수 있는데, 개선된 학습 방법으로 약 3%의 성능 상승을 확인했으며, 2개의 작고 공통적인 구조인 ResNet-D와 Squeeze-and-Excitation을 추가해 성능 상승을 확인했다.

본 논문에서는 철저하게 scaling rule들을 정해 진행했는데, 모든 학습 기간을 철저하게 지켰다. (10 epoch 대신에 350 epoch 사용). 여기서, 저자들은 모델크기, 데이터셋 크기, epoch의 수와 같은 scaling strategy와 학습 영역과 최고 성능 사이의 의존성을 발견했다. 또한, 이러한 의존성은 작은 영역에서는 누락되었으며 이것은 sub-optimal이 나타나게했다. 따라서, 저자들은 새로운 scaling stragies를 제안했으며, 1) overfitting이 발생할때는 depth를 늘리는 것을 멈추고 width를 늘리기 2) image resolution을 천천히 증가시키기 이다.

이러한 학습 및 scaling strategies를 사용해 ResNet-RS를 만들었으며, EfficieintNet보다 더 빠르고 성능이 좋다. 특히, large-scale semi-supervised learning setup에서는 더 큰 차이를 보였다.

마지막으로, 개선된 training과 scaling strategis의 전략의 일반성을 테스트하는 일련의 실험으로 마무리한다. 먼저 저자들의 방법으로 EfficieintNet-RS를 만들어 일련의 downstream takss에서 최신의 self-supervised algorithms (SimCLR SimCLRv2)와 비교했으며, video classification으로도 확장이 가능하다. 약 3D-ResNets으로 Kinetics-400 dataset에 대해 약 4%의 성능 향상을 보았다.

 

Contributions

  • 정규화 기술와 그것들의 상호작용을 실험을통해 최적의 상태를 찾았으며 이것은 모데 구조 변경없이 이뤘다.
  • 쉬운 scaling stragy를 제안함.1) overfitting이 발생할때는 depth를 늘리는 것을 멈추고 width를 늘리기 2) image resolution을 천천히 증가시키기
  • ResNet-RS: TPU에서는 EfficientNet보다 1.7~2.7배 GPU에서는 2.1배~3.3배 더 빠르다.
  • Semi-supoervised training에서 EfficientNet-NoisyStudent보다 TPU에서 4.7배 (GPU에서 5.5배) 더 빠르며 86.2%를 달성함.
  • self-supervised representations(Sim-CLR와 SimCLRv2)에서도 좋은 성능을 보임.
  • 3D resNet-RS로 video classification으로 확장을 했으며, baseline보다 약 4.8% 성능 향상을 보임.

2. Characterizing Improvements on ImageNet

AlexNet이후로 image recognition 분야는 발전해왔는데 크게 4가지 분야로 발전되었다. 네트워크 구조, 학습/정규화 방법론, scaling strategy 그리고 추가적인 학습 데이터 사용

 

Architecture. novel architectures이 큰 관심을 받아왔다. AlexNet을 시작으로 최근에는 NAS를 활용한 네트워크들이 있다. 또한, adapting self-attention을 visual domain에 적용하여 이미지 분류 를 위한 ConvNets에 영향을 주거나 lambda layers와 같은 대안을 사용하는 방법들도 있다.

 

Training and Regularization Methods. ImageNet의 등장은 학습과 정규화 접근의 혁신을 앞당겼다. dropout, label smoothing, stochastic depth, dropblock 그리고 data augmentation과 같은 정규화 방법이 있으며, learning rate schedules로 정확도를 개선한 방법들도 있다. 하지만, RegNet과 같이 작은 데이터셋에서는 좋은 성능을 보이지만, ImageNet과 같은 큰 데이터 셋에서 좋은 성능을 보이는지 확인하지않은 연구들도 있으며, 작은 데이터셋에서 성능이 좋다고 해도 더 큰 규모에서 개선이 있는지 불분명하다.

 

scaling Strategies. 모델의 dimensions (width, depth and resolution)을 증가시키는 것은 확실히 성능 향상을 기대할 수 있다. NLP 영역의 GPT-3나 Switch Transformer의 성능 향상이 이를 증명 했으며, 비슷하게 computer vision 분야에서도 유용성을 증명했다. ResNet 같은 경우 depth를 증가시키며 width를 증가시킨 논문들도 있다. 최근 학습 budgets이 증가함에 다라 resolution을 600이나 448로 사용하는 논문들도 있으며, 이것을 compound scaling rule로 체계화한 EfficientNet이 있다. 그러나, 이러한 scaling strategy는 ResNet 뿐만 아니라 EfficientNet 또한 sub-optimal에 도달하도록 한다.

 

Additional Training Data. 추가적인 데이터를 학습에 사용하여 정확도를 올리는 방법은 유명하다. 최근에는 130M개의 unlabeled images에 psuedo-labels를 사용해 정확도를 올린다. Meta pseudo-labels는 semi-supervised learning technique의 개선된 방법인데, ImageNet에서 약 90% 성능을 가져왔다. 이는 ResNet-RS에도 적용했으며 밑의 표4에서 확인할 수 있다.

 

3. Related Work on Improving ResNets

개선된 학습방법과 구조 변경을 통해 성능향상은 항상 이뤄져왔다. stem과 downsampling block을 수정하는 반면 label smoothing과 mixup을 사용한 논문들도 있다. 또한, SE block 추가, selective kernel, 그리고 anti-alisa downsampling을 사용한 논문도 있다. 최근에는 여러 구조 변경과 개선된 학습 방법으로 EfficientNet-B1~EfficientNet-B5까지 따라잡은 연구도 있다.

 

위의 연구들은 scaling strategies에 신경을 쓰지않는 반면 본 논문은 조그마한 구조 변경과 training/scaling strategies에 집중한다. 따라서, 앞서 언급한 방법들과 매우 다른 방법이며, 추가적인 요소로 예측한다.

4. Methodology

4.1 Architecture

크게 2가지의 구조 변경이 있는데, ResNet-D와 모든 bottleneck에 SE Block을 추가하는 것이다.

ResNet-D은 총 4가지의 수정사항이 있다.

1) Inception-V3와 같이 stem의 $7\times7$ convolution을 3개의 $3\times3$으로 변경한다.

2) downsampling blocks의 residual path에서 처음 2개의 convolution에 대한 stride size 전환

3) downsampling blocks의 skip connection path에서 stride-2 $1\times1$ convolution을 $2\times2$ average pooling과 non-stride $1\times1$ convolution으로 바꾼다.

4) stride 2 $3\times3$ max pool layer를 제거하고 그 다음 bottleneck block에 $3\times3$ convolution을 추가한다.

 

밑의 그림 6에서 변경 사항을 확인할 수 있다.

Squeeze-and-Excitation은 전체 feature map에서 average pooling signals로 cross-channel interactions을 통해 channel의 가중치를 재설정하는 것이다. 하지만, 본 논문에서 SE block을 쓰지 않은 경우도 있으며 따로 명시해두었다.

4.2 Training Methods

정규화와 data augmentation methods에 대한 연구이다.

 

Matching the EfficientNet Setup. 350epoch을 쓰는 것 처럼 EfficientNet의 학습 방법과 비슷하지만 다른점이 3가지가 있다. 1) cosine learning rate schedule 사용(<-> exponential decay) 2) RandAugment 사용 (<-> autoAugment) 3) Momentum optimizer (<-> RMSProp)

Regularization weight decay, label smoothing, dropout 그리고 stochastic depth를 사용함. Dropout의 경우 마지막 layer에서 grobal average pooling이후 출력에서 사용함. Stochastic depth는 층의 깊이에 따라 특정 확률로 각 layer을 제거하는 기술이다.

 

Data Augmentation. RandAugment를 사용하며, 일련의 random image transformations로 data augmentation을 적용한다. AutoAugment보다는 성능이 조금 더 좋다.

 

Hyperparameter Tuning. 본 논문에서는 ImageNet training set의 2%를 held-out validation set으로 사용하며, minival-set과 validation-set이 존재한다. 하이퍼 파라미터는 밑의 표 8에서 확인할 수 있다.

5. Improved Training Methods

5.1 Additive Study of Improvements

ResNet-200은 기본적으로 79.0%의 정확도를 가지는데 개선된 학습 방법을 사용하면 82.2% (+3.2%)의 향상이 있으며, SE block과 ResNet-D를 사용하면, 83.4% 까지 상승한다. 개선 된 학습 방법으로 3/4의 성능 향상을 볼 수 있었다.

5.2 Importance of decreasing weight decay when combining regularization methods

table 2는 여러 정규화 방법을 조합하여 사용할 때, weight decay를 바꾸는 것에 대한 중요성을 보여준다.

보는 것과 같이 RandAugment와 label smooting만 사용했을 때는 괜찮지만 더 추가적인 방법을 적용하면, 오히려 성능이 떨어진다. 직관적으로, weight decay가 regularizer로 사용됨을 알 수 있다. 최근 논문에서 추가적인 data augmentation은 가중치의 L2 norm을 감소시킨다고 주장하는 논문도 있으며, 여러 논문에서 더 작은 weight decay를 사용하면 성능이 올라감을 나타낸다.

6. Improved Scaling Strategies

multipliers에 따라 다르게 학습을 시켰다. Appendix E 에서 확인할 수 있다. width = [0.25, 0.5, 1.0, 1.5, 2.0] depth = [26, 50, 101, 200, 300, 350, 400] Resolution = [128, 160, 224, 320, 448] 을 적용했다.

 

FLOPs do not accurately predict performance in the bounded data regime (FLOPs은 제한된 데이터 영역에서 성능을 정확하게 평가할 수 없다.)

위의 그림에서 보이는 것처럼 작은 모델은 error와 FLOP 영역 사이에 어떤 법칙이 있는 것 처럼 보인다. 하지만, 더 큰 모델에서는 그 법칙이 소용이 없어진다. 즉, 무조건 크다고 좋은 성능을 가져오는 것이 아님을 확인할 수 있다. 따라서, 원하는 FLOPs내에서 정확한 scaling configuration이 필요하다.

 

The best performing scaling strategy depends on the training regime. (최고 성능 scaling strategy는 학습 체제에 따라 다르다.)

따라서, FLOPs에 따른 정확도 비교가 아닌 speed-accuracy Pareto curve을 사용한다. 그림 3에서 확인할 수 있다.

위의 그림을 보면 확연하게 최고의 성능을 가지는 scaling을 확인할 수 있다.

6.1 Strategy #1- Depth Scaling in Regimes Where overfitting can Occur

Depth scaling outpeforms width scaling for longer epoch regimes. (긴 epoch에서는 width scaling보다 depth scaling이 더 나은 성능을 보인다.)

그림 3의 right를 보면, width scaling에서 성능 저하가 나타난다. 이것은 overfitting을 뜻하는데, width scaling이 더 많은 파라미터를 사용하기 때문이다. 즉, depth scaling은 width scaling보다는 적은 파라미터 증가를 가진다.

 

Width scaling outperforms depth scaling for shorter epoch regimes. (더 짧은 epoch에서는 width scaling이 더 나은 성능을 보인다.)

반대로, 그림 3의 left를 보면, width scaling에서 더 좋은 성능을 보인다. 또한, 그림 3의 middle을 보면, depth scaling과 width scaling이 서로 다르게 차이나는데 input resolution에 따라 다른다. 이와 같은 결과는 training 영역에서 scaling strategy가 항상 같은 규칙을 가지지않음을 보인다. 이는 과거의 연구들에서도 비슷한 결과를 보이는데, 더 짧은 epoch에서는 너비를 조정하는 것이 바람직하다는 실험 결과와 일치한다.

6.2 Strategy #2 - Slow Image Resolution Scaling

위의 그림 2를 보면 더 큰 image resolutions는 오히려 성능이 감소한다. 따라서, 과거의 연구들은 600 심지어 800의 resolution을 가지지만, 이거와 반대로 천천히 증가시켜야한다고 생각한다. Section 7.2에서 더 자세히 설명한다.

6.3 Two Common Pitfalls in Designing Scaling Strategies

scaling strategy에 대한 연구로 과거의 scaling straegy에 대한 2가지 헛점을 발견했다.

(1) Extrapolating scaling strategies from small-scale regimes. 작은 모델이나 작은 epoch에서 만든 scale rule은 잘못되었다고 생각하며, 일반화가 덜 된 것으로 판단한다. 과거의 연구들은 작은 모델 또는 짧은 training epochs로 scaling rules를 주장햇는데, 이것은 best performing scaling strategy와 training regime 사이의 의존성을 누락시켰다. 즉, 더 큰 모델이나 epoch에서는 scaling rule이 깨진다.

 

(2) Extrapolating scaling strategies from a single and potentially sub-optimal initial architecture. (최적화되지 않은 single initial architecture에서 scaling strategies 추정) 최적화 되지 않은 초기 구조로 부터 시작하는 것은 scaling results를 삐뚤어지게할 수 있다. 예를들어, EfficientNet-B0는 고정된 FLOPs와 resolution에서 찾은 네트워크 구조인데, 이것은 거기에 해당하는 FLOPs와 resolution에 국한되어 있다. 반대로 본 논문은 다양한 widths, depths 그리고 resolution에서 디자인했다.

6.4 Summary of Improved Scaling Strategies

새로운 task를 할 때, 모델을 다른 scales에 따라 작은 subset으로 나눠 full training epochs로 실행하는 것을 추천한다. 물론, cost가 많이 들지만, 제일 좋은 architecture을 찾을 수도 있다.

이미지 인식 분야를 위해 scaling stategies는 1) overfitting 발생 전까지 depth를 늘리고 2) resolution을 천천히 키우는 것이다. 이러한 방법으로 ResNet-RS와 EfficientNet-RS를 발견했다. 비슷한 사례로 LambdaResNets와 NFNets가 있다.

7. Experiments with Improved Training and Scaling Strategies

7.1 ResNet-RS on a Speed-Accuracy Basis

개선된 training and scaling strategies를 사용해 ResNets을 재디자인한 ResNet-RS를 만들어 냈다. 그림 4에서 보는 것 처럼 speed와 accuracy가 훨씬 빠르다.

FLOPs vs Latency.(작은 파라미터와 크기를 가진 네트워크가 왜 더 느린가?) 예전부터 FLOPs가 실제로 학습및 평가 지연시간 측정을 하지못한다는 논문이 나왔따. 즉, FLOPss가 poor proxt라는 것이다. FLOP은 연산이 종종 메모리 접근 비용에 의해 제한되고 최신 행렬 곱 단위에서 다양한 수준의 최적화를 가지기 때문에 특히 좋지 않은 proxy이다. inverted bottleneck을 사용한 EfficientNet은 큰 활성화함수와 함께 depthwise convolutions을 실행하고 따라서 작은 활성화와 함께 dense convolution인 ResNet의 bottleneck 구조보다 메모리당 계산 비율이 적을 수 밖에 없다. -> 아마도... depthwise 방법은 한 depth당 메모리 access가 필요해서 실제로 지연시간을 줄인다는 것 같다. 밑의 표3은 이러한 부분을 나타내는 표이다.

Parameters vs Memory Memory가 활성화 크기에 의해 결정되는 경우가 많기 때문에 prarameters 개수가 반드시 학습 중 메모리 소비를 나타내는 것은 아니다. 따라서, 더 큰 activation을 가진 EfficieNet이 3.8배 적은 파라미터를 가지지만 2.3배 느린 잉이다. 따라서, 메모리 소비량과 지연시간이 스프트웨어 및 하드웨어 스택과 밀접하게 연결되어 있음을 강조한다.

7.2 Improving the Efficiency of EfficientNets

Section 6에서 말했던 image resolution이 성능을 저하시키는 것에 대한 분석이다. EfficientNet은 depth, width 그리고 resolution이 독립적으로 사용하여 sub-optimal에 도달한 것이다. 따라서, width와 depth를 바꾸지 않고 여러 resolution을 사용해 여러 version을 만들어 학습했다. RandAugement를 10: <=224 15: 224< R < 321 20: 320 > 로 사용했으며, 그림 5에서 re-scaled EfficientNets이 더 좋은 성능을 보임을 나타낸다.

 

7.3 Semi-Supervised Learning with ResNet-RS

ResNet-RS를 large scale semi-supervised learning setup에 적용하면 어떤가로 실험을 진행함. Noisy Student와 비슷하게 1.2M labeled ImageNet images와 130M pseudo-labeled images로 섞은 데이터셋으로 학습을 했다. 그렇게 한 결과는 밑의 표4에 나타나며, 성능은 비슷하며 속도에서 매우 큰 이점을 가진다.

7.4 Transfer Learning of ResNets-RS

최근 self-supervised learning algorithms이 transfer learning performance를 능가했다고 주장한다. 하지만, supervised learning에 비해 설정이 어렵다. SimCLR와 SimCLRv2와의 비교를 위해 실험을 진행했는데, 논문에서 제안하는 방법을 조금 바꿨다.

  • Rand Augmentation, label smoothing, dropout, decreased weight decay, cosine lerning rate decay, 400 epoch
  • No using stochatic depth or EMA
  • No using ResNet-D and SE block

위의 제한을 걸어둔 것은 SimCLR: 긴 학습, data augmentation 그리고 temperature parameter for their contrastive loss와 architecture를 맞추기 위해서 이다.

밑의 표 5는 결과를 나타낸다.

보는 것처럼 ResNet이 더 좋은 성능을 보이며, 이는 self-supervised algorithms이 supervised보다 더 많은 universal representations을 가진다는 것에 반박할 수 있다.

7.5 Revised 3D ResNet Video Classification

나중에

8. Discussion

Why is it important to teas apart improvements coming from training methods vs architecures? (학습 방법과 구조를 구분하면 좋은 이유) 학습 방법이 네트워크 구조보다 task-specific하다. 즉, 더 좋은 학습 방법으로 새로운 구조를 쌓는 것이 더 일반적이라는 것이다.

How Should one compare different architectures? 학습 방법과 확장은 일반적으로 성능을 증가시키므로, 서로 다른 네트워크 구조를 비교할 때 두 측면 모두 제어하는것이 중요하다. 따라서, FLOPs와 parameters보다 latency와 memory consumption을 사용하는 것이 더 일반적일 것이다.

Do the improved training strategies transfer across tasks? domain과 dataset 크기에 따라 다르다. 여기서 사용된 많은 학습/정규화 방법은 large-scale pre-training에서는 사용되지 않는다. data augmentation 또한 작은 데이터셋 또는 큰 epochs에서 유용하며, 특정 augmentation 기법은 task의존적이다.

Do the scaling strategies transfer across tasks? section 6에서 보는 것과 같이 350 epoch에서는 depth가 10epoch에서는 width가 더 좋은 성능을 보였다. 즉, 최고 성능 scaling strategy는 학습 방법과 overfitting 유무에 따라 다르다. 저자들은 resolution을 늘리는 것에 대해서도 확신을 하지 못했으며 future work로 남겨둔다.

Are architectural changes useful? 당연히 좋지만, 학습 방법이나 scaling strategies가 더 큰 영향력을 가진다. 그 이유는 네트워크 변경은 너무 복잡하고 느려질 수 있기 때문이다. 나중에는 hardware 친화적인 네트워크 구조가 나오기를 기대한다.

How should one allocate a computational budget to produce the bset vision models? 먼저, 하드웨어 효과적으로 사용할수 이는 쉬운 네트워크부터 시작하여 점차 다른 resolution, depth, 그리고 width를 Pareto curve에 맞춰 적용해야한다. 이는 NAS와는 다른데, NAS는 너무 제한된 환경에서 네트워크 구조를 찾으며, RegNet은 단지 10 epoch만은 사용한다.

9. Conclusion

향상된 scaling 전략과 최신의 학습 방법으로 resNet 구조의 놀라운 duration을 보여주었다. 저자들은 자신들이 주장하는 바에 대해 더 많은 연구를 하기를 장려한다.

 

Designing Network design Spaces

I. Radosavovic R. P. Kosarahu R. Girshick K. He P. Dollar

Abstract

본 논문의 목표는 네트워크 설계에 대한 이해를 높히는 것이고 설정 전반에 걸쳐 일반화되는 설계 원칙을 발견하는 것이다. 개별적인 네트워크 인스턴스 설계에 초점을 맞추지 않고 네트워크 모집단을 매개 변수화하는 네트워크 설계 공간을 설계한다. 기존의 네트워크 디자인과 비슷하지만 디자인 space level이 더 높다. 본 논문은 네트워크 디자인의 구조적인 측면을 연구했으며, RegNet이라 불리는 단순하고 규칙적인 네트워크로 구성된 low-dimension 설계 공간에 도달했다고 한다. RegNet 매개변수화의 중심

 

insight는 놀랍게도 단순한데: 좋은 네트워크의 widths와 depths는 quantized linear function으로 설명될 수 있다. RegNet의 디자인 공간을 분석했는데, 최근 네트워크 디자인 실정과는 다름을 나타낸다. RegNet의 디자인 공간은 단순하고 flop 여역에서 매우 좋은 성능을 보이는 빠른 네트워크이다. RegNet은 EfficientNet 모델보다 GPU에서 5배나 더 빠르다.

1.Introduction

LeNet~ResNet까지는 효과적이면서 잘 알려지 네트워크 디자인이다. 위의 네트워크들은 convolution, network 그리고 데이터 크기, depth, residuals 등 각각이 중요하다는 것으 알려준다. 이것은 실질적인 네트워크 예시이며 디자인 원칙이다.

직접 네트워크를 설계하는 것이 큰 발전을 이뤄았지만, 선택의 수가 증가함에 따라 잘 최적화된 네트워크를 수동을 찾는 것은 어렵다. 따라서, NAS 라고 불리는 고정된 search space에서 가능한 좋은 네트워크를 찾아주는 기술이다.

NAS는 특정 설정에서 단일 네트워크 인스턴스만을 찾는 한계가 존재하며, 본 논문은 일반화를기반으로 하는 매우 단순한 네트워크를 찾는 것에 집중한다.

 

따라서, 본 논문은 수동의 디자인과 NAS의 이점을 조합한 새로운 네트워크 디자인 파라다임을 제시한다. 즉, 매개변수화 시킨 네트워크의 모집단인 디자인 공간들을 디자인한다. (여기서 디자인 공간은 탐색 공간이 아니다. 네트워크 인스턴스를 찾는 것이 아닌 말 그대로 공간을 디자인하는 것이다.)

 

전체적인 과정은 수동 디자인 방법과 유사한데, 모집단 수준으로 올리고 네트워크 디자인 공간들을 분산 평가를 통해 이끌어낸다.

먼저, VGG, ResNet, 그리고 ResNeXt와 같은 네트워크 구조를 찾았으며, 상대적으로 자유로운 디자인 공간을 가지는 AnyNet을 만들었고, 단순한 "regular" 네트워크로 이뤄진 저차원 디자인 공간을 발견했다. stage widths와 depths를 양자화 선형 함수로 결정할 수 있는 공간이다. AnyNet과 비교해 더 단순하고, 해석하기 쉽고, 좋은 모델들에 더 많이 집중할 수 있다.

RegNet의 디자인 공간은 적은 계산, 적은 epoch을 가진다. 더 쉽게 해석가능하고 우리가 생각한 방식과 이어진다. 또한, 기존의 일반적인 생각과 다르게, bottleneck 또는 inverted bottleneck을 사용하지 않고도 20 block 가까이 에서도 안정적임을 보인다.

RegNet은 모바일 환경에서 더 효과적이며, ResNe(X)t보다 더 좋은 성능을 보인다. 그리고 활성화 함수 횟수가 GPU와 같은 가속기의 런타임에 큰 영향을 미칠 수 있으므로 고정된 활성화함수에 대한 개선된 점을 강조한다. 또한, EfficientNet보다 5배나 더 빠르며, 일반화 성능도 높다.

 

네트워크 구조는 고려할 수 있는 디자인 공간 디자인의 가장 단순한 형태라고 할 수 있으며, 더 풍부한 설계 공간을 설계하는데 집중하면, 더 나은 네트워크로 이어질 수 있음을 나타낸다.

2. Related Work

Manual network design AlexNet부터 이어져온 manual network design은 많은 발전을 이뤄왔다. 이와 비슷하게 본 논문도 새로운 디자인 원칙을 발견했으며, manual design과 비슷하며 단지 디자인 공간 수준에서 실행되는 것이 차이점이다.

 

Automated network design 최근에는 NAS를 통해 효과적인 네트워크를 찾는데 집중한다. 본 논문은 search space를 디자인하는 방향으로 연구를 했으며, 2가지의 가정이 깔려있다. 1) 더 좋은 디자인 공간은 효과적으로 NAS의 search algorithm을 개선시킬 것. 2) 디자인 공간이 풍부해지면 더 좋은 모델을 찾을 수 있을 것.

 

Network scaling. 보통 네트워크를 만들 때는 특정 영역(flops, compare, etc)에서 최고의 성능을 내는 것으로 찾기 때문에, 다른 영역에서 사용하기에는 좋지않다. 따라서, 본 논문은, 일반적인 디자인 원칙을 발견함에 동시에 어떤 목표 영역에서도 최적화된 네트워크로 효과적으로 튜닝을 할 수있는 네트워크를 찾는다.

 

Comparing networks. 네트워크 디자인 공간들의 수는 거대하기 때문에, 뛰어난 comparison metric은 필수적이다. 최근에는 새플림 된 네트워크 모집단을 비교하고 분석하는 방법론이 존재하는데, 본 논문의 목표와 일치하며, 효과적인 방법을 제안한다.

 

Parameterization. 최종 양자화 선형 파라미터화는 이전 논문들과 비슷하지만, 다른 점이 2가지 있다. 1) 설계 선택을 정의하는 실증적 연구를 제공함. 2) 이전에 이해하지 못했던 구조 설계 선택에 대한 insight를 제공함.

3. Design Space Design

특정 설정에서 단일의 최고 모델을 찾거나 디자인하는 것보다는, 모델들의 모집단의 행동을 연구하는 것이다. 일반적인 디자인 원칙을 발견하고 이것을 모델의 모집단에 적용하는 것이다.

 

Radosavovic et al. [21][21]의 디자인 공간 개념을 사용하는데, 디자인 공간으로부터 모델들의 샘플링하고, 모델 분포를 생성하며, 그리고 고전 통계방법으로 이러한 디자인 공간을 분석할 수 있다는 것이다.

본 논문은 자유로운 디자인 스페이스에서 계속해서 단순한 버전의 initial network을 디자인하는 design space design을 제안한다. 입력은 초기의 디자인 공간이며 출력은 더 단순하거나 좋은 성능을 가진 모델들의 모집단을 가지는 디자인 원칙인 재정의된 디자인 공간이다.

 

본 논문에서 제안하는 RegNet의 디자인 공간은 다음과 같다. 1) 허용하는한 네트워크 구성의 차원과 유형 측면에서 단순화 2) 최고 성능 모델들의 더 높은 집중이 포함되어있으며, 3) 분석 및 해석이 더 용이해야한다.

3.1 Tools for Design Space Design

본 논문은 디자인 공간을 평가하기 위해 [21][21]의 방법을 사용하는데, 해당 설계 공간에서 모델 세트를 샘플링하고 모델 오류 분포 결과를 특성화하여 설계 공간의 품질을 정량화한다. 이것은 분포를 비교하는 것이 더 강인하며 search algorithms을 사용하는 것보다 더 유익하다.

 

모델의 분산을 얻기위해 디자인 공간에서 n개의 모델을 샘플링하고 학습한다. 효율성을 위해 400M FLOPs와 10 epochs만을 사용한다. n이 100일 때, 모델들 모두를 학습하는 것과 ResNet-50을 학습하는 것과 같은 FLOPs를 가진다. (ImageNet에서 학습한 결과)

 

[21][21]의 디자인 공간의 퀄리티를 분석하기위 empirical distribution function (EDF)를 사용한다.

$$ F(e) = \frac{1}{n} \sum_{i=1}^n 1[e_i < e]. $$

$e_i$는 모델의 에러이며 $e$는 threshold이다.

밑의 그림 2의 좌측은 $n=500$에서 AnyNetX 디자인 공간으로부터 샘플링한 모델들의 EDF 이다. 훈련된 모델의 모집단이 주어지면 다양한 네트워크 속성과 네트워크 오류를 시각화하고 분석할 수 있다.

여기서, empirical bootstrap를 통해 최고 모델이 속하는 범위를 추정할 수 있다.

 

즉, 이렇게 요약할 수 있다. 1) 디자인 공간으로부터 n개의 모델을 샘플링하고 학습하여 모델의 분포를 얻는다. 2) EDF를 사용해 디자인 공간의 퀄리티를 계산하고 시각화한다. 3) 디자인 공간의 속성을 보고 empirical bootstrap을 통해 insight를 얻는다. 4) 이것으로 다시 디자인 공간을 재정의하여 더 나은 디자인 공간을 만든다.

3.2 The AnyNet Design Space

이 section에서는 표준이며 고정된 네트워크르 블럭을 가정한 네트워크의 구조를 탐구하는 것이다. 즉, 블럭의 수, 블럭의 너비 그리고 블럭의 다른 매개변수들에 대한 탐구다. 이러한 것들은 계산량, 매개변수 그리고 메모리의 분포를 결정하는 동시에 정확도와 효율성을 결정한다.

 

AnyNet의 디자인 공간은 간단하면서 쉬운데, 그림 3의 a와 같이 입력단의 stem, 그 뒤에 body 그리고 class를 예측하는 head 부분으로 나눠져있다. 여기서 stem과 head를 최대한 고정시키고 네트워크의 body를 변경하여 계산량과 정확도를 결정한다.

body는 총 4개의 stages로 구성되어 있으며, 계속해서 resolution을 줄여간다. (그림 3의 b) 각 stage는 개별적인 block들을 가지며, 각각의 stage는 block의 갯수 ($d_i$), block의 너비 ($w_i$), 그리고 block 매개변수를 가진다. 이러한 AnyNet의 구조는 매우 방대하다.

 

그림 4에서 볼 수 있듯이 대부분의 실험에서는 residual bottleneck blcok을 사용하며, 이것을 x block 이라고 지칭한다. 그리고 이러한 block으로 이뤄진 네트워크를 AnyNetX라고 하며, 네트워크 구조가 최적화 되었을 때, 놀랍운 효율성을 보인다.

 

AnyNetX의 디자인 공간은 총 16단계로 정해지는데 4개의 stage와 각 stage에서 4개의 매개변수를 가진다. blocks의 수 ($d_i$), block의 너비 ($w_i$), bottleneck ratio ($b_i$), 그리고 group width ($g_i$)이다. $d_i \leq16$인 log-uniform sampling, $w_i \leq 1024$인 8의 배수, $b_i \in {1,2,4}$, $g_i \in {1,2,...,32}$ 이다. $n=500$, epoch 은 10, 그리고 목표 계산량은 300MF~400MF이다.

 

총 $10^18$의 가능성이 나오며 이것이 AnyNetX의 디자인 공간이다. ~$10^18$의 최고성능 모델을 찾는 것이 아닌 일반적인 디자인 원칙을 찾는데 집중했으며 디자인 공간을 이해하고 재정의 하는데 도움이 된다. 그리고 4가지의 접근법을 사용해 AnyNetX를 총5가지로 나눴다.

 

AnyNey$X_A$ 초기의 AnyNetX의 디자인 공간이다.

 

AnyNet$X_B$ 여기서 제한하는 부분은 bottleneck ratio를 공유하는 것이다. 즉, 모든 stage에서 bottleneck ratio $b_i = b$로 고정한다. 똑같이 500개의 모델을 만들어 AnyNet$X_A$와 비교했으며, 그림 5의 좌측은 결과이다. 이것으로 보아 bottlenck ratio는 그렇게 큰 차이를 못내는 것 같으며 그림 5의 우측은 b에 따른 결과를 보여준다.

AnyNet$X_C$ 여기서는 AnyNet$X_B$에서 group convolution을 공유했다. 성능 변화는 거의 없어 보이며 그림 5의 중앙을 보면 알 수 있다.

AnyNet$X_D$ 여기서는 AnyNet$X_C$의 좋은 네트워크와 안좋은 네트워크를 탐구했으며, 그림 6에서 볼 수 있다. 결과적으로 widths가 증가할 수록 성능도 증가하는 패턴을 발견했다. 따라서, $w_{i+1} \geq w_i$라는 디자인 원칙을 발견했다. 그림 7에서 확연하게 알 수 있다.

AnyNet$X_E$ 여기서는 stage depths $d_i$를 width와 같이 형성했다. 즉, $d_{i+1} \geq d_i$이다. 그림 7에서 볼 수 있으며, $w_i$와 $d_i$는 각각 4!만큼 줄어들었다. 따라서, $O(10^7)$만큼 가진다. <-> $O(10^18)$

3.3 The RegNet Design Space

그림 8의 상단좌측은 AnyNet$X_E$의 최고 20개의 모델을 보여준다. 또한, grady curves는 각각 모델의 편차를 보여주는데, 패턴이 나타난다. ($w_j=48\cdot(j+1)\ and\ 0 \leq j \leq 20$)이다. 놀랍게도 이 사소한 linear fit은 상위 모델에 대한 네트워크 너비 증가의 모집단 추세를 설명하는 것 같다. 하지만, linear fit는 각 블럭마다 다른 width를 할당하는 것처럼 보일 수 있다.

이러한 패턴을 개별적인 모델들에 적용하기위 piecewise constant function을 양자화하는 전략을 선택했다. 즉, 각 block의 너비들을 linear parameterization로 할당한다

$$ u_j = w_0+w_{\alpha}\cdot j \quad for \quad 0 \leq j < d $$

$d$: depth, $w_0 >0$: initial width, $w_\alpha >0$: slop, 그리고 각 block $j<d$에서 다른 너비인 $u_j$를 가진다.

$u_j$를 양자화 하기위해서 추가적인 매개변수인 $w_m >0$을 소개한다. 먼저, $u_j$로부터 각 블럭 j 에서 $s_j$를 계산한다.

$$ u_j = w_0 \cdot w_m^{s_j} $$

그 후에, $u_j$를 양자화 하기위해 $s_j$를 반올림하고 블럭당 너비인 $w_j$를 양자화하여 계산한다.

$$ w_j=w_0 \cdot w_m^{\left [ s_j \right]} $$

block당 width인 $w_j$를 stage당 width로 확장하고 $w_i=w_0\cdot w_m^i$와 같이 된다. 그리고 블럭의 갯수인 $d_i=\sum_j1[\left [s_j \right] = i].$가 된다. 4단계 네트워크 만 고려할 때 다른 수의 stage를 발생시키는 매개 변수 조합을 무시한다.

 

AnyNetX에 위의 매개변수화를 적용해서 테스트를 진행했으며, d로 네트워크 깊이를 설정하고 grid search를 통해 $w_0,\ w_\alpha$를 찾았다. 그 후 $w_m$은 관측된 블록당 너비로 예측된 $e_{fit}$라고 불리는 평균 로그 비율을 최소화한다. 그림 8의 상단 우측에서 dashed curves는 양자화 linear fits가 최고 모델 (solid curves)와 유사하다.

fitting error인 $e_{fit}$와 네트워크 에러를 살펴보기위해 그림 8의 하단을 보면 된다. 각 디자인 공간에서 최고 모델이 좋은 linear fits를 가짐에 주목했으며, 실제로 각각의 디자인 공간 안에서 최고 모델은 $e_{fit}$의 좁은 영역 안에 포함된다. 그리고 평균에도 주목했는데, $X_c$에서 $X_E$까지 감에 따라 $e_{fit}$가 개선되며 이것은 $w_i$와 $d_i$가 증가하면 성능도 좋아짐을 나타낸다.

 

더욱더 디자인 공간을 제한했으며, 6개의 파라미터들인 $d,\ w_0,\ w_m, w_\alpha,\ b,\ g$로 구성된다. 각각으로 위의 2~4 수식을 통해 block width와 block depth가 정해지고 이것은 RegNet이라고 부른다. $d<64,\ w_0,w_\alpha <256,\ 1.5 \leq w_m \leq 3$ and $b$ and $g$는 전의 AnyNet$X_E$와 같다.

그림 9의 좌측을 보면 AnyNetX보다 RegNetX가 훨씬 더 좋은 성능을 보인다. 또한 2가지의 단순화를 시켰는데, 그림 9의 중앙을 보면 1) $W_m=2$(stage마다 width는 2배)로 성능을 증가시킴 2) $w_0=w_\alpha$는 수식 2인 선형 매개변수화를 단순하게 만들며 성능 또한 좋아진다. 하지만, 다양성을 위해 이와같은 방법은 사용x 그리고 그림 9의 우측은 RegNetX의 random search 효율성을 보여준다.

표1은 AnyNetX와 RegNetX의 디자인 공간 크기에 대한 표이며, 약 $10^10$만큼 줄었지만 여전히 RegNet은 다양성을 가지고 있다고 주장한다.

3.4 Design Space Generalization

본논문에서 RegNet을 디자인 했지만, 더 일반화된 설정을 발견했다.

일반화를 위해서 먼저 AnyNet을 더 많은 flops, 더 많은 epochs 그리고 5-stage networks로 구성해서 성능을 테스트 했다. 여기서도 RegNet이 성능이 더 뛰어 났으며, overfitting의 징조를 보지 못했다. 이것은 아직도 RegNet이 더 많은 stages 에서도 일반화될 수도 있다는 것이다.

4. Analyzing the RegNetX Design space

RegNetX의 디자인 공간을 분석하고 공통적으로 deep network 디자인에서 많이 선택하는 것을 조사했다. 여기서는 $N=100,\ epoch=25,\ learning\ rate=0.1$로 사용했다.

RegNet trends.

1) depth: 약 20 blocks(60 layers)에서 최적화된다. -> 깊이가 늘어날 수록 성능 증가한다는 일반적인 이론과 다름 2) bottleneck ratio: 1.0에서 최적화된다. -> bottleneck 구조가 좋다는 일반적인 이론과 다름 3) width multiplier: 2.5에서 최적화된다. -> 일반적인 이론은 2배를 보통 한다. 4) 남은 매개변수들: 복잡해질수록 성능이 증가한다.

Complexity analysis.

모든 conv layers의 출력 텐서 크기를 뜻하는 activations에 대한 탐구이다. 그림 12의 상단을보면 actiavtions은 GPUs, TPUs와 같은 메모리가 제한된 하드웨어 가속이의 실행시간에 크게 영향을 준다. 그림 12의 하단에서 특히 모집단의 최고 모델을 보면, activaations는 FLOPs의 제곱근을 증가시키며, 매개변수들도 선형적으로 증가시키며, 실행시간은 선형과 제곱근의 조합으로 설명될 수 있다.

 

RegNetX constrained 위의 결과들을 종합해 새로운 디자인 공간을 정의했다. 1) 그림 11의 상단을 참고하여 $b=1,\ d \leq 40,\ and\ w_m >2$로 설정함. 2) 그림 12 하단을 참고해 매개변수와 activation을 제한함. 3) 따라서, 빠르고, 적은 매개변수와 적은 메모리를 가지는 모델을 만들었으며, 그림 13에서 확인할 수 있다.

보는 것과 같이 모든 FLOPs에서 더 좋은 성능을 보인다.

 

 

Alternate design choices.

최근 모바일 네트워크에서 inverted bottleneck (b<1)와 depthwise conv(g=1)을 강조했는데, 이와 같은 방법은 그림 14 좌측을 보면 성능 저하를 가져오는 것을 확인할 수 있다. 그리고 input image를 증가시키면 도움이 된다고는 하지만, regNetx는 $224\times224$로 고정하는 것이 제일 좋은 성능을 보인다.

SE. 자중 사용되는 Squeeze-and-Excitation (SE) op를 추가해 RegNetY로 부르며 그림 14의 우측과 같이 좋은 성능을 보인다.

5. Comparison to Existing Networks.

ImageNet에서 비교를 위해 RegNet 매개 변수의 25가지로 임의 설정에서 최상의 모델을 선택하고 상위 모델에 대해 100epoch으로 5번 재훈련한다.

 

그림 15와 그림 16은 각각 RegNetX와 RegNetY의 성능을 보여준다. 여기서 흥미로운 패턴을 발견했는데, 상위 플롭 모델은 3 stage에 많은 수의 블럭이 있고 마지막 단계에 적은 수의 블럭을 가지는데 이것은 ResNet과 유사하다.

본 논문의 목표는 공평한 비교와 쉽고 재생산할 수 있는 baselines를 제공하는 것이다. 따라서, 특별한 학습 구성이나 정규화를 사용하지 않았다.

5.1 SOTA Comparision: Mobile Regime

모바일 영역은 보통 600MF보다 작은 영역을 뜻하는데 표2에서 보는 것과 같이 RegNet이 더 좋은 성능을 보인다.

또한, 비교된 네트워크 구조는 더 긴 학습 시간과 많은 정규화를 사용했기 때문에, RegNet이 더 좋은 성능을 가져올 수 있다고 생각한다.

5.2 Standard Baselines comparison: ResNe(X)t

ResNet과 ResNeXt에 대한 비교이며, 모든 학습 설정은 ResNet과 ResNeXt를 따랐다. 그림 17과 표 3을 보는 것처럼 매우 좋은 성능을 보인다.

activations으로 따로 구별한 이유는 activations의 수가 GPU와 같은 가속기의 실행시간에 영향을 주기 때문이다. 따라서, RegNetX는 적은 실행시간을 가지므로 효과적이다.

5.3 SOTA Comparison: Full Regime

EfficientNet과의 비교이다. EfficientNet을 재구현하였으며, 본 논문 저자들이 정한 학습 설정인 100 epoch과 정규화 비사용을 사용함. 오직 learning rate와 weight decay를 사용했으며, RegNet과 같은 설정이다. 결과는 그림 18과 표 4에서 볼 수 있으며, 적은 flops에서는 EfficientNet이 더 좋지만 큰 flops에서는 RegNetY이 더 좋은 성능을 가진다. 또한, EfficientNet이 더 많은 activations을 가지는 것으로 보이는데, 이것은 추론 시간을 증가시켜 RegNetX-8000이 EfficientNet-B5보다 약 5배 빠르다.

 

6. Conclusion

새로운 네트워크 디자인 표준을 제시했으며, 네트워크 디자인 공간을 디자인 하는 것이 유망있는 기술이면 좋겠다.

 

 

 

 

 

 

 

+ Recent posts