이번에 리뷰할 논문은 Aggregated Residual Transformations for Deep Neural Networks 이다.
CNN의 성능을 높이기 위해 가장 먼저 드는 생각은 깊고 넓게 만드는 것이다. 하지만 본 논문에서는 깊이와 넓이가 아닌 cardinality를 키우는 것에 초점을 맞추었다.
cardinality: 똑같은 형태의 블럭 개수
즉, 같은 넓이와 깊이를 크게 가져가는 것보다 같은 블럭을 반복 사용하여 모델을 구축하는 것이 정확도에 더 큰 영향을 미친다는 것이다. 이는 Inception module과 비슷한 형태를 가진다. (resnet에서 inception모듈을 적용한 inception resnet이 이미 존재함)
inception module은 input을 저차원의 embedding으로 split하고 서로 다른 filter가 있는 path들을 거쳐 concatination을 통해 merge한다. 이와 달리 ResNeXt는 각 path에 대해 동일한 layer구성을 가진다. 이를 grouped convolution이라고 한다.
Grouped convolution은 m개의 feature를 가진 input이 들어올 경우, 이를 n개의 그룹으로 나누어 계산하는 것이다.
(a)가 기존의 convolution이고 (b)가 grouped convolution이다.
(b)를 보면 채널의 축으로 그룹을 나누는 것을 확인할 수 있다. 그림에서는 2개의 그룹으로 나눈다. 또한 filter도 2개의 그룹으로 나눈다. (input의 채널 수와 kernel의 채널 수는 동일하기 때문에 n번 나눠도 채널이 동일함.) 이후 나눠진 feature와 kernel을 convolution연산해준다. 그렇게 나온 개의 output n개를 concat해준게 grouped convolution의 output이다.
생각해보면 group이 1개일 경우 원래의 convolution인 (a)가 된다는 것을 알 수 있다.
group이 m개이면 Depthwise Convolution이다.
(채널별로 독립적인 convolution을 수행함.)
이 그림을 보면 ResNeXt는 resnet + grouped convolution이라는 것을 알 수 있다.
256채널에 대해 1x1 conv연산을 32번 진행합니다.
이후 1x1 conv의 output( 4 채널을 가짐)에 3x3 conv연산을 진행합니다.
이후 4개 채널을 가진 2의 output에 1x1 conv연산을 진행하여 256 채널로 만듭니다.
256 채널을 가진 32개의 그룹을 concat합니다.
256채널에 대해 32개의 그룹으로 나눈 후 1x1 conv연산을 진행합니다.
이후 1x1 conv의 output( 4 채널을 가짐)에 3x3 conv연산을 진행합니다.
4채널을 가진 32개의 그룹을 concat합니다.
이후 concat된 128채널에 1x1 conv연산을 하여 256채널으로 만듭니다.
256채널을 가진 input에 1x1 conv를 적용하여 128채널로 만듭니다.
128채널에 대해 32개의 그룹으로 나눈 후 3x3 conv연산을 진행합니다.
각 그룹을 합쳐서 128 채널을 만듭니다.
128채널에 대해 1x1 conv연산을 수행하여 256 채널로 만들어줍니다.
여기서 C는 cardinality이다.
이 표에서 주목해야될 점은 bottle neck layer의 채널 수다.
ResNet-50에 비해 거의 두 배 가까이 증가했음에도 불구하고 파라미터 수는 오히려 더 적은 것을 알 수 있다.
이는 Grouped Convolution의 특징 때문이다.
입력 채널의 수를 kernel의 크기를 출력 채널의 수를 라고 할 때 파라미터 수는 다음과 같다.
기존 Convolution 연산
Grouped Convolution 연산
이 때문에 채널의 너비는 더 넓어졌지만 파라미터 수는 오히려 감소하게 된다.
위의 그래프는 ResNet과 ResNext의 동일한 깊이별성능 비교이며 ResNext가 성능이 더 좋은 것을 알 수 있다.
동일한 깊이별 그룹 수에 따른 성능 비교이다. 그룹의 수가 증가할 수록 성능이 높아진다는 것을 알 수 있다.
성능면에서 ResNet-200 < ResNet-101, wider < ResNeXt-101의 순서를 보이고 있다는 것을 보여준다.
이를 통해 모델의 깊이보다 넓이가, 넓이보다 그룹 수가 많은 것이 더 좋다는 것을 보여준다.