3. / 20
깊어지는 네트워크
• 깊이 = 성능
– LeNet5 5층
– VGG19 19 층
– ResNet 100~1000
• 깊은 네트워크의 문제
– 훈련이 어려움
이 논문에서 제안하는 방법
• Dense connection by concatenation
• Feature map 의 깊이 늘리기
3
Introduction
4. / 20
Unit 구조
• Feature map의 깊이가 계속 깊
어지는 구조
4
DenseNets
참고 : Res unit
5. / 20
A Deep DenseNet
• DenseNet의 한 예
• 분류기
5
DenseNets
Transition Layer(전달층)
6. / 20
세부사항
• 기본 구조
– k = growth rate
매번 추가되는
깊이
• Bottleneck
– Feature 압축 후
convolution
– 연산량 감소
• 참고 : ResBlock
6
DenseNets
BN
Concat
Conv 3x3 d:k
ReLU
BN
Concat
Conv 1x1 d:4k
ReLU
BN
Conv 3x3 d:k
ReLU
BN
Element-wise Sum
Conv 3x3
ReLU
BN
Conv 3x3
ReLU
7. / 20
세부사항
• 압축
– 전달층에서 depth 압축
– 전달층 지날 때 𝜃 로 depth 축소
– 실험에서 𝜃 = 0.5
– 절반으로 감소
– 1x1 convolution 사용
– 연산량 감소
• DenseNet-BC
– Bottleneck + 압축
7
DenseNets
9. / 20
ImageNet Dataset
• ResNet과 비교
– parameters의 크기(네트워크 크기) 대비 성능 우수
– #flops(연산량 ∝ 1/속도) 대비 성능 우수
• 즉 네트워크의 학습이 더 쉽다.
9
Experiments
10. / 20
Model Compactness
• Feature reuse = 같은 feature를 재학습 할 필요 없음
• 같은 성능 일 때 모델 크기가 작음
Implicit Deep Supervision
• 암시적인 Supervision
– Supervision = 매 층마다 loss를 계산하는 구조
10
Discussion
11. / 20
Feature Reuse
• 넓은 범위로부터 데이터가 생성
– 초기 Feature를 남겨두는 것이
유용함
• Dense Block 2, 3에서는 일관
적으로 안 쓰는 데이터가 존재
– Bottelneck, 압축의 근거
• 마지막(DenseBlock3의 우측)
에서 가까운 층의 데이터를 집
중적으로 사용함
– 데이터 추상화
11
Discussion
보는 법 :
가로축(l) l번째 생성된 Feature
세로축(s) s번째 생성된 Feature
붉은색 : 관련된 Feature간
Conv. 가중치 절대값이 1
파란색 : Conv. 가중치 절대값이 0
12. / 20
DenseNets의 특징 장단점(1)
• 저자의 관점
– Feature map은 한 단계의 상태를 저장한다고 가정
• 이유
– (X) Network는 하나의 덩어리
– (O) Network는 convolution층의 연합체
– 따라서 Feature map은 각 층의 상태를 저장, 그러므로 이전 단계의 결과
를 저장하는 것이 유용함
• 장점
– 기울기 소실에 대한 해결책
– Skip connection 의 한 종류
– 네트워크의 크기가 작아짐
– 암시적 Supervision
– Supervision : 매 층마다 loss를 계산하는 네트워크 형태
12
주석
13. / 20
DenseNets의 특징 장단점(2)
• 단점
– 깊어질 수록 depth가 늘어남 -> 연산량 증가
– Depth압축으로 해결 가능
13
주석
14. / 20
Feature Reuse
• 일반적으로 convolution 층은 통과경로가 존재
• Feature reuse로 통과경로를
학습할 필요가 없음
14
주석