DenseNet

**https://arxiv.org/pdf/1608.06993.pdf**

Densely Connected Convolutional Networks

CNN에 대한 많은 연구결과로부터 layer간 shortcut connection을 구성하면 convolution network가 상당히 깊어질 수 있고, 더 accuracy가 올라가며 학습시키는 데 매우 효율적이라는 것이 입증되었다.

ResNet의 shortcut connection에서 영감을 받아 이를 확장하여 cnn 구조를 바꾸는 시도를 함.

DenseNet은 ResNet과 많이 닮았다. 네트워크의 성능을 올리기 위한 접근방식이 비슷하다.

하지만 단순한 Residual Block에서는 계산량의 문제가 발생하게 된다. Residual Block을 계속 쌓게 되다 보니 파라미터가 계속 누적되어 계산량이 증폭되는 문제가 발생하게 된다.

따라서 Residual Block + Bottleneck을 사용하게 되었다. Bottleneck구조는 이전의 GoogleNet에서 차용한 것이다.

DenseNet은 이전의 feature map들이 모든 후속 layer들에 직접적으로 연결된다.

ResNet과 DensNet의 공통점

Skip Connection을 이용해 정보를 더 깊은 layer까지 전달할 수 있는 path를  만들어 학습이 잘 되도록 하였다.

기존의 ResNet은 바로 그 다음 layer에만 connection을 연결하기 때문에 L개의 layer가 있다면 L개의 connection만 가질 수 있었다. element-wise addition

DenseNet에서는 layer간 정보 흐름을 최대화하기 위해 모든 layer들이 서로 연결되게끔 구성했다. 이전 layer들로부터 추가적인 정보를 얻고, 그들 고유의 feature map을 그 다음의 모든 layer로 전달하는 형태이다. 따라서 L(L+1)/2개의 connection을 가질 수 있다. channel-wise concatenation

5-layer Dense Block의 모습. growth rate는 4

Growth rate