개요
ResNeXt 라고 불리는 아키텍쳐를 발표한 Aggregated Residual Transformations for Deep Neural Networks 논문의 얕은 리뷰.
해당 논문은 VGG, ResNet 아키텍쳐로 부터 영감을 받아 이를 개선한 네트워크 아키텍쳐를 제시한다. 이 당시 챌린지(ILSVRC)에서는 Inception 이 1위를 했었는데, 이는 정교하게 설계된 Split-Transform-Merge 전략을 이용했다고 해석한다. 하지만 Inception 자체를 Base 로 발전 시키기에는 설계 및 실현 과정에서 각 필터 수와 네트워크의 크기 자체가 해당 Task를 위해 치밀하게 설계 되었고 모듈들은 단계별로 맞춤화 되어야 한다는 복잡성을 언급하며 각 아키텍쳐의 특 장점을 가져와 ResNeXt 아키텍쳐를 설계한다. VGG 와 ResNet에서는 동일 모듈의 적층 구조를 가져오고, Inception에서는 세부 모듈 단에서 Split-Transform-Merge 전략을 채택한다.
방법론
- 전체적인 구조는 VGG/ResNet을 베이스로 하며 Residual 블록들의 Stack 구조를 유지한다.
- 단계를 지나가며 spatial map의 크기가 2배로 다운 샘플링 될 때 블록의 너비를 2배 늘려 계산복잡도를 유지하여 파라미터 공간의 크기를 균일하게 보장한다.
- 각 뉴런의 연산을 Split, Transform, Merge 의 조합으로 재구성한다. 이것은 사실 X 입력에 벡터에 W 가중치 벡터의 합으로 표현되는 일반적인 뉴런연산이다.
- 해당 뉴런 연산 하나하나를 하나의 네트워크로 해석하며 Split 후 Transform 을 적용할 벡터의 크기를 카디널리티( Cardinality)로 부른다.
- 이러한 카디널리티는 너비와 깊이 차원과 별도로 병렬로 처리되는 새로운 차원을 추가하며 이는 더 복잡한 변환의 수를 제어한다고 주장한다.
- 이러한 방법은 모델의 복잡도와 매개변수 수를 유지하면서 정확도를 올리는 성능의 향상을 가져온다.
실험환경
- 이미지 넷 데이터 셋을 사용하여 학습하며 224*224의 random crop 활용.
- 8개의 M40 GPU를 활용하여 GPU 당 32개의 미니 배치 크기로 SGD 옵티마이저 사용.
- Weights decay 0.0001 momentum 0.9, 0.1에서 시작하는 학습율에서 세번에 걸쳐 10으로 나눠 학습율을 줄인다.
실험결과
- 주로 ResNet50/101 과의 비교를 수행한다.
- 같은 매개변수 복잡도를 유지하면서 너비(채널수)를 감소시키고 카디널리티를 올리면 top-1 에러가 감소하는 것을 관측한다. 이는 카디널리티의 강력한 표현 학습 가능성을 시사한다.
- 복잡도를 증가시키는 방법면에서 깊이를 증가시키는 것, 너비를 증가시키는 것, 카디널리티를 증가시키는 것을 비교한 결과 카디널리티를 증가시키는 것이 3개 중 최선의 성능 향상을 가져옴을 관측한다.
- Residual Connection은 제거 시 성능이 떨어짐을 확인하고, Resnet이 더 높은 성능 감소를 가져오는 것으로 보아 기존 ResNeXt 모델의 표현의 강력함을 확인한다.
- SOTA 였던 Inception과의 비교를 위해 이미지를 320*320으로도 잘라 성능을 비교하며 해당 비교 모델들 대비 파라미터수가 작음에도 불구하고 Inception v3, v4, ResNet-v2 의 모델들을 능가함을 보인다.
- 더 큰 데이터 셋인 이미지넷-5K 데이터 셋으로 테스트 진행하며, 학습은 동일한 미니배치로 진행하였는데, ResNet 대비 좋은 성능 및 1K-way 데이터 셋 대비 유사한 오류의 감소를 관측한다. 이는 학습 시간을 늘리지 않고도 더 어려운 데이터 셋에 대하 유사한 성능을 말하는 유망한 결과로 본다.
- CIFAR-10, CIFAR-100 데이터 셋에 대해서도 카디널리티를 증가 시키는 부분에 대해 테스트 하고 카디널리티를 증가시키는 것이 더 높은 에러율 감소를 가져옴을 확인한다.
- 또한 객체감지에 대해서도 Faster R-CNN을 구성하는 모듈을 ResNeXt로 변경하여 ResNet 대비 더 높은 AP를 달성할 수 있음을 확인한다.
결론
본 논문은 카디널리티 차원의 중욧성을 강조하는 ResNeXt 아키텍쳐를 제안한다. 해당 구조는 깊이, 너비, 카디널리티 모두를 활용하여 성능을 향상 시키며, 여러 데이터 셋에서 성능의 우수성을 입증하였다. 데이터 셋의 규모가 커짐에 따라 확장가능성을 언급하며 다양한 작업에서 활용될 수 있음을 시사한다.
번역
Abstract
우리는 이미지 분류를 위한 간단하고 고도로 모듈화된 네트워크 아키텍처를 제안합니다. 우리의 네트워크는 동일한 토폴로지를 가진 여러 변환 집합을 집약하는 빌딩 블록을 반복하여 구성됩니다. 이러한 단순한 설계는 설정해야 할 하이퍼파라미터가 적은 동질적이며 다중 분기 구조의 아키텍처를 만들어냅니다. 이 전략은 깊이와 너비 차원에 더하여 필수적인 요소로서 새로운 차원을 드러내는데, 우리는 이를 “카디널리티”(변환 집합의 크기)라고 부릅니다. ImageNet-1K 데이터셋에서 우리는 복잡성을 유지하는 제한된 조건 하에서도 카디널리티를 증가시키는 것이 분류 정확도를 향상시킬 수 있음을 실험적으로 보여줍니다. 또한, 용량을 증가시킬 때 더 깊거나 더 넓게 하는 것보다 카디널리티를 증가시키는 것이 더 효과적임을 확인했습니다. ResNeXt라 명명된 우리의 모델들은 ILSVRC 2016 분류 과제에서 우리가 2위를 차지할 수 있었던 기반을 제공합니다. 우리는 ResNeXt를 ImageNet-5K 세트와 COCO 탐지 세트에서 추가로 조사하였고, ResNet 대비 더 나은 성능을 보임을 확인했습니다. 코드와 모델은 온라인에서 공개적으로 이용 가능합니다.
1. Introduction
시각 인식 연구는 “특징 엔지니어링”에서 “네트워크 엔지니어링”으로 전환되고 있습니다 [25, 24, 44, 34, 36, 38, 14]. 전통적인 수작업으로 설계된 특징 (예: SIFT [29] 및 HOG [5])과는 달리, 대규모 데이터로부터 신경망이 학습한 특징 [33]은 훈련 중 인간의 개입이 거의 필요하지 않으며, 다양한 인식 작업으로 전이될 수 있습니다 [7, 10, 28]. 그럼에도 불구하고 인간의 노력은 더 나은 표현 학습을 위한 네트워크 아키텍처 설계로 이동했습니다.
아키텍처 설계는 특히 많은 층이 있을 때 하이퍼파라미터 (너비², 필터 크기, 스트라이드 등)의 수가 증가함에 따라 점점 더 어려워집니다. VGG-넷 [36]은 동일한 모양의 빌딩 블록을 쌓아 매우 깊은 네트워크를 구성하는 간단하면서도 효과적인 전략을 보여줍니다. 이 전략은 동일한 토폴로지를 가진 모듈을 쌓는 ResNets [14]에 의해 계승되었습니다. 이 간단한 규칙은 하이퍼파라미터의 자유 선택을 줄여주며, 깊이가 신경망에서 중요한 차원으로 노출됩니다. 또한, 이 규칙의 단순성은 특정 데이터셋에 하이퍼파라미터가 과적응할 위험을 줄일 수 있다고 주장합니다. VGG-넷과 ResNets의 견고성은 다양한 시각 인식 작업 [7, 10, 9, 28, 31, 14]과 음성 [42, 30], 언어 [4, 41, 20]를 포함하는 비시각적 작업에서 입증되었습니다.
VGG-넷과는 달리, Inception 모델 계열 [38, 17, 39, 37]은 정교하게 설계된 토폴로지가 낮은 이론적 복잡성으로도 설득력 있는 정확도를 달성할 수 있음을 입증했습니다. Inception 모델은 시간이 지나면서 발전했지만 [38, 39], 중요한 공통 속성은 split-transform-merge 전략입니다. Inception 모듈에서는 입력이 몇 개의 저차원 임베딩으로 분할되고 (1×1 합성곱에 의해), 특정 필터 집합 (3×3, 5×5 등)에 의해 변환되며, 연결을 통해 병합됩니다. 이 아키텍처의 해 공간이 고차원 임베딩에서 작동하는 단일 큰 층 (예: 5×5)의 해 공간의 엄격한 부분 공간임을 보여줄 수 있습니다. Inception 모듈의 split-transform-merge 동작은 큰 밀집층의 표현력을 접근할 수 있도록 기대되지만, 상당히 낮은 계산 복잡도를 가집니다.
Inception 모델은 좋은 정확도를 보이지만, 실현 과정에서 여러 복잡한 요소들이 수반되었습니다 — 필터 수와 크기는 각 개별 변환에 맞게 조정되며, 모듈들은 단계별로 맞춤화됩니다. 이러한 구성 요소들을 신중하게 조합하면 훌륭한 신경망 설계를 얻을 수 있지만, 많은 요인과 하이퍼파라미터를 설계해야 할 때 Inception 아키텍처를 새로운 데이터셋이나 작업에 맞게 어떻게 조정할지 일반적으로 불명확합니다.
본 논문에서는 VGG/ResNets의 층 반복 전략을 채택하면서도 split-transform-merge 전략을 쉽게 확장할 수 있는 방식으로 활용하는 간단한 아키텍처를 제시합니다. 우리의 네트워크에서 하나의 모듈은 저차원 임베딩에서 각기 다른 변환 세트를 수행하며, 그 출력은 합산을 통해 집계됩니다. 우리는 이러한 아이디어의 간단한 실현을 추구하며 — 집계될 변환들이 모두 동일한 토폴로지를 가지도록 설계했습니다 (예: 그림 1 (오른쪽)). 이 설계는 특수한 설계 없이도 많은 수의 변환을 확장할 수 있게 해줍니다.
재미있게도, 이 단순화된 상황에서 우리의 모델이 두 가지 다른 동등한 형태를 가지고 있음을 보여줍니다 (그림 3). 그림 3(b)의 재구성은 여러 경로를 연결하는 Inception-ResNet 모듈 [37]과 유사하게 보이지만, 우리의 모듈은 모든 경로가 동일한 토폴로지를 공유한다는 점에서 기존 Inception 모듈들과 다르며, 따라서 경로 수를 조사할 수 있는 요소로 쉽게 분리할 수 있습니다. 더 간결한 재구성에서는 Krizhevsky 등 [24]의 그룹화 합성곱 (그림 3(c))을 통해 모듈을 재형성할 수 있습니다. 그러나 이는 엔지니어링 타협의 결과였습니다.
우리는 집계된 변환이 계산 복잡성과 모델 크기를 유지하는 제한된 조건 하에서도 원래의 ResNet 모듈을 능가함을 실험적으로 입증했습니다 — 예를 들어, 그림 1(오른쪽)은 그림 1(왼쪽)의 FLOPs 복잡도와 매개변수 수를 유지하도록 설계되었습니다. 용량을 증가시켜 (더 깊거나 넓게 만들어) 정확도를 높이는 것은 비교적 쉽지만, 복잡도를 유지하면서 (또는 줄이면서) 정확도를 높이는 방법은 문헌에서 드뭅니다.
우리의 방법은 카디널리티(변환 집합의 크기)가 너비와 깊이 차원 외에도 중심적인 중요성을 가지는 구체적이고 측정 가능한 차원임을 나타냅니다. 실험 결과, 깊이와 너비가 기존 모델에 대해 감소하는 수익을 주기 시작할 때, 카디널리티를 증가시키는 것이 더 깊거나 넓게 만드는 것보다 정확도를 높이는 데 더 효과적임을 보여줍니다.
ResNeXt라 명명된 우리의 신경망은 ImageNet 분류 데이터셋에서 ResNet-101/152 [14], ResNet-200 [15], Inception-v3 [39], Inception-ResNet-v2 [37]을 능가합니다. 특히, 101층 ResNeXt는 ResNet-200 [15]보다 더 높은 정확도를 달성할 수 있지만 복잡도는 단지 50%에 불과합니다. 또한, ResNeXt는 모든 Inception 모델보다 상당히 간단한 설계를 보여줍니다. ResNeXt는 우리가 ILSVRC 2016 분류 과제에 제출하여 2위를 차지한 제출의 기반이었습니다. 이 논문은 또한 더 큰 ImageNet-5K 세트와 COCO 객체 탐지 데이터셋 [27]에서 ResNeXt를 평가하여 ResNet 계열 모델들보다 일관되게 더 높은 정확도를 보여줍니다. 우리는 ResNeXt가 다른 시각적 (및 비시각적) 인식 작업에도 잘 일반화될 것으로 기대합니다.
2. Related Work
Multi-branch convolutional networks.
Inception 모델 [38, 17, 39, 37]은 각 분기가 신중하게 맞춤화된 성공적인 다중 분기 아키텍처입니다. ResNets [14]는 한 분기가 동일성 매핑을 하는 이중 분기 네트워크로 생각될 수 있습니다. 심층 신경 결정 숲 [22]은 학습된 분할 기능을 가진 트리 패턴의 다중 분기 네트워크입니다.
Grouped convolutions.
그룹화된 합성곱의 사용은 최소한 AlexNet 논문 [24]까지 거슬러 올라갑니다. Krizhevsky 등 [24]이 제시한 동기는 모델을 두 개의 GPU에 분산하는 것이었습니다. 그룹화된 합성곱은 주로 AlexNet의 호환성을 위해 Caffe [19], Torch [3] 및 기타 라이브러리에서 지원됩니다. 우리가 아는 한, 그룹화된 합성곱을 활용하여 정확도를 향상시키는 증거는 거의 없습니다. 그룹화된 합성곱의 특별한 경우는 채널별 합성곱으로, 그룹 수가 채널 수와 동일한 경우입니다. 채널별 합성곱은 [35]의 분리 가능 합성곱의 일부입니다.
Compressing convolutional networks.
분해 (공간 [6, 18] 및/또는 채널 [6, 21, 16] 수준)는 심층 합성곱 신경망의 중복을 줄이고 가속화/압축하는 데 널리 채택된 기술입니다. Ioannou 등 [16]은 계산을 줄이기 위해 “루트” 패턴의 네트워크를 제시했으며, 루트의 분기들은 그룹화된 합성곱으로 구현됩니다. 이러한 방법들 [6, 18, 21, 16]은 낮은 복잡도와 더 작은 모델 크기와 함께 정확도의 우아한 타협을 보여줍니다. 압축 대신, 우리의 방법은 실험적으로 더 강력한 표현 능력을 보여주는 아키텍처입니다.
Ensembling.
독립적으로 훈련된 네트워크 집합을 평균화하는 것은 정확도를 높이는 효과적인 해결책이며 [24], 인식 대회에서 널리 채택되고 있습니다 [33]. Veit 등 [40]은 단일 ResNet을 더 얕은 네트워크의 앙상블로 해석하며, 이는 ResNet의 덧셈적 행동 [15]에 기인합니다. 우리의 방법은 변환 집합을 집계하기 위해 추가를 활용합니다. 그러나 우리는 집계될 구성원들이 독립적으로가 아닌 공동으로 훈련되기 때문에 우리의 방법을 앙상블로 보는 것은 부정확하다고 주장합니다.
3. Method
3.1. Template
우리는 VGG/ResNets를 따르는 고도로 모듈화된 설계를 채택합니다. 우리의 네트워크는 잔차 블록의 스택으로 구성됩니다. 이러한 블록들은 동일한 토폴로지를 가지며, VGG/ResNets에서 영감을 받은 두 가지 간단한 규칙을 따릅니다: (i) 동일한 크기의 공간적 맵을 생성하는 경우, 블록들이 동일한 하이퍼파라미터(너비와 필터 크기)를 공유하며, (ii) 공간 맵이 2배로 다운샘플링될 때마다 블록의 너비가 2배로 증가합니다. 두 번째 규칙은 FLOPs (부동소수점 연산, 곱셈-덧셈의 개수)로 측정되는 계산 복잡도가 모든 블록에 대해 대략 동일하도록 보장합니다.
이 두 가지 규칙으로 인해 우리는 템플릿 모듈만 설계하면 되고, 네트워크의 모든 모듈이 이에 따라 결정될 수 있습니다. 따라서 이 두 가지 규칙은 설계 공간을 크게 좁혀주어 몇 가지 핵심 요소에 집중할 수 있게 합니다. 이러한 규칙에 의해 구성된 네트워크는 표 1에 나와 있습니다.
3.2. Revisiting Simple Neurons
인공 신경망에서 가장 단순한 뉴런은 내적(가중합)을 수행하며, 이는 완전 연결 층과 합성곱 층에 의해 수행되는 기본적인 변환입니다. 내적은 집계 변환의 한 형태로 생각할 수 있습니다:
\[\begin{equation} \sum_{i=1}^D{w_ix_i} \end{equation}\]여기서 $\mathbf{x}=[x_1,x_2,…,x_D]$ 는 뉴런에 대한 $D$-채널 입력 벡터이고, $w_i$ 는 $i$-번째 채널에 대한 필터의 가중치입니다. 이 연산은 (일반적으로 일부 출력 비선형성을 포함하여) “뉴런”이라고 불립니다. 그림 2를 참조하십시오.
위의 연산은 분할, 변환, 집계의 조합으로 재구성할 수 있습니다. (i) 분할: 벡터 $\mathbf{x}$ 가 저차원 임베딩으로 분할되며, 위에서는 단일 차원 부분 공간 $x_i$ 입니다. (ii) 변환: 저차원 표현이 변환되며, 위에서는 단순히 스케일링됩니다: $w_ix_i$. (iii) 집계: 모든 임베딩의 변환은 $\sum_{i=1}^D$ 에 의해 집계됩니다.
3.3. Aggregated Transformations
위의 단순 뉴런 분석을 바탕으로, 우리는 기본 변환 $(w_i, x_i)$을 보다 일반적인 함수로 대체하는 것을 고려합니다.
이 함수 자체도 네트워크가 될 수 있습니다. “Network-in-Network” [26]가 깊이 차원을 증가시키는 것과는 달리, 우리는 우리의 “Network-in-Neuron”이 새로운 차원으로 확장된다는 것을 보여줍니다.
공식적으로, 우리는 집계된 변환을 다음과 같이 제시합니다:
여기서 $T_i(\mathbf{x})$ 는 임의의 함수가 될 수 있습니다. 단순 뉴런과 유사하게, $T_i$ 는 $\mathbf{x}$ 를 (선택적으로 저차원) 임베딩으로 투영한 다음 변환해야 합니다.
식 (2)에서 $C$ 는 집계될 변환 집합의 크기입니다. 우리는 $C$ 를 카디널리티라고 부릅니다 [2]. 식 (2)에서 $C$ 는 식 (1)에서의 $D$ 와 유사한 위치에 있지만, $C$ 는 $D$ 와 같을 필요가 없으며 임의의 숫자가 될 수 있습니다. 너비 차원이 단순 변환(내적)의 수와 관련이 있는 반면, 우리는 카디널리티 차원이 더 복잡한 변환의 수를 제어한다고 주장합니다. 우리는 실험을 통해 카디널리티가 본질적인 차원이며 너비와 깊이 차원보다 더 효과적일 수 있음을 보여줍니다.
본 논문에서는 변환 함수들을 설계하는 간단한 방법을 고려합니다: 모든 $\mathcal{T}_i$ 는 동일한 토폴로지를 가집니다. 이는 동일한 모양의 층을 반복하는 VGG 스타일 전략을 확장하여, 몇 가지 요인을 분리하고 많은 수의 변환으로 확장하는 데 유용합니다. 우리는 개별 변환 $\mathcal{T}_i$ 를 병목형 아키텍처 [14]로 설정하였으며, 그림 1 (오른쪽)에 설명되어 있습니다. 이 경우, 각 $\mathcal{T}_i$ 의 첫 번째 $1\times1$ 층이 저차원 임베딩을 생성합니다.
식 (2)에서의 집계된 변환은 잔차 함수 [14] (그림 1 오른쪽)로 작용합니다:
여기서 $\mathbf{y}$ 는 출력입니다.
Relation to Inception-ResNet.
몇 가지 텐서 조작을 통해 그림 1(오른쪽)에 있는 모듈 (그림 3(a)에도 표시됨)이 그림 3(b)와 동등함을 보여줍니다. 그림 3(b)는 잔차 함수에서 분기와 연결이 포함된 Inception-ResNet [37] 블록과 유사해 보입니다. 그러나 모든 Inception 또는 Inception-ResNet 모듈과 달리, 우리는 여러 경로 간에 동일한 토폴로지를 공유합니다. 우리의 모듈은 각 경로를 설계하는 데 최소한의 추가 노력을 필요로 합니다.
Relation to Grouped Convolutions.
위의 모듈은 그룹화된 합성곱 [24]의 표기법을 사용하여 더 간결해집니다. 이 재구성은 그림 3(c)에 설명되어 있습니다. 모든 저차원 임베딩(첫 번째 $1×1$ 층)은 하나의 더 넓은 층(예: 그림 3(c)에서 $1×1$, 128-d)으로 대체될 수 있습니다. 그룹화된 합성곱 층이 입력 채널을 그룹으로 나눌 때 분할이 본질적으로 수행됩니다. 그림 3(c)의 그룹화된 합성곱 층은 4차원의 입력 및 출력 채널을 가지는 32개의 합성곱 그룹을 수행합니다. 그룹화된 합성곱 층은 그것들을 층의 출력으로 연결합니다. 그림 3(c)의 블록은 그림 1(왼쪽)의 원래 병목 잔차 블록과 유사하지만, 그림 3(c)는 더 넓지만 드물게 연결된 모듈입니다.
우리는 재구성이 블록의 깊이가 $≥3$ 일 때만 비트리비얼한 토폴로지를 생성함을 주목합니다. 블록의 깊이가 $=2$ 인 경우 (예: [14]의 기본 블록), 재구성은 단순히 넓고 밀집된 모듈을 초래합니다. 그림 4를 참조하십시오.
Discussion.
우리는 연결(Fig. 3(b)) 또는 그룹화된 합성곱(Fig. 3(c))을 나타내는 재구성을 제시하지만, 이러한 재구성은 Eqn.(3)의 일반적인 형태에 항상 적용 가능한 것은 아닙니다. 예를 들어, 변환 $\mathcal{T}_i$ 가 임의의 형태를 취하고 이질적일 경우입니다. 우리는 이 논문에서 단순하고 확장성이 있는 균일한 형태를 사용하는 것을 선택했습니다. 이 단순화된 경우에서는 그림 3(c)의 그룹화된 합성곱이 구현을 용이하게 하는 데 도움이 됩니다.
3.4. Model Capacity
다음 섹션의 실험에서는 모델의 복잡도와 매개변수 수를 유지하면서도 우리의 모델이 정확도를 향상시키는 것을 보여줄 것입니다. 이는 실제로 흥미로운 점일 뿐만 아니라, 복잡도와 매개변수 수는 모델의 고유 용량을 나타내므로 종종 심층 네트워크의 기본 속성으로 연구됩니다 [8].
복잡도를 유지하면서 다른 카디널리티 $C$ 를 평가할 때, 우리는 다른 하이퍼파라미터의 수정을 최소화하고자 합니다. 우리는 병목의 너비(예: 그림 1(오른쪽)에서 4-d)를 조정하기로 선택했으며, 이는 블록의 입력과 출력에서 분리될 수 있기 때문입니다. 이 전략은 다른 하이퍼파라미터(깊이 또는 블록의 입력/출력 너비)에 변화를 주지 않으므로 카디널리티의 영향을 집중적으로 연구하는 데 유용합니다.
그림 1(왼쪽)에서, 원래 ResNet 병목 블록 [14]는 $256⋅64+3⋅3⋅64⋅64+64⋅256≈70k$ 매개변수와 비례하는 FLOPs를 가집니다 (같은 특징 맵 크기에서). 병목 너비 $d$ 에 대해, 그림 1(오른쪽)의 우리의 템플릿은 다음과 같은 매개변수와 비례하는 FLOPs를 가집니다:
$C=32$ 이고 $d=4$ 일 때, 식 (4) $≈70k$ 입니다. 표 2는 카디널리티 $C$ 와 병목 너비 $d$ 사이의 관계를 보여줍니다.
섹션 3.1에서 두 가지 규칙을 채택했기 때문에, 위의 근사 등식은 모든 단계에서 ResNet 병목 블록과 우리의 ResNeXt 사이에서 유효합니다 (특징 맵 크기가 변경되는 서브 샘플링 층 제외). 표 1은 원래 ResNet-50과 유사한 용량의 우리의 ResNeXt-50을 비교합니다. 우리는 복잡도가 대략적으로만 유지될 수 있음을 주목하지만, 복잡도의 차이는 미미하며 결과에 영향을 미치지 않습니다.
4. Implementation details
우리의 구현은 [14]와 공개된 코드 fb.resnet.torch
[11]을 따릅니다. ImageNet 데이터셋에서 입력 이미지는 [11]에 의해 구현된 [38]의 스케일 및 종횡비 증강을 사용하여 크기 조정된 이미지에서 무작위로 $224×224$ 로 잘립니다. 지름길 연결은 차원을 증가시키는 경우(예: [14]의 유형 B 투영)를 제외하고 동일성 연결입니다. conv3, 4, 5의 다운샘플링은 각 단계의 첫 번째 블록의 $3×3$ 층에서 스트라이드-2 합성곱으로 수행됩니다 [11]. 우리는 8개의 GPU(각 GPU당 32개)에서 미니배치 크기 256으로 SGD를 사용합니다. 가중치 감쇠는 0.0001이고 모멘텀은 0.9입니다. 학습률은 0.1에서 시작하며, [11]의 일정에 따라 세 번 10으로 나누어 감소시킵니다. 우리는 [13]의 가중치 초기화를 채택합니다. 모든 소거 비교에서는 짧은 쪽이 256인 이미지에서 단일 $224×224$ 중심 자르기를 사용하여 오류를 평가합니다.
우리의 모델은 그림 3(c)의 형태로 구현됩니다. 우리는 그림 3(c)에서 합성곱 바로 다음에 배치 정규화(BN) [17]를 수행합니다. 각 BN 직후에 ReLU가 수행되며, 블록의 출력에서는 [14]를 따라 지름길에 추가한 후에 ReLU가 수행됩니다.
우리는 그림 3에 있는 세 가지 형태가 위에서 언급한 대로 BN과 ReLU가 적절히 처리되면 엄밀히 동일함을 주목합니다. 우리는 세 가지 형태 모두를 훈련하여 동일한 결과를 얻었습니다. 우리는 그림 3(c)을 구현에 사용하기로 선택했으며, 이는 다른 두 형태보다 더 간결하고 빠릅니다.
5. Experiments
5.1. Experiments on ImageNet-1K
우리는 1000-클래스 ImageNet 분류 작업 [33]에 대해 소거 실험을 수행합니다. 우리는 [14]를 따라 50층 및 101층 잔차 네트워크를 구성합니다. ResNet-50/101의 모든 블록을 우리의 블록으로 단순히 교체합니다.
Notations.
섹션 3.1의 두 규칙을 채택했기 때문에 템플릿으로 아키텍처를 참조하는 것으로 충분합니다. 예를 들어, 표 1은 카디널리티 $C=32$ 와 병목 너비 $=4d$ (그림 3)의 템플릿으로 구성된 ResNeXt-50을 보여줍니다. 이 네트워크는 단순화를 위해 ResNeXt-50 ($32×4d$)로 표기됩니다. 템플릿의 입력/출력 너비는 256-d로 고정되어 있으며 (그림 3), 특징 맵이 다운샘플링될 때마다 모든 너비가 두 배가 됩니다 (표 1 참조).
Cardinality vs. Width.
우리는 표 2에 나열된 대로 복잡도를 유지하면서 카디널리티 $C$ 와 병목 너비 간의 트레이드오프를 평가합니다. 표 3은 결과를 보여주고, 그림 5는 오류와 에포크 간의 곡선을 보여줍니다. ResNet-50 (표 3 상단 및 그림 5 왼쪽)과 비교하면, $32×4d$ ResNeXt-50은 22.2%의 검증 오류를 가지며, 이는 ResNet 기준선의 23.9%보다 1.7% 낮습니다. 복잡도를 유지하면서 카디널리티 $C$가 1에서 32로 증가함에 따라 오류율이 계속 감소합니다. 게다가, $32×4d$ ResNeXt는 ResNet 대응 모델보다 훨씬 낮은 학습 오류를 가지며, 이는 향상이 정규화 때문이 아니라 더 강력한 표현 때문임을 시사합니다.
ResNet-101의 경우에도 유사한 경향이 관찰되었으며 (그림 5 오른쪽, 표 3 하단), $32×4d$ ResNeXt-101이 ResNet-101 대비 0.8% 더 나은 성능을 보였습니다. 검증 오류의 개선은 50층 케이스보다 작지만, 학습 오류의 개선은 여전히 큽니다 (ResNet-101의 경우 20%, $32×4d$ ResNeXt-101의 경우 16%, 그림 5 오른쪽). 실제로, 더 많은 학습 데이터는 검증 오류의 격차를 더 확대시킬 것이며, 이는 다음 섹션에서 ImageNet-5K 세트를 통해 보여줍니다.
표 3은 또한 복잡도를 유지하면서 너비를 줄이는 대가로 카디널리티를 증가시키는 경우, 병목 너비가 작을 때 정확도가 포화되는 경향을 보인다고 시사합니다. 우리는 그러한 트레이드오프에서 너비를 계속 줄이는 것이 가치가 없다고 주장합니다. 따라서 이후에서는 병목 너비를 4d 이상으로 채택합니다.
Increasing Cardinality vs. Deeper/Wider.
우리는 다음으로 카디널리티 $C$ 를 증가시키거나 깊이 또는 너비를 증가시켜 복잡성을 높이는 것을 조사합니다. 다음 비교는 ResNet-101 기준선의 $2×$ FLOPs와 참조하여 볼 수도 있습니다. 우리는 약 $∼15$ billion FLOPs를 가진 다음 변형을 비교합니다. (i) 더 깊게 가기: 200층으로 깊이를 늘림. 우리는 [11]에서 구현된 ResNet-200 [15]를 채택했습니다. (ii) 더 넓게 가기: 병목 너비를 증가시킴. (iii) 카디널리티 증가: $C$ 를 두 배로 늘림.
표 4는 복잡도를 $2×$ 로 증가시키는 것이 ResNet-101 기준선(22.0%) 대비 일관되게 오류를 줄인다는 것을 보여줍니다. 그러나 더 깊게 갈 때(ResNet-200, 0.3%)나 더 넓게 갈 때(더 넓은 ResNet-101, 0.7%)의 개선은 작습니다.
반대로, 카디널리티 $C$ 를 증가시키는 것은 더 깊거나 넓게 가는 것보다 훨씬 더 나은 결과를 보여줍니다. 2×64d ResNeXt-101 (즉, $1×64d$ ResNet-101 기준선에서 $C$를 두 배로 늘리고 너비를 유지한 모델)은 top-1 오류를 1.3\% 감소시켜 20.7\%로 낮춥니다. $64×4d$ ResNeXt-101 (즉, $32×4d$ ResNeXt-101에서 $C$를 두 배로 늘리고 너비를 유지한 모델)은 top-1 오류를 20.4%로 감소시킵니다.
우리는 또한 $32×4d$ ResNeXt-101(21.2%)이 더 깊은 ResNet-200 및 더 넓은 ResNet-101보다 더 나은 성능을 보인다는 것을 주목합니다. 이는 단지 $∼50$% 의 복잡도만을 가짐에도 불구하고 이루어진 성과입니다. 이는 다시 한번 카디널리티가 깊이와 너비 차원보다 더 효과적인 차원임을 보여줍니다.
Residual connections.
다음 표는 잔차(지름길) 연결의 효과를 보여줍니다.
ResNeXt-50에서 지름길 연결을 제거하면 오류가 3.9포인트 증가하여 26.1%가 됩니다. ResNet-50에서 지름길 연결을 제거하는 경우 훨씬 더 나쁜 결과(31.2%)를 보입니다. 이러한 비교는 잔차 연결이 최적화에 도움이 되는 반면, 집계된 변환은 더 강력한 표현력을 제공한다는 것을 시사합니다. 이는 잔차 연결의 유무와 관계없이 해당 모델이 일관되게 더 나은 성능을 보여주는 사실로 입증됩니다.
Performance.
간결함을 위해 우리는 Torch의 기본 그룹화 합성곱 구현을 사용하며, 특별한 최적화는 하지 않았습니다. 우리는 이 구현이 무차별 대입 방식이며 병렬 처리에 적합하지 않았음을 주목합니다. NVIDIA M40의 8 GPU에서, 표 3의 $32×4d$ ResNeXt-101을 학습하는 데 미니배치당 0.95초가 걸렸으며, 이는 유사한 FLOPs를 가진 ResNet-101 기준선의 0.70초와 비교됩니다. 우리는 이것이 합리적인 오버헤드라고 주장합니다. 우리는 정교하게 설계된 저수준 구현(예: CUDA)을 통해 이 오버헤드가 줄어들 것을 기대합니다. 또한 CPU에서의 추론 시간이 더 적은 오버헤드를 보일 것으로 예상합니다. $2×$ 복잡도의 모델 ($64×4d$ ResNeXt-101)을 학습하는 데는 미니배치당 1.7초가 걸리며, 8개의 GPU에서 총 10일이 소요됩니다.
Comparisons with state-of-the-art results.
표 5는 ImageNet 검증 세트에서 단일 자르기 테스트의 추가 결과를 보여줍니다. $224×224$ 크기의 자르기 외에도, 우리는 [15]를 따라 $320×320$ 크기의 자르기도 평가합니다. 우리의 결과는 ResNet, Inception-v3/v4 및 Inception-ResNet-v2와 비교할 때 우수하며, 단일 자르기에서 top-5 오류율 4.4%를 달성합니다. 또한, 우리의 아키텍처 설계는 모든 Inception 모델보다 훨씬 간단하며, 수동으로 설정해야 하는 하이퍼파라미터 수가 크게 줄어듭니다.
ResNeXt는 ILSVRC 2016 분류 과제에 대한 우리의 제출물의 기반이며, 여기서 우리는 2위를 차지했습니다. 우리는 다중 스케일 및/또는 다중 자르기 테스트를 사용한 후에 많은 모델(우리의 모델 포함)이 이 데이터셋에서 성능이 포화 상태에 도달하기 시작했음을 주목합니다. 우리는 [14]의 다중 스케일 밀집 테스트를 사용하여 단일 모델 top-1/top-5 오류율 17.7%/3.7%를 달성했으며, 이는 다중 스케일 및 다중 자르기 테스트를 채택한 Inception-ResNet-v2의 단일 모델 결과인 17.8%/3.7%와 동등합니다. 우리는 테스트 세트에서 3.03%의 top-5 오류율을 가진 앙상블 결과를 얻었으며, 이는 우승자의 2.99% 및 Inception-v4/Inception-ResNet-v2의 3.08% [37]와 동등합니다.
5.2. Experiments on ImageNet-5K
ImageNet-1K에서의 성능은 포화 상태에 도달한 것으로 보입니다. 하지만 이는 모델의 성능 한계 때문이 아니라 데이터셋의 복잡도 때문이라고 우리는 주장합니다. 다음으로, 5000개의 카테고리를 가진 더 큰 ImageNet 하위 집합에서 우리의 모델을 평가합니다.
우리의 5K 데이터셋은 전체 ImageNet-22K 세트 [33]의 하위 집합입니다. 5000개의 카테고리는 원래 ImageNet-1K 카테고리와 전체 ImageNet 세트에서 가장 많은 이미지를 가진 추가 4000개의 카테고리로 구성됩니다. 5K 세트는 680만 개의 이미지를 포함하며, 이는 1K 세트의 약 $5×$에 해당합니다. 공식적인 학습/검증 분할이 제공되지 않기 때문에, 우리는 원래의 ImageNet-1K 검증 세트에서 평가를 진행하기로 했습니다. 이 1K 클래스 검증 세트에서 모델은 5K-way 분류 과제(예측된 모든 레이블이 나머지 4K 클래스에 속할 경우 자동으로 오류로 처리됨) 또는 1K-way 분류 과제로 평가될 수 있습니다(테스트 시점에 softmax는 1K 클래스에만 적용됩니다).
구현 세부 사항은 섹션 4와 동일합니다. 5K 학습 모델은 모두 처음부터 학습되었으며, 1K 학습 모델과 동일한 미니 배치 수로 학습되었습니다(따라서 에포크는 $1/5×$). 표 6과 그림 6은 복잡도가 유지된 상태에서의 비교를 보여줍니다. ResNeXt-50은 ResNet-50과 비교하여 5K-way top-1 오류를 3.2% 줄였으며, ResNeXt-101은 ResNet-101과 비교하여 5K-way top-1 오류를 2.3% 줄였습니다. 1K-way 오류에서도 유사한 격차가 관찰되었습니다. 이는 ResNeXt의 더 강력한 표현력을 입증합니다.
게다가, 우리는 5K 세트에서 학습된 모델(표 6에서 1K-way 오류 22.2%/5.7%)이 동일한 1K-way 분류 작업에서 검증 세트에서 평가된 1K 세트에서 학습된 모델(표 3에서 21.2%/5.6%)과 경쟁력 있는 성능을 보인다는 것을 발견했습니다. 이 결과는 학습 시간(동일한 미니 배치 수로 인해)을 늘리지 않고, 미세 조정 없이 달성되었습니다. 우리는 5K 카테고리를 분류하는 학습 과제가 더 어려운 과제라는 점을 감안할 때, 이것이 유망한 결과라고 주장합니다.
5.3. Experiments on CIFAR
우리는 CIFAR-10 및 CIFAR-100 데이터셋 [23]에서 추가 실험을 수행했습니다. [14]에서 사용된 아키텍처를 사용하며, 기본 잔차 블록(residual block)을 $\begin{bmatrix}1×1, & 64 \ 3×3, & 64 \ 1×1, & 256 \end{bmatrix}$ 병목(bottleneck) 템플릿으로 대체했습니다. 우리의 네트워크는 단일 $3×3$ 컨볼루션 레이어로 시작하며, 3개의 잔차 블록을 가진 3단계가 뒤따르고, 평균 풀링과 완전 연결된 분류기로 끝납니다(총 29층 깊이). 우리는 [14]와 동일한 평행 이동과 뒤집기 데이터 증강을 사용했습니다. 구현 세부 사항은 부록에 있습니다.
우리는 위 기본 설정을 기반으로 복잡도를 증가시키는 두 가지 경우를 비교했습니다: (i) 카디널리티(cardinality)를 증가시키고 모든 너비를 고정하거나, (ii) 병목의 너비를 증가시키고 카디널리티를 1로 고정하는 경우입니다. 우리는 이러한 변화 하에서 일련의 네트워크를 학습하고 평가했습니다. 그림 7은 테스트 오류율과 모델 크기의 비교를 보여줍니다. 우리는 카디널리티를 증가시키는 것이 너비를 증가시키는 것보다 더 효과적임을 발견했으며, 이는 ImageNet-1K에서 관찰한 결과와 일치합니다. 표 7은 Wide ResNet [43]과 비교한 결과와 모델 크기를 보여줍니다. 유사한 모델 크기(34.4M)를 가진 우리의 모델은 Wide ResNet보다 나은 결과를 보여줍니다. 우리의 더 큰 모델은 CIFAR-10에서 평균 10회 실행으로 3.58% 테스트 오류를, CIFAR-100에서 17.31%를 달성했습니다. 우리의 지식에 따르면, 이는 유사한 데이터 증강과 함께 문헌(미발표 기술 보고서 포함)에서의 최신 결과입니다.
5.4. Experiments on COCO object detection
다음으로 우리는 COCO 객체 탐지 세트 [27]에서 일반화 가능성을 평가합니다. 우리는 [1]을 따라 80k 학습 세트와 35k 검증 하위 집합에서 모델을 학습하고, 5k 검증 하위 집합(minival이라 불림)에서 평가합니다. 우리는 COCO 스타일 평균 정밀도(AP)와 AP@IoU=0.5 [27]를 평가합니다. 기본 Faster R-CNN [32]을 채택하고, [14]를 따라 ResNet/ResNeXt를 여기에 통합했습니다. 모델은 ImageNet-1K에서 사전 학습되었으며, 탐지 세트에서 미세 조정되었습니다. 구현 세부 사항은 부록에 있습니다.
표 8은 비교 결과를 보여줍니다. 50층 기반 모델에서 ResNeXt는 AP@0.5를 2.1%, AP를 1.0% 개선하며, 복잡도를 증가시키지 않았습니다. ResNeXt는 101층 기반 모델에서 더 작은 개선을 보였습니다. 우리는 ImageNet-5K 세트에서 관찰된 것처럼 더 많은 학습 데이터가 더 큰 격차를 유도할 것이라고 추측합니다.
또한 최근 ResNeXt가 Mask R-CNN [12]에 채택되어 COCO 인스턴스 분할 및 객체 탐지 작업에서 최첨단 결과를 달성한 점도 주목할 만합니다.
Acknowledgment
S.X.와 Z.T.의 연구는 NSF IIS-1618477의 일부 지원을 받았습니다. 저자들은 Tsung-Yi Lin과 Priya Goyal에게 귀중한 논의에 대해 감사의 뜻을 전합니다.
Saining Xie, Ross Girshick, Piotr Dollár, Zhuowen Tu, Kaiming He Aggregated Residual Transformations for Deep Neural Networks
댓글남기기