논문링크 : Densely Connected Convolutional Networks

CNN model들이 굉장히 깊어지면서 새로운 문제 발생 -> Vanishing gradient

위 문제를 해결하기 위해 (DenseNet에 앞서) ResNet, Highway Networks, Fractal Nets 등이 제안되었음. 해당 모델들은 앞부분에서 뒷부분 layer로 short path를 생성했음. 본 논문의 저자들은 이러한 insight를 통해 모든 layer들을 연결하는 새로운 모델 구조를 제안. (핵심아이디어)

목표 : dense connection과 bottleneck layers를 적용하면서, 매우 깊은 네트워크를 학습

<이미지 출처 : https://hoya012.github.io/blog/DenseNet-Tutorial-1>

특징

  • ResNet과는 달리 feature들을 Summation 하지 않고, 이들을 Concatenating. 
  • layer들은 loss function 및 input signal로부터 기울기에 직접적으로 접근할 수 있기 때문에 네트워크의 구조가 깊더라도 학습이 용이함.
  • dense connection은 regularizing 효과가 있어 오버 피팅을 줄여준다고 함.
  • 각 feature map끼리 dense하게 연결된 구조 -> 자칫 feature map의 channel 개수가 많은 경우, channel-wise로 concat이 되면서 channel이 급증할 수 있음 -> 각 layer의 feature map의 channel 개수를 굉장히 작은 값을 사용, 이 때 각 layer의 feature map의 channel 개수를 growth rate(k)이라고 함. 위의 <Figure 1>에서 k(growth rate) = 4 인 경우를 보여주고 있음 (참고로, k는 Hyper-parameter)
  • composite function은 (batch normalization - ReLU - convolution) 순으로 구성된 non-linear transformation.
    보통의 CNN과 다르게 ReLU(activation function) 이후 convolution 연산을 수행하는데, 이를 pre-activation구조라고 함. pre-activation은 말그대로 CNN연산 전에 activation function을 수행하는 것을 말하는데, 이 방법은 최적화와 오버피팅 해소에 효과가 있다고 함.
  • Concatenation 연산은 feature map의 크기가 달라질 경우 사용이 불가능. -> down-sampling layer를 이용하여 feature map의 크기를 바꾸는데, 이를 위해 네트워크를 여러 개의 dense block으로 나누고, 그 사이에 transition layer를 둔다.
    transition layer는 convolution 연산 및 pooling을 수행하는데, 이는 BN layer → 1 x 1 Conv →2 x 2 Average pooling layer로 구성됨.

 

 

 

Contribution & Summation

  • 기존의 convolution network에 비해 feature map에 대한 (장황한) 학습이 불필요하다. 왜냐하면 이전의 모든 layer로부터 정보를 받기 때문에, feature map이 더 견고해지기 때문이다. 따라서 더 적은 파라미터로도 학습이 가능하다.
  • 각각의 layer들은 loss function 및 input signal로부터 기울기에 직접적으로 접근할 수 있기 때문에 네트워크의 구조가 깊더라도 학습이 더 용이하다.
  • 즉, DenseNet은 학습하기 쉬우면서도, 연산량 측면에서 (과거 모델에 비해) 더 효율적인 모델

 

<Reference>

DenseNet 논문 <Densely Connected Convolutional Networks>

https://velog.io/@skhim520/DenseNet-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0

https://hoya012.github.io/blog/DenseNet-Tutorial-1/

https://phil-baek.tistory.com/entry/DenseNet-Densely-Connected-Convolutional-Networks

반응형

'머신러닝_딥러닝 > Object Detection' 카테고리의 다른 글

(논문리뷰) Yolo v1 (2016)  (0) 2021.09.13
(논문리뷰) Faster R-CNN  (0) 2021.09.13
(논문리뷰) Fast R-CNN  (0) 2021.09.13
(논문리뷰) R-CNN  (0) 2021.09.13
(논문리뷰) SENet  (0) 2021.01.15

+ Recent posts