[DL] ResNeXt 논문 리뷰


    모델의 구조가 복잡해지면서 지정해줘야 하는 하이퍼 파라미터 수(filter size, channel. stride 등등)가 증가했고 이에 따라 모델을 설계하는 작업이 어려워졌습니다. ResNext 모델은 cardinality라는 새로운 dimension을 활용하여 하이퍼 파라미터 작업을 단순화시킵니다. 뿐만 아니라 기존 모델보다 더 좋은 성능을 보입니다. Aggregated Residual Transformations for Deep Neural Networks 논문을 통해 ResNext 모델의 구조에 대해 살펴보도록 하겠습니다.(Wide ResNet에 대한 논문 리뷰를 먼저 읽어보고 오시면 좋을 것 같습니다!)

Idea behind

ResNext 모델에 대해 설명하기에 앞서 논문 저자들이 모델 설계에 대해 고려했던 부분에 대해 살펴보도록 하겠습니다. 논문 저자들은 모델 성능 개선을 위해 기존 모델을 두 가지 측면으로 나눠서 생각합니다.

  • 기존 CNN 모델 중 VGG, ResNet 계열의 모델은 모두 같은 형상(topology)를 가지는 layer를 쌓는 형태의 모델입니다. VGG는 3x3 filter를 적용한 layer를, ResNet은 residual block을 topology로 가집니다. VGG와 ResNet 계열의 모델은 같은 topology의 layer를 반복함으로써 지정해줘야 하는 하이퍼 파라미터 수가 적고 모델이 데이터셋에 과적합(over-adapting)하는 것을 방지합니다. 반면 성능은 상대적으로 낮게 나오는 편입니다.

  • Inception 계열의 모델은 split-transform-merge 전략을 사용하여 모델을 설계합니다. 이는 단일한 input 값에 대하여 서로 다른 convolution(1x1 conv, 3x3 conv, 5x5 conv, pool)을 적용하여(split) 변형시킨 후(transform), 집계하는(merge)하는 방식을 의미합니다. 이러한 방식은 좋은 성능을 보였지만 조정해줘야할 하이퍼 파라미터 수가 많아 모델 설계가 어렵다는 단점이 있습니다.(실제로 가벼운 실험에 대해서는 복잡한 Inception보다 단순한 VGG를 선호한다고 합니다)

Cap 2020-04-02 21-30-17-133

논문의 저자들은 VGG, ResNet 계열의 모델처럼 동일한 topology의 layer를 쌓으면서 Inception 계열의 모델처럼 split-transform-merge 전략을 사용하는 모델의 구조에 대해 고안했습니다. 그 결과 두 계열의 모델의 이점을 잘 살린 ResNext 모델을 만들어냈습니다. 논문에서는 모델 구조를 설명하기에 앞서 ‘Cardinality’라는 새로운 dimension을 도입합니다.(ResNext는 next dimension이라는 의미입니다)

Cardianlity

논문에서 Cardinality를 다음과 같이 정의합니다.

the size of the set of transformations

  • transformation이 적용되는 set의 크기, 즉 단일한 input값이 convolution 연산을 적용하기 위해 split되는 횟수를 의미합니다. VGG, ResNet 계열 모델의 block은 cardinality가 1이며 위의 그림에서 확인할 수 있는 Inception module은 cardinality가 4라고 할 수 있습니다.

  • 논문의 저자들은 신경망의 깊이나 넓이(channel)을 늘리는 것보다 cardinality를 늘렸을 때 ;좋은 성능을 보인다고 주장합니다. 특히 층이 더 깊어져 vanishing gradients 문제가 발생할 때 더욱 효과적이라고 합니다.

논문의 저자들은 cardianlity를 늘림으로써 모델의 정확도를 향상시키고자 했습니다. 하지만 cardinality를 늘릴 경우 모델의 복잡도(complexity)가 늘어나는 문제가 발생합니다.

ResNext

논문의 저자들은 위와 같은 문제를 VGG, ResNet 계열의 모델처럼 동일한 topology를 가진 layer를 쌓는 방식을 활용하여 모델의 복잡도를 낮췄습니다. 이를 통해 지정해야하는 하이퍼 파라미터 수를 효과적으로 줄였습니다. ResNext 모델은 두 계열의 모델의 이점을 적절히 조화시킴으로서 높은 정확도와 낮은 모델 복잡도라는 두 마리 토끼를 잡은 셈입니다. 모델의 구조는 다음과 같습니다.

image

  • 위의 그림에서 왼쪽은 일반적인 ResNet block을, 오른쪽은 ResNext 모델의 block입니다. ResNet block의 파라미터 수는 약 7만여(=256 * 64 + 3 * 3 * 64 + 64 * 256)개입니다. ResNext block의 파라미터 수 역시 7만여(=256 * 4 + 3 * 3 * 4 * 4 + 4 * 256)개로 두 모델의 파라미터 수는 비슷합니다. 하지만 앞서 언급했다시피 ResNext 모델은 cardinality(=32)를 늘림으로써 ResNet보다 좋은 성능을 보입니다.

image

  • 이같은 Resnext block의 구조는 개별 뉴런의 연산과 유사합니다. 뉴런의 연산은 input vector x가 여러 개의 scalar로 split되고 각각 가중치 w가 곱해지는 transformation 과정을 거쳐 aggregate 됩니다. ResNext block은 input값이 cardinality 수만큼 split되고 non-linear한 transformation이 적용되고 최종적으로 aggregate됩니다. 논문의 저자들은 이 같은 구조를 Network in Neuron이라고 지칭합니다.

