본문 바로가기
Computer Vision

DenseNet (2017) 논문 리뷰

by 아르카눔 2025. 4. 7.

DenseNet의 논문의 제목은 Densely Connected Convolutional Networks이다. (링크)

 

저자는 Gao Huang, Zhuang Liu, Laurens van der Maaten, Kilian Q. Weinberger다. 

 

DenseNet은 object detection에 사용되는 알고리즘이다. 

 

Abstract

본 논문에서는 DenseNet을 소개한다. 모든 레이어들을 feed-forward 방식으로 모두 연결한다. L개의 레이어가 있다면 총 L(L+1) / 2 개의 직접적인 연결이 존재하게 된다. 각각의 레이어에서 나온 feature map을 다음 레이어에 대한 input으로 사용한다.

위 방법을 통해서 다음 문제들이 완화되었다. vanishing-gradient 문제, feature propogation의 강화, feature의 재사용이다. 그리고 파라미터 수의 감소를 달성했다. CIFAR-10과 CIFAR-100, SVHN 그리고 ImageNet의 object detection 벤치마크들에 대해서 SOTA 성능을 달성하였다.

 

 

 

 

3. DenseNets

ResNets

 

$l$ th layer 그리고 $L$개의 레이어가 있다. $l$ th layer의 output은 $x_l$로 표기한다.

$H_l( \cdot)$은 Batch Normalization (BN), ReLU, Pooling, Convolution 의 함수로 이루어진 $l$ th layer의 구성요소들이다. 

$l$ th layer의 output은 $l$+1 th layer의 input이 된다.  

 

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

 

위 방식으로 residual connection을 ResNet에서는 수행한다.

 

Dense Connectivity

 

DenseNet에서는 Figure 1과 같은 방식으로 레이어들을 구성한다.

$l$ th layer에서는 직전의 모든 레이어들의 feature map을 활용한다.

따라서 $l$ th layer의 input은 아래와 같이 이전의 모든 layers의 output이다. 

 

$x_l$ = $H_l( [x_{0}, x_{1}, ..., x_{l-1}]) $ 

 

$[x_{0}, x_{1}, ..., x_{l-1}]$ 표시는 concatenation을 의미한다. 

 

Composite functions

$ H_l $는 BN. ReLU, 3 x 3 Conv로 구성된다.

 

 

Figure 2에서와 같이 네트워크 안에 있는 여러개의 레이어들을 하나의 dense block으로 묶는다.

그리고 dense blocks 사이의 레이어들을 transition layers라고 명명하며,

BN와 1 x 1 Conv, 그리고 2 x 2 average pooling으로 구성한다.

 

 

DenseNet은 narrow layers를 갖는다. $k$ = 12다. 저자들은 $k$를 growth rate of the network라고 명명한다. 

이는 Dense Block 내부의 layers의 stack의 숫자다. 즉 하나의 블록 안에 conv가 몇개있는지를 나타낸다.

Table 1에서 Dense Block (1)의 [ convs ] x 6 에서 6이 바로 $k$다.

 

저자들은 다양한 값을 갖는 $L$과 $k$를 실험했다.

 

4. Experiments

SGD를 사용하였으며 CIFAR에 대해서는 batch size 64, epochs는 300이고 SVHN에서는 batch size 64, epochs를 40으로 설정했다. Initial learning rate는 0.1로 설정하였으며 학습 데이터의 50%를 학습했을 때 1/10을 취하고, 학습 데이터의 75%를 학습했을 때는 1/10을 취한 위 숫자에 다시 1/10을 취한다. 

ImageNet을 학습할 때는 batch size가 256이고 90 epochs를 학습하였으며 learning rate는 처음에는 0.1, epoch가 30일 때 10%로 lr을 낮추고, epoch가 60일 때 변환된 lr에 다시 0.1을 곱한다. Weight decay는 $10^{-4}$를 사용했다.

 

 

 

 

 

 

 

Table 2, 3 그리고 Figure 3를 보면 DenseNet이 더 좋은 성능을 보임을 알 수 있다.

 

 

'Computer Vision' 카테고리의 다른 글

DeepPose (2014) 논문 리뷰  (0) 2025.04.07
FaceNet (2015) 논문 리뷰  (0) 2025.04.07
SSD (2016) 논문 리뷰  (0) 2025.04.07
CAM (2015) 논문 리뷰  (0) 2025.04.07
YOLO v1 (2015) 논문 리뷰  (0) 2025.04.06