DenseNet(Dense Convolutional Network)은 레이어 간의 연결 방식을 혁신적으로 바꿔, 각 레이어가 이전 모든 레이어의 출력을 입력으로 사용하는 ‘전결합(Dense Connectivity)’ 구조를 가진 합성곱 신경망(CNN)입니다. 2017년 Huang et al.이 발표한 DenseNet은 파라미터 수를 줄이면서도 뛰어난 성능과 학습 효율을 보여주며, ResNet 이후의 대표적 CNN 진화 구조로 평가받고 있습니다.
1. 개념 및 정의
항목
설명
정의
각 레이어가 앞선 모든 레이어의 특징 맵을 입력으로 받아 연산하는 CNN 아키텍처
구조 특징
Dense Block, Transition Layer, Growth Rate 등의 개념 도입
목표
정보 손실 최소화, 특징 재사용 극대화, 기울기 소실 문제 개선
2. DenseNet의 핵심 구조
구성 요소
설명
Dense Block
각 레이어가 이전 모든 출력과 연결되는 핵심 블록 (concat 기반)
Transition Layer
feature map의 수를 줄이고, downsampling을 수행하는 블록 (1x1 Conv + Pooling)
Growth Rate (k)
Dense Block에서 새로 생성되는 채널 수 (모델 복잡도 조절 역할)
Bottleneck Layer
연산 최적화를 위한 1x1 Conv 레이어 삽입 (DenseNet-B 구조에 해당)
3. DenseNet 구조 예시
모델
설명
DenseNet-121
Dense Block 4개, 총 121개의 레이어로 구성된 대표 모델
DenseNet-169
더 깊은 구조, 높은 정확도 확보
DenseNet-201 / 264
대규모 이미지 분류용으로 활용되는 깊은 DenseNet 구조
4. DenseNet vs ResNet 비교
항목
ResNet
DenseNet
연결 방식
Residual (add)
Dense (concat)
정보 흐름
일부 이전 레이어
모든 이전 레이어와 직접 연결
파라미터 수
비교적 많음
파라미터 수 적음 (특징 재사용)
연산량
낮음
다소 높음 (concat 연산 증가)
5. 장점 및 효과
항목
설명
기울기 흐름 강화
역전파 시 모든 경로를 통해 기울기가 전달되어 학습 안정화
특징 재사용
기존 레이어의 출력을 모두 활용하여 효율적인 특징 표현 가능
파라미터 절감
불필요한 중복 연산 제거로 모델 크기 감소
전이 학습 성능
다양한 컴퓨터 비전 과제에서 우수한 성능 기록
6. 활용 분야
분야
활용 사례
이미지 분류
CIFAR-10, ImageNet 등 이미지 데이터셋 분류 성능 우수
의료 영상 분석
CT, MRI 등에서 병변 검출 정확도 향상
객체 탐지
백본 네트워크로 활용되어 탐지 성능 개선
얼굴 인식
ResNet 대비 더 정밀한 특징 추출기 기반 모델 구축
7. PyTorch 코드 예시
from torchvision.models import densenet121
model = densenet121(pretrained=True)
model.eval()
torchvision으로 손쉽게 DenseNet-121, 169, 201 등 사용 가능
8. 한계점 및 개선 방향
항목
설명
연산량 증가
모든 레이어 연결로 인해 연산 및 메모리 사용 증가
모델 확장 어려움
concat 구조는 너무 깊어질 경우 구조 관리 복잡
실시간 처리 한계
모바일 환경에서는 경량화된 구조 필요 (→ CondenseNet, MobileNet 등 활용)
결론
DenseNet은 신경망 내부의 정보 전달 방식을 획기적으로 개선해 딥러닝 학습 효율을 크게 높인 CNN 구조입니다. 깊은 네트워크일수록 성능이 저하되는 문제를 정면으로 해결하면서도 파라미터를 줄이는 이 구조는 여전히 다양한 AI 모델의 백본으로 널리 활용되고 있으며, 미래의 CNN 설계에도 큰 영감을 주고 있습니다.