해당 논문은 2017년 CVPR 학회에 발표한 논문입니다.
논문에 대한 전문을 보시려면 여기를 클릭하세요.
혹시 잘못된 내용이 있으면 언제든지 댓글 부탁드립니다!
최근 프로젝트 내용들을 정리하다가 객체 검출에서 DetectorRS 모델의 Backbone으로 활용했던 resnext 논문을 읽고 정리했습니다.
1. 논문 정리
Abstract
논문에서는 동일한 형태의 연산으로 얻은 값들을 합하는 buliding block을 반복하는 방식으로 네트워크를 구축합니다. 새로운 개념인 "Cardinality"를 소개하는데, Cardinality는 변환을 적용한 동일한 빌딩의 개수를 일컫습니다. Cardinality는 depth와 width와 더불어 중요한 요소라고 주장합니다. 실험은 제한된 복잡도를 유지한 상태로 Cardinality를 조절하면서 실험합니다. 결과적으로 동일한 복잡도를 가진 상태에서 깊게 쌓거나 넓게 쌓는 것보다 더 좋은 효과를 얻었습니다. Resnext모델은 ILSVRC 2016 분류 문제에서 2등을 하게 되었습니다. 이외에도 COCO detection과 같은 데이터셋에 대해서 Resnet 보다 좋은 성능을 보여줍니다.
주요 논문 내용
위의 그림처럼 동일한 복잡도를 기준으로 우측이 새로 제안한 모델의 모습입니다. 마치 Inception에서 적용했던 방법과 유사해 보입니다. Inception에서 적용했던 것과 다른 점은 Inception은 input이 여러 가지의 방향으로 나뉠 때 동일한 네트워크를 통과하지 않고 각기 다른 형태의 네트워크를 통과합니다. Resnext에서는 동일한 빌딩의 형태를 가지는 것들을 Cardinality만큼 통과하여 추후 합치는 점에서 차이가 존재합니다.
split-transform-merge strategy
위에 작성된 Resnext 모델의 형태처럼 input을 동일한 채널로 나누고 convolution layer를 거친 뒤에 다시 채널을 복구시켜서 합치는 과정을 말합니다. 이 과정에서 동일한 채널에서 VGG와 Resnet처럼 반복하는 간단한 구조를 제시했습니다. 위의 표에서는 Resnet과 동일한 complexity를 유지한 Resnext50을 만들었습니다.
Aggregated Transformations
$$ y = x + \sum_{i=1}^{C}{T_{i}}(x) $$
위의 수식은 split-transform-merge를 진행하는 부분에 대한 수식의 표현입니다. building block의 Transformation을 $T_{i}$라고 표현하였고, x라는 input이 들어왔을 때, $C$개의 $T_{i}(x)$가 만들어지게 됩니다. 이를 다 합한 뒤에 shortcut connection인 x를 더해주는 방식으로 표현했습니다.
Model Capacity
논문에서는 파라미터의 수와 복잡성을 유지한 상태로 모델의 정확도를 향상시키는 방향으로 실험을 진행했습니다. 기존의 resnet block의 파라미터 수를 구해보면, 256*64 + 3*3*64*64 + 64*256으로 약 69632 정도의 파라미터 수를 얻을 수 있습니다. 반면 resnext의 파라미터 수를 구해보면, 32*(256*4 + 3*3*4*4 + 4*256)으로 70144개의 파라미터 수를 얻을 수 있습니다. 파라미터 수는 크게 차이 나지는 않지만, 구조를 변경하여 얻을 수 있는 결과는 다음과 같습니다.
위의 표에서 setting은 모두 resnet과 비슷한 파라미터를 갖는 설정 값입니다. 다양하게 적용한 결과 비슷한 파라미터에 비해 Resnet50 기준으로는 1.7%정도, Resnet101 기준으로는 0.8% 정도의 성능 향상을 얻을 수 있었습니다
Cardinality vs Deeper/Wider
Cardinality가 깊게 쌓거나 넓게 쌓았을 때보다 성능이 좋은 지 확인하기 위해 실험을 진행했습니다.
기존의 Resnet을 200 layer까지 쌓았을 때, 101 layer보다 미세하게 성능은 향상했으나, Resnext보다는 성능 향상이 적었습니다. 또한 채널 수를 늘려서 적용했을 때에도 Resnext에 동일한 파라미터로 101층까지 쌓은 것이 더 좋은 효과가 있는 것을 확인할 수 있습니다. 이러한 실험을 통해서 깊게 쌓거나 채널 수를 늘리는 것보다 더 효과적이라고 주장하고 있습니다.
결과
ImageNet 1K 데이터 셋에 대해 Inception model과 비교하여 Resnext 성능이 더 좋았음을 보여줍니다. 여기서는 Inception model과 파라미터 수를 최대한 맞춰서 적용하기 위해 Cardinality 64로 적용하였고, 표에서 보시는 것처럼 좋은 성능을 보였습니다. 이외에도 다양한 데이터셋(CIFAR, COCO, ImageNet-5k)에 대해 적용했을 때 resnet보다 좋은 성능을 보였습니다.
2. 세줄 요약
- Resnet과 동일한 복잡도를 가지지만 더 좋은 성능을 가지는 모델 Resnext를 제안했습니다.
- Resnext는 inception module과 형태는 비슷하지만 동일한 transformation을 적용하였습니다.
- 동일한 transformation을 나타내는 Cardinality는 deep, wide보다 더 좋은 성능을 보여줬습니다.