Huang, Gao, et al. "Densely connected convolutional networks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
Abstract
Image classification 분야에 Deep convolutional network가 사용되면서 더 깊고, 더 정확하고, 더 효율적인 성능을 위해 많은 네트워크 구조가 제안되었다. 하지만 ResNet 구조 이후부터는 network optimization 영역에서 네트워크를 수정하는 방법으로 그치고 네트워크 구조 측면에서의 novelty가 높은 논문은 거의 없었다. 이 논문은 쉬운 네트워크 구조로 다른 네트워크에 비해 많은 이점을 가지는 DenseNet을 제안하였다. DenseNet의 이점으로는, vanishing gradient 문제 완화, feature propagation 강화, feature reuse 강화, parameter efficiency 강화가 있다. CIFAR, SVHN, ImageNet dataset에 대해 실험한 결과, 지금까지의 네트워크에 비해 SOTA를 달성하였다.
Introduction
CNN이 점점 깊어지면서, 여러가지 문제가 발생하였다. 특히, 정보가 layer를 지날 수록, vanish 또는 wash out 문제가 발생한다. ResNet에서 이 문제를 해결하기 위해 residual connection이라는 highway network를 제안하여 이문제를 어느정도 해결하였다. ResNet이 좋은 성능을 보이자, front layer에 존재하는 low level feature들을 어떻게 잘 보존하면서 rare layer까지 전달하는 것이 중요하다는 것이 지금까지의 정론이다.
DenseNet은 dense connection이라는 개념을 제안하여 이 점을 극대화하였다. 그러면서 layer의 filter 수를 매우 줄여 narrow하게 만들었다. Model complexity를 channel 수를 늘려서가 아닌, connection의 복잡성으로 대체하면서 필요한 parameter수를 줄인 것이다. 그 결과, ResNet보다 parameter가 더 적으면서 성능이 좋은 performance를 보인다.
Related Work
Image classification에 대한 deeplearning research들은 오랫동안 연구되어왔고 잘 나와 있으니 생략.
DenseNets
Dense connectivity
DenseNet의 기본 구성요소인 Denselayer는 Batch Normalization, ReLU, Convolution layer로 구성된다. 이런 composite function을 $H_l (\cdot)$ 이라 했을때, output은 다음과 같다.
$x_l = H_l ([x_0, x_1, ... , x_{l-1}])$
[ , ] 은 concatenate 함수이다.
DenseBlock
DenseBlock은 dense connection이 이루어지는 단위이며, 이 block 안에서만 dense connection이 이루어진다. Denselayer은 일정한 크기의 channel k (growth rate)를 출력하기 때문에, 각 layer가 지날 때마다 k channel씩 중첩된다. 즉, Block의 input이 $k_0$ channel이라 하면 $l$번째 layer의 channel은 $k_0 + k(l-1)$이다.
Bottleneck & Compression
feature channel이 k만큼 계속 중첩된다면, 뒤의 layer에는 매우 큰 k를 가져 computation efficiency를 약화시킬 것이다. 이를 해결하기 위해, Denselayer에는 Bottleneck layer가 있다. 1x1 conv로 channel 수를 일정하게 해주는 역할을 한다. (output channel size를 k로 고정하는 역할) 그 다음으로, DenseBlock 간에 Transition layer를 두어 feature map size를 전체적으로 줄인다. (1x1 conv, pooling layer로 구성)
Experiments
DenseNet은 CIFAR, SVHN, ImageNet dataset에 대해 적은 parameter에 불구하고 높은 classification accuracy를 보인다.
CIFAR, SVHN dataset
ImageNet dataset
Discussion
Model compactness
위의 실험결과에서 볼 수 있듯이 DenseNet은 다른 네트워크에 비해 작은 parameter로 좋은 성능을 보임을 알 수 있다. 이는 parameter efficiency가 크다는 의미이다. 이는 DenseNet의 channel이 narrow하기 때문이다. (ResNet은 256정도인데 비해, DenseNet의 growth rate은 12 정도)
Implicit Deep Supervision
DenseNet은 낮은 레벨 layer에게 효과적으로 supervise한다. 앞의 layer에게 gradient를 효과적으로 전달하는 것이 성능을 높이는 주된 방법임은 많이 알려져있다. DenseNet은 구조상 low lever layer에게 직접 supervise한다.
Stochastic vs. Deterministic connection
DenseNet이전까지 연구에서 deep supervision과 depth regularization을 위해 random하게 layer를 drop하는 방법이 몇개 있다. 이는 stochastic connection으로 확률에 따라 connection이 저해진다. 하지만 DenseNet은 그럴 필요없이 dense connection을 통해 해결하였다. Deep supervision뿐만 아니라 많은 connection으로 depth가 짧아지는 효과도 누릴 수 있기 때문에 어느 정도의 regularization효과를 갖는다.
Feature Reuse
DenseNet은 많아진 connection만큼 feature reuse도 강화한다. 아래 그림은 source layer와 target layer의 average absolute filter weight를 의미한다.
여기서 알 수 있는 점은 다음과 같다.
꽤 많은 connection이 block 내에서 이루어지고 있다. 몇개의 connection은 강하게 유지되어 있다. 또한, transition layer또한 weight가 다양한 것으로 보아 block 간에도 강한 연결이 이루어짐을 볼 수 있따. 하지만 DenseBlock 2,3의 경우, 즉, 뒷쪽으로 갈수록 transition layer에는 redunant feature가 많음을 볼 수 있다.
Conclusion
DenseNet은 Dense connection이라는 매우 간단한 개념만으로 네트워크 성능 및 parameter efficiency를 향상시켰다. 그리고 low-level feature를 robust하게 보존하기 때문에 앞으로 다양한 computer vision task에 활용될 가능성이 있다.
'Deep Learning > Efficient Network' 카테고리의 다른 글
Condensenet: An efficient densenet using learned group convolutions (0) | 2021.02.25 |
---|