Beyond ResNet

ResNet 이후에 등장한 주요 모델들을 알아보겠습니다.
DenseNet

Residual block에서는 skip connection을 통해 identity mapping을 구현했지만, Dense block에서는 채널 축을 중심으로 concatenation을 수행하도록 되어있습니다. 이때 바로 직전의 입력만 연결하는 것이 아니라 그 이전의 입력들도 모두 연결하도록 debse하게 설계되어 있습니다. 이렇게 상위 레이어에서도 하위 레이어의 특징을 참고할 수 있도록 하여 보다 복잡한 매핑을 학습하기 용이하도록 설계되어 있습니다. 이때 skip connection처럼 값을 합하는 것이 아니라 concatenation하기 때문에 파라미터 수가 증가하고 계산이 복잡해진다는 단점을 가집니다.
SENet

SENet은 depth를 높히거나 connection을 추가해주는 것이 아닌, 채널 축을 중심으로 feature map에 대한 attention을 계산함으로서 각 채널 간의 관계를 모델링하고 중요한 특징에 보다 큰 가중치를 부여할 수 있도록 설계되었습니다. 이때 attention을 계산하는 과정은 Squeeze와 Excitation 과정으로 나누어집니다. Squeeze 과정에서 global average pulling을 수행하여 채널 축의 분포를 얻고, 이를 FC layer에 통과시켜 채널 축으로 feature map을 gating하기 위한 attention score를 계산합니다. Excitation 과정에서는 Squeeze 과정에서 얻은 channel-wise attention score로 feature map을 gating(rescaling)시켜줍니다. 즉 중요도가 떨어지는(attention score가 낮은) channel의 feature map 게이트를 닫게되고, 중요도가 높은 경우 그 반대로 만들어줘서 중요한 특징에 집중할 수 있도록 하는 방법이라고 볼 수 있습니다.
EfficientNet

보통 CNN 구조를 기반으로 더 좋은 성능을 달성할 수 있는 구조를 설계하는 방법은 주로 (b) width scaling [Ex. Inception module of GoogLENet], (c) depth scaling [Ex. ResNet], (d) resolution scaling 중의 하나인 경우가 대부분이었습니다. 이 세 가지 방식은 대체로 성능이 더 좋아지는 경향이 있었으나, 결국에는 saturation되는 경향이 확인되었습니다. 이러한 부분을 착안하여, 세 가지 방식을 적절하게 활용하여 훨씬 좋은 성능을 달성하는 것을 목표로 제안된 것이 바로 EfficientNet의 (e) compound scaling 입니다. 그리고 실제로도 위 그림의 그래프를 보면 사람이 직접 고안함으로써 발전해온 CNN 계열의 모델의 성능 증가 폭, NAS(Neural Architecture Search) 기반으로 제안된 모델의 성능 증가 폭, 그리고 EfficientNet의 성능 증가 폭을 비교했을 때 EfficientNet이 동일 FLOPS 당 압도적인 성능 증가 폭을 보여주는 것을 확인할 수 있습니다.
Deformable Convolution

마지막으로 일반적인 convolution이 아닌 불규칙적인 convolution을 수행하는 Deformable Convolution 방법도 간략하게 소개하도록 하겠습니다. 이는 모든 구성요소의 위치가 정해져있는 자동차, 서랍장 등과 다르게 동물이나 사람 등의 경우 그 움직임에 따라 각 구성요소들의 상대적인 위치가 달라질 수 있습니다. 이러한 deformable한 부분들을 잘 고려하여 convolution을 수행하고자 제안된 방법입니다. Deformable Convolution은 기본적인 convolution 연산을 수행하는 부분과 별도로 2D offset map을 추정하기 위한 부분이 있습니다. 이러한 구조를 기반으로 먼저 입력 이미지에 대해 2D offset map을 추정하고, 기본적인 convolution 연산을 수행할 때 input feature map에서 참고하는 가중치들을 2D offset map 값에 따라 벌려주게 됩니다. 따라서 receptive field가 deformable한 shape을 따라 결정된다고 볼 수 있습니다.
Summary of Image Classification

지금까지 다뤘던 CNN 모델들을 종합하여 살펴보겠습니다. AlexNet은 ImageNet 스케일에서 동작하는 가장 간단한 구조라고 볼 수 있습니다. 따라서 계산이 간단하지만, 용량이 매우 크고, 성능이 비교적 낮습니다. VGGNet의 경우 간단한 3x3 convolution을 기반으로 하고 있지만 비교적 최근에 등장한 모델과 비교해도 모델 사이즈가 가장 큽니다. 이에 따라 계산량 또한 부담이 큽니다. Inception 계열 모델(GoogLeNet)의 경우 inception module과 auxiliary classifier를 사용하여 ResNet보다도 높은 성능을 보이지만, EfficientNet에 비해서는 낮은 성능을 보입니다. ResNet의 경우 depth scaling을 통해 깊은 네트워크 구조를 가지며 뛰어난 성능을 달성했지만, Inception 계열에 비해서는 무겁고, 계산량이 많으며 성능 또한 더 낮았습니다.
CNN Backbones

앞서 성능을 비교해본 그림에서 확인할 수 있듯이 Inception 계열의 모델은 AlexNet, VGGNet, ResNet에 비해 효율적이면서도 높은 성능을 보여주는 강력한 네트워크임을 알 수 있습니다. 허나 auxiliary classifer 등 다양한 task에 적용하기에는 구현이 난해한 부분이 있어 일반적으로는 VGGNet 혹은 ResNet이 많이 사용됩니다.
생각해보기
- SENet 파트에서 간략하게 다룬 attention의 경우, transformer의 기반이 되는 매우 중요한 매커니즘입니다. Vision 분야에서 attention 그리고 transformer를 활용하여 어떠한 연구가 진행되었는지 스스로 학습해봅시다.
참고자료
comment