[17′ CVPR] Densely Connected Convolutional Networks (DenseNet)

This entry is part 11 of 22 in the series Vision Model

내용 요약

DenseNet 이전 방식의 문제점에 대해 살펴봅니다. 이어서 DenseNet 의 제안 방법을 살펴봅니다. 마지막으로 실험 결과를 통해 제안 방법의 효과를 살펴봅니다.

1. 들어가며

이번 글에서는 2017년 CVPR에 발표된 Densely Connected Convolutional Networks 논문을 리뷰합니다. 이 논문은 DenseNet 이라고 불리며, 이번 글에서도 DenseNet 이라고 지칭하겠습니다.

2. 기존 방식의 문제점

먼저 ResNet의 핵심 철학인 Residual Block을 다시 한번 살펴보겠습니다.

그림1. Residual Block
그림1. Residual Block

정보 x가 연산 f1과 f2를 건너뛰고 Identity Mapping 이라는 지름길을 타고 y2로 바로 연결되는 모습을 볼 수 있습니다. 저자들은 여기서 두 가지 문제점을 제기합니다.

첫 번째 문제점은 Identity Mapping 은 Information Flow 를 위해 적절하지 않다는 점입니다. Identity Mapping 은 Feature Map 간의 Element Wise Summation 이므로 다음 그림과 같이 표현할 수 있습니다.

그림2. Identity Mapping
그림2. Identity Mapping

각각의 직육면체를 Feature Map이라고 가정하겠습니다. 빨간색 Feature Map과 파란색 Feature Map을 Identity Mapping으로 연결해주니 초록색 Feature Map이 되었습니다. 초록색 Feature Map은 빨간색도 아니고 파란색도 아니므로 정보가 섞여버린 상황이라고 할 수 있습니다. 지름길인 줄 알고 지나갔는데 알고 보니 흙탕물이 가득한 길이었던 셈이죠.

두 번째 문제점은 ‘지름길이 딸랑 하나여야만 하는가’에 대한 의문입니다. ResNet의 전체 구조는 다음과 같이 표현할 수 있습니다.

그림3. ResNet 구조
그림3. ResNet 구조

이 상황을 이렇게 비유해서 생각해볼 수 있을 것 같습니다. 서울에서 부산까지 가야 합니다. ResNet 이전에는 모든 지역 도시를 국도를 거쳐 이동해야 해서 굉장히 오래 걸렸습니다. 그런데 ResNet 이라는 애가 서울, 대전, 대구 등 주요 거점 도시들 간의 고속도로를 이어주자고 제안한 겁니다. 이제는 서울에서 부산까지 가기 위해서 경로상의 모든 도시를 거치지 않고도 고속도로를 타고 이동할 수 있게 된 거죠.

그랬더니 이번 저자들은 이렇게 얘기하는 겁니다. ‘이왕 고속도로 뚫는 거, 서울에서 부산까지, 대전에서 부산까지, 대구에서 부산까지의 고속도로를 각각 다 뚫어주는 게 제일 빠르지 않겠니?’

3. 제안 방법

이러한 문제를 해결하기 위한 저자들의 제안 방법을 살펴보겠습니다.

3-1.  정보가 살아서 지나갈 수 있는 지름길을 만들어주자

위에서 설명한 것처럼 Identity Mapping 방식의 지름길은 흙탕물로 덮인 길과 같다고 비유할 수 있습니다. Element Wise Summation을 하는 과정에서 정보가 섞여버리기 때문이죠. 이에 저자들은 정보가 그대로 살아서 통과할 수 있는 지름길을 뚫어주자고 제안합니다.

그림4. Concatenation 방식
그림4. Concatenation 방식

위의 그림은 정보를 합치는 두 가지 방식에 대한 모식도를 나타냅니다.

첫 번째는 Identity Mapping 방식입니다.
두 번째는 저자들이 제안하는 Concatenation 방식입니다. 입력으로 들어간 빨간색과 파란색 정보가 그대로 살아서 붙어있는 모습을 볼 수 있습니다.

3-2. 최대한 많은 지름길을 뚫어주자

기존 방식의 문제점에서 설명했던 것처럼 저자들은 지름길이 효과가 있으니 최대한 많이 뚫어주자는 제안을 합니다. ResNet 방식의 지름길과 비교해보면 다음과 같습니다.

그림5. DenseNet 방식
그림5. DenseNet 방식

ResNet은 주요 거점끼리만 지름길을 뚫어주었는데, DenseNet은 모든 거점들을 지름길로 연결해주는 모습입니다.

3-3. 전체 구조

DesNet의 전체 구조는 다음과 같습니다.

그림6. DenseNet 구조
그림6. DenseNet 구조

크게 보면 Dense Block과 Transition Layer를 1열로 쌓는 형태로 구성되어 있습니다. 이때 Dense Block은 위에서 설명한 지름길로 모든 거점을 연결한 형태를 의미합니다. 이때 지름길은 Concatenation 으로 연결하게 되는데요, Concatenation 연산을 수행하기 위해서는 (Width, Height)의 사이즈가 동일해야 합니다. 그래야 직육면체 블록 두 개를 위로 쌓으니까요. 그럼 Dense Block 중간에는 (Width, Height)가 달라지게 되는 Pooling 연산을 수행할 수 없게 됩니다. 이런 이유로 저자들은 Convoltuion과 Pooling 연산을 Dense Block들 사이에 구성해주었는데요. 이를 Transition Layer라고 합니다.

4. 효과

다음은 이렇게 제안한 방법의 효과에 대해 알아보겠습니다.

4-1. ImageNet 성능

DenseNet은 ResNet의 문제점을 개선한 모델이므로, ImageNet 데이터셋에 대한 성능을 ResNet 성능과 비교해보겠습니다.

그림7. ImageNet 실험 결과
그림7. ImageNet 실험 결과

위의 왼쪽 그림을 보면 동등한 파라미터 개수를 가질 때 DenseNet의 성능이 ResNet보다 좋은 모습을 볼 수 있습니다. 오른쪽 그림을 보면 동등한 계산량 일 때 DenseNet의 성능이 ResNet보다 좋은 모습을 볼 수 있습니다.

Series Navigation<< [17′ ICLR] FRACTALNET: ULTRA-DEEP NEURAL NETWORKS WITHOUT RESIDUALS[17′ CVPR] Deep Pyramidal Residual Networks (PyramidNet) >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top