다음으로는 논문의 저자들이 다양한 실험을 통해 도출한 결론에 대해 살펴보도록 하겠습니다.

Experiments

논문의 저자들은 다양한 실험을 통해 최적의 모델 구조와, ResNext 모델에서 조정해줘야 하는 하이퍼 파라미터 C와 d, 그리고 cardianlity와 residual connection이 모델 성능에 미치는 영향에 대해 언급합니다.

1) Implementation details

모델 구현을 세부적인 사항은 다음과 같습니다.

  • Input image size : (224, 224)
  • data augmentation : random crop
  • optimizer : SGD
  • mini-batch size : 256
  • gpu usage : 8
  • (starting)learning rate : 0.1
  • weight decay = 0.0001
  • momentum : 0.9
  • convolution 직후마다 Batch normalization, Relu 적용

2) best architectures

논문의 저자들은 모델을 변형하여 세 가지 ResNext 모델 구조에 대해 성능을 측정합니다.

Cap 2020-04-02 22-02-33-401

  • (a) 구조는 일반적인 ResNext block 구조입니다.

  • (b) 구조는 1x1 convolution을 적용하지 않고 concatenate 과정을 거칩니다. 이는 Inception-ResNet 모델과 유사한 구조입니다.

  • 마지막으로 (c) 구조는 grouped convolution을 적용한 구조입니다. Grouped convolution은 input channel을 여러 개의 group으로 나눠 각자 병렬로 convolution 연산을 진행하는 방식입니다. 위의 그림에서는 input channel이 128입니다. 이에 대해 32개의 group으로 나누고 output channel이 4가 되도록 convolution을 진행하면 총 128개의 feature map을 얻을 수 있습니다. 이에 대해 1x1 filter를 적용하고 output channel이 256이 되도록 지정하면 (a), (b) 구조와 동일한 feature map을 얻을 수 있습니다. Grouped convolution의 병렬 처리에 유리하고 기존 방식보다 더 적은 파라미터 수를 가진다는 이점이 있습니다. 간결하고 빠르다는 이점으로 논문 저자들은(c) 구조를 선택하여 실험을 진행합니다.

3) best C and d

ResNext 모델 설계를 위해서는 반드시 하이퍼 파라미터 C(cardinality)와 d(각 path의 output channel(width of bottleneck d)수)를 설정해줘야 합니다. 논문의 저자들은 C와 d를 조정하면서 모델의 복잡도를 유지시킬 수 있는 최적의 값을 찾아냅니다.

Cap 2020-04-02 22-05-44-110

다른 하이퍼 파라미터는 고정시킨 채로 C,d만 변화시켜 확인한 결과 C = 32, d = 4 로 지정했을 때 ResNet과 파라미터 수가 유사했습니다. 이를 통해 모델의 복잡도를 통제할 수 있]습니다. 위의 도표를 보면 (width of group conv) = (cardianlity C) * (width of bottleneck d) 와 같은 것을 확인할 수 있습니다.

4) Cardinality의 중요성

다음 도표는 ResNet 모델과 ResNext 모델 각각의 복잡도를 보존한 채, cardianlity와 width(=d)를 변경하면서 얻은 결과를 나타냅니다.

image

  • 모델의 복잡도를 유지하면서 C를 1부터 32까지 증가시키자 error가 점차 감소하는 모습을 보였습니다. 위의 도표에서 확인할 수 있다시피 같은 형태의 ResNet Counterpart보다 더 좋은 성능을 보였습니다. 논문의 저자들은 ResNext의 성능은 정규화(Regularization)이 아닌 Cardinality로부터 비롯된 신경망의 더 강한 표현력(stronger representation)으로부터 비롯된다고 말합니다.

image

  • Cardinality가 모델 성능에 미치는 영향을 심도 있게 살펴보기 위해 더 깊은 모델(deeper, layer를 증가시킴), 더 넓은 모델(wider, bottleneck width 증가시킴), 그리고 Cardinality를 늘린 모델을 비교했습니다. 실험 결과 cardianlity를 증가시킨 모델이 가장 높은 성능을 보였습니다. 이를 통해 논문의 저자들은 모델의 깊이나 넓이보다 모델의 cardianlity가 성능에 더 큰 영향을 준다는 것을 밝혀냈습니다.

5) Residual connection의 중요성

image

마지막으로 residual connection을 적용한 모델과 적용하지 않은 모델을 비교하였습니다. 실험 결과 residual connection을 적용한 모델이 훨씬 뛰어난 성능을 보였습니다. 논문의 저자들은 residual connection은 optimization에 용이한 조건을 제공하여 모델 성능 향상에 영향을 준다고 언급했습니다.

Conclusion

ResNext 모델은 Cardinality라는 새로운 dimension의 중요성을 부각함으로써 모델 경량화와 성능 향상을 이끌어냈습니다. 본 논문에서는 모델을 학습시키기 위해 반드시 “deep”할 필요없다는 철학을 통해 CNN 모델 발전에 새로운 지평을 열었다고 생각합니다.

Reference

Aggregated Residual Transformations for Deep Neural Networks
grouped convolution 설명
ResNext 논문 요약




© 2017. by herbwood

Powered by aiden