DenseNet(Densely Connected Convolutional Network)은 이미지 인식에 쓰이는 신경망 구조로, 각 층을 피드포워드 방식으로 다른 모든 층과 연결한다. L개의 연결을 가진 기존 합성곱 신경망과 달리, DenseNet은 L(L+1)/2개의 직접 연결을 갖는다. 각 층에서는 이전 모든 층의 특성 맵이 입력으로 사용되며, 해당 층의 특성 맵은 이후 모든 층의 입력으로 사용된다. 이러한 밀집 연결 패턴은 2016년 Gao Huang, Zhuang Liu, Laurens van der Maaten, 그리고 Kilian Q. Weinberger의 논문에서 소개되었으며, 2017년 IEEE 컴퓨터 비전 및 패턴 인식 학회(CVPR)에서 발표되었다.
이 구조는 심층 신경망에서의 기울기 소실 문제를 해결하기 위해 설계되었다. 초기 층에서 후기 층 및 손실 함수까지의 짧은 경로를 제공함으로써, DenseNet은 훈련 중 기울기의 흐름을 원활하게 한다. 또한 각 층이 이전 모든 층의 집합적 지식을 받으므로 특성 재사용을 장려하여 더 간결한 모델을 만든다. DenseNet은 ImageNet와 CIFAR 벤치마크에서 주목할 만한 성과를 거두었으며, 잔차 연결에 기반한 딥 러닝 모델과 같은 구조에 비해 종종 더 적은 매개변수를 요구한다.
밀집 연결 및 성장률
DenseNet에서 l번째 층은 이전 모든 층의 특성 맵인 x_0, x_1, ..., x_{l-1}을 입력으로 받는다. l번째 층의 출력은 x_l = H_l([x_0, x_1, ..., x_{l-1}])로 정의되며, 여기서 [x_0, x_1, ..., x_{l-1}]은 특성 맵의 연결을 의미한다. 함수 H_l은 배치 정규화, 정류 선형 유닛(ReLU) 활성화, 그리고 3x3 합성곱을 포함하는 복합 연산이다. 이 합산이 아닌 연결은 가산 건너뛰기 연결을 사용하는 잔차 신경망과 DenseNet을 구별짓는다.
각 층은 성장률 k로 표기되는 고정된 수의 특성 맵을 추가한다. 각 H_l이 k개의 특성 맵을 생성하면, l번째 층은 k_0 + k*(l-1)개의 입력 특성 맵을 가지며, 여기서 k_0는 입력 영상의 채널 수이다. 일반적인 성장률은 12, 24, 그리고 32이다. 성장률이 작을수록 좁은 네트워크가 되며, 큰 값은 용량을 증가시킨다. 밀집 연결은 깊이에 따라 특성 맵의 총 수가 제곱으로 증가하지만, 병목층과 압축을 통해 모델 크기를 조절한다.
병목 및 압축 층
계산 효율을 높이기 위해 DenseNet은 DenseNet-B와 같은 구조에서 각 H_l에 병목 층을 포함한다. 병목 층은 특성 맵 수를 4k로 줄이는 배치 정규화, ReLU, 1x1 합성곱, 그리고 이어지는 3x3 합성곱으로 구성된다. 이 설계는 3x3 합성곱으로 입력 채널 수를 줄여 매개변수를 감소시키고 연산 비용을 낮춘다. 예를 들어, DenseNet-BC에서 병목은 압축과 결합된다.
theta 매개변수(값이 1 이하인)로 표시되는 압축은 변환 층에서 적용된다. 밀집 블록 사이에 있는 번째는 배치 정규화, 1x1 합성곱, 그리고 2x2 평균 풀링 연산으로 구성된다. 1x1 합성곱은 theta 요소로 특성 맵 수를 줄인다. theta가 1보다 작으면 네트워크를 DenseNet-C라 한다. 병목과 압축의 조합인 DenseNet-BC는 특히 효과적인 것으로 입증되었으며, 다른 구조보다 적은 매개변수로 높은 정확도를 달성했다.
밀집 블록 및 변환 층
네트워크는 밀집 블록으로 구성되어 있으며, 각 블록 내에서 밀집 연결이 적용된다. 블록 사이 변환 층은 특성 맵 크기를 제어한다. ImageNet에 대한 전형적인 DenseNet 구조인 DenseNet-121은 각각 6, 12, 24, 그리고 16개의 층을 가진 네 블록으로 이루어져 있으며, 성장률은 32이다. 첫 번째 밀집 블록 이전의 첫 번째 합성곱 층은 64개의 채널을 갖는다. 마지막 밀집 블록 이후에는 전역 평균 풀링 층과 소프트맥스 분류기가 출력을 생성한다. 블록 사이 변환 층은 특성 맵 수를 줄이기 위해 압축을 사용하며, 이는 모델 메모리 사용량을 줄이는 데 도움이 된다.
훈련 및 성능
DenseNet 모델은 모멘텀과 가중 감쇠, 그리고 워밍업과 감쇠를 포함한 학습률 일정을 사용한 확률적 경사 하강법으로 훈련한다. 무작위 잘라내기, 좌우 뒤집기, 그리고 정규화와 같은 데이터 증대 기술이 일반적으로 사용된다. ILSVRC 2012 데이터셋에서 DenseNet-201은 상위-1 오류율 22.15%와 상위-5 오류율 6.20%를 기록하여 당시 최첨단 결과와 경쟁력이 있었다. CIFAR-10과 CIFAR-100에서 성장률 12의 DenseNet-BC는 각각을 3.46%와 17.18%으로 오류율을 달성했으며, 경향 잔차 신경망 변종보다 우수한 성능을 보이며 더 적은 매개변수를 사용했다.
밀집 연결은 각 층이 손실 함수로부터 기울기에 직접 접근할 수 있으므로 암시적 압축 관리를 제공한다. 이 특성은 보조 분류기의 필요성을 줄인다. DenseNet은 항공 분할, 객체 검출, 그리고 의료 이미지 분석을 포함한 다양한 컴퓨터 비전 작업에서 널리 채택되었다. 그 설계 원리는 이후의 구조에 영향을 주었으며, 특히 인공 지능 세션과 이미지 이해 시스템에 사용되는 구조에 영향을 끼쳤다.
영향 및 변종
DenseNet의 성공은 여러 변종과 확장을 이끌었다. 예를 들어, 밀집 연결 개념은 잔차와 밀집 연결을 병합하는 Dual Path Networks 같은 모델에서 다른 메커니즘과 결합되었다. 기계 학습 리서에서 DenseNet은 많은 활용에서 특성 추출의 백본으로 사용되었다. 매개변수 효율적 사용은 자원이 제한된 장치에의 배포에 적합하며, 특히 삼성전자와 같은 모바일 하드웨어 제조사의 장치가 포함된다. 또한 이 구조는 폭, 깊이, 그리고 카르드의 영향을 탐구한 신경망 설계 연구의 기준 상태로도 사용되었다. 트랜스포머 같은 최신 구조가 일부 영역에서 우세해졌지만, DenseNet은 합성곱 신경망 설계에서 여전히 근간 모델로 남아 있다.