(DenseNet) Densely Connected Convolutional Networks

sota
classification
convolutional
imagenet
cvpr
cvpr2017

(Curtis Kim) #1

Resnet 이후의 여러 논문에서 CNN은 인풋과 각 레이어가 서로 가까울 수록 깊고 더 정확하게 만들 수 있음을 보였습니다. 이 논문은 그런 아이디어의 연장선상에서 DenseNet이라는 아키텍쳐를 소개하고, 이를 통해 좋은 성능을 레포트하였습니다.

  • 모든 레이어는 서로 연결되는 형태. 단 아래의 레이어에서 위 레이어 방향으로만 연결.
  • L(L+1) / 2 만큼의 새로운 커넥션이 생기는 셈
  • image
  • Resnet에 비해 매우 Narrow.
  • 대신 이전 feature map을 concatenate 함으로써 정보를 충분히 유지하고 모든 레이어의 정보를 이용해 최종 output을 만드는 형태

DenseNet

DenseNet Block

위 그림처럼 DenseNet은 일부 Layer를 묶어 하나의 Block으로 취급하고 하나의 Block 내에서는 Dense Connection을 Layer간에 형성합니다. 즉 DenseBlock1은 같은 Feature map size를 갖는 여러 Layer가 존재하고 각 Layer는 아래 Layer로부터 Feature map을 추가받는 형태입니다.

Resnet이 아래와 같은 형태로 Identity Function을 추가한 방식이라면,

x_l = H_l(x_{l-1})+x_{l-1}

DenseNet은 아래와 같은 형태로 표현할 수 있습니다.

x_l = H_l([x_0, x_1, ..., x_{l-1}])

[x_0, x_1, ..., x_{l-1}] 로 표현된 부분은 l번째 Layer 이전의 Feature map을 Concatenation한 것으로 보면 되며 H_l() 은 Batch Normalization + Relu + 3x3 Conv으로 표현된 함수입니다.

따라서 각 레이어에서 k개의 feature map을 만든다고 하면 l 번째 레이어에서는 k_0 + k \times (l-1) 만큼의 input feature map을 갖게 됩니다. 이것이 기존 네트워크와 DenseNet이 차이를 만들 수 있는 부분인데, 이 덕택에 DenseNet은 매우 Narrow한 형태로 설계할 수 있었고, 대략 k=12 수준입니다.

또 하나의 Dense Block이 끝나면 Convolution, Pooling을 통해 일종의 down-sampling 과정을 거치도록 설계되어 있습니다.

Bottleneck Layers & Compression

3x3 Conv 이전에 1x1 Conv를 추가해 Feature map 수를 줄이는 형태로 디자인을 할 수 있고 이는 Resnet, Inception 등에서 이미 Channel Reduction의 방식으로 소개되었던 것입니다. 이를 그대로 차용해

BN - ReLU - 1x1Conv - BN - ReLU - 3x3Conv

형태로 Bottleneck design 역시 제안합니다.

또 Output Channel 수를 \theta < 1 를 통해 일정 비율로 줄이는 방식으로 Compression을 시도하였다고 합니다.

Experiments

Performance

보시다시피 Resnet 등에 비해서도 월등히 높은 성능을 보여주는 것을 확인할 수 있습니다.

Imagenet에서 Top-5 기준 6% 수준의 Error 를 single crop에서 보여주는 성능입니다. 또 오른쪽 그래프에서 볼 수 있다시피 레스넷에 비해 비슷한 파라미터 수에서 더 좋은 성능을 보여줍니다.

Discussion

  • Model Compactness

    • 모델이 더 작음. Narrow한 Feature.
    • Bottleneck Block과 Compression Parameter를 도입해 더 작게 만들 수 있음. 작게 만들어도 여전히 성능에서 크게 떨어지지는 않음.
    • DenseNet-BC (DenseNet + Bottleneck + Compression) 은 Resnet 대비하여 1/3 수준의 파라미터.
  • Implicit Deep Supervision

    • 모든 레이어가 Output Classification과 직접 연관되므로 중간의 레이어들도 Discriminative 한 feature가 되도록 학습되는 효과가 있을 것임.
    • 그럼에도 Loss 함수나 네트워크 디자인, 그라디언트 계산에서 복잡하지 않음.
  • Stochastic vs deterministic connection

  • Feature Reuse

    • image
    • 같은 block 내에서 아래 레이어의 feature를 재사용하는 것을 확인 가능.
    • input feature는 상대적으로 redundant한 feature로 해석됨.
    • output에 가까운 쪽에서는 상대적으로 high-level feature가 많아 큰 영향을 주는 것으로 보이나 전반적으로 모든 레이어의 feature를 사용하는 것을 볼 수 있음.

Deep Learning: Practice and Trends
Pelee: A Real-Time Object Detection System on Mobile Devices