SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Densely Connected Convolutional Networks
HUANG, Gao, et al. Densely connected convolutional networks. In: Proceedings of the IEEE conference on computer vision and pattern recognition.
발표자 : 오유진
Key Point
✓ Network 의 layer 간 information flow 를 보장하기 위해서 모든 layer 를 직접 연결
✓ layer 로 전달되기 전에 summation 을 해서 feature 를 결합하는 것이 아니라 concatenating 을 통해서 feature 결합
✓ Dense connection 에는 정규화 효과가 있어서 training set 이 작아도 overfitting을 줄일 수 있음
[Abstract]
• 각 layer에 대해 모든 preceding layer의 feature map이 input으로 사용되며,
own feature map이 모든 subsequent layer에 대한 input으로 사용
• Vanishing-gradient 문제 완화
• Feature propagation 강화,
• Parameter 수 감소
→Redundant feature maps 를 re-learn 할 필요가 없기 때문에 더 적은 parameter 로 기존의 성능 이상을 낼 수 있음
DenseNet
• 기존의 feed-forward network 는 𝑙 𝑡ℎ
layer 의 output 을 (𝑙 + 1) 𝑡ℎ
layer의 input과 연결 → 𝑋𝑙 = 𝐻𝑙(𝑋𝑙−1)
• ResNet 은 skip-connection 을 추가 → 𝑋𝑙 = 𝐻𝑙 𝑋𝑙−1 + 𝑋𝑙−1
– Gradient 가 later layer 에서 earlier layer 로 identity function 이 직접 흐름 → vanishing-gradient 일부 해결
– 하지만 identity function 과 output 𝐻𝑙이 합에 의해 결합되어 network에서의 information flow를 방해할 수 있음.
• Dense Connectivity 는 layer 간의 information flow를 향상시키기 위해 다른 연결 패턴을 제안
– 모든 layer 에서 모든 subsequent layer 로 직접 연결
– 𝑙 𝑡ℎ
번째 layer는 모든 preceding layer의 feature-map을 받음 → 𝑋𝑙 = 𝐻𝑙( 𝑋0, 𝑋1, ⋯ , 𝑋𝑙−1 )
Composition function → Dense block
DenseNet - architecture
• 𝐻𝑙을 3개의 연속작업 composite function 으로 정의. Batch normalization, ReLU, 3*3 convolution
• feature maps의 크기가 바뀌는 것이 𝑋𝑙 = 𝐻𝑙( 𝑋0, 𝑋1, ⋯ , 𝑋𝑙−1 ) 에 사용된 연결 연산에서 실행 불가능
• Down-sampling 을 용이하게 하기 위해 network를 밀도가 높은 여러 개의 dense block으로 나눔
• Layer 사이에서 Convolution 과 pooling을 하는 Transition layer라고 정의
• 실험에서 transition layer는 batch normalization layer 와 1*1 convolutional layer 와 2*2 avaverage pooling layer 로 구성.
Pooling layer
Growth rate
DenseNet - architecture
• 𝐻𝑙이 k개의 feature-map을 생성하면, 다음 layer는 𝑘0 + 𝑘 × (𝑙 − 1)개의 input
feature-map을 가짐
– 𝑘0 는 dense block 첫번째의 input layer 의 feature map 개수
• 한번 기록되면 network 내의 어디서든 접근 가능, 계층별로 layer 복제할 필요 없음.
• 각 layer는 k개의 output feature-map만 생성하지만 일반적으로 더 많은 input이 있음
• 1*1 convolution은 각각의 3*3 convolution 이전에 bottleneck layer로 나타나 input feature-map의 수를 줄임으로써 계산 효율을 향상시킴
Bottleneck layer
• BN → ReLU → 3x3 Conv의 구조에서 BN → ReLU → 1x1 Conv → BN → ReLU → 3x3 Conv의 Bottleneck 구조 적용
• 계산 복잡성을 줄여주는 효과가 있습니다.
Bottleneck layer
Compression
DenseNet - architecture
• 모델의 압축률을 더 향상시키기 위해 transition layer에서 feature-map의 수를 줄임
• Dense block이 m개의 feature-map을 포함한다면, 다음 transition layer가 [θm] output feature-map을 생성
• 여기서 0 < θ ≤ 1은 압축 인자. θ = 1일 때, transition layer를 거친 feature-map의 수는 변하지 않음
• θ < 1 인 DenseNet 을 DenseNet-C 라고 부르고 θ = 0.5로 설정
• θ < 1 인 bottleneck과 transition layer를 모두 사용하는 경우 → DenseNet-BC 모델
Architecture
DenseNet - advantage
Strong gradient flow
• 먼저 모든 feature map 들을 쌓아오기 때문에 layer 사이 사이 최대한 가치 있는 정보가 지나가게 할 수 있음
‒ ResNet 의 경우 network 시작 지점 layer 의 정보가 깊은 망을 거치면서 뒤로 갈수록 희미해지는데, Dens connectivity pattern 을 사용하면
초반 layer 의 정보를 쌓아가며 뒤쪽 layer 까지 효율적으로 전달
‒ 모델의 학습이 쉬워짐
➢ Standard Connectivity
Increasingly complex features
➢ Dense Connectivity
• 기존의 network 보다 parameter 의 수를 많이 줄일 수 있음
– Dense 한 network 연결을 통해 정보의 손실이 별로 없이 효율적으로 전달
– 이는 classifier 에 network 전체의 feature map 을 골고루 입력할 수 있게 해 더 적은 parameter 사용이 가능
• Dense connection 이 regularizing 효과를 가지고 있어서 작은 dataset 에서도 overfitting 을 줄여줌
Implementation details
사용한 DenseNet 의 구조
• ImageNet 에 적용할 때는 dense block 을 4개 사용
• CIFAR-10, SVHN 에는 dense block 을 3개 사용
‒ Dense block 내부에는 같은 수의 layer 가 존재
Classification layer
• 보통은 fully-connected network 사용하
는데, GAP(global average pooling) 사용
• Network 구조가 발전하면서 굳이
parameter 의 수가 증가하는 FC 를 넣어
주지 않기 때문
Implementation details
사용한 DenseNet 의 구조
Implementation details
conv
conv
Pool
conv
Pool
Pool
Linear
dog
Implementation details
conv
conv
Pool
conv
Pool
Pool
Linear
dog
Implementation details
conv
conv
Pool
conv
Pool
Pool
Linear
dog
Implementation details
conv
conv
Pool
conv
Pool
Pool
Linear
dog
DenseNet Experiment
총 3가지 data set 사용해 실험
‒ CIFAR-10, CIFAR-100 (32*32 픽셀 컬러 이미지 train 50000, test 10000)
‒ SVHN (32*32 컬러 숫자 이미지 train 73257 test 26032)
‒ ImageNet (224*224 1000 개 class, train 120만, test 50000)
• K 가 증가하면 parameter 의 수가 많아지고 Bottleneck
Compression 을 사용하면 parameter 가 줄어드는 것 확인 가능
DenseNet Experiment
총 3가지 data set 사용해 실험
‒ CIFAR-10, CIFAR-100 (32*32 픽셀 컬러 이미지 train 50000, test 10000)
‒ SVHN (32*32 컬러 숫자 이미지 train 73257 test 26032)
‒ ImageNet (224*224 1000 개 class, train 120만, test 50000)
• K 가 증가하면 parameter 의 수가 많아지고 Bottleneck
Compression 을 사용하면 parameter 가 줄어드는 것 확인 가능
• SVHN 의 경우 BC 를 사용하지 않은 network 에서 더 좋은 결
과가 나옴
‒ SVHN 이 상대적으로 쉬운 작업이기 때문에 더 deep 한
모델이 학습데이터에 overfitting 되기 때문
DenseNet Experiment
총 3가지 data set 사용해 실험
‒ CIFAR-10, CIFAR-100 (32*32 픽셀 컬러 이미지 train 50000, test 10000)
‒ SVHN (32*32 컬러 숫자 이미지 train 73257 test 26032)
‒ ImageNet (224*224 1000 개 class, train 120만, test 50000)
• K 가 증가하면 parameter 의 수가 많아지고 Bottleneck
Compression 을 사용하면 parameter 가 줄어드는 것 확인 가능
• SVHN 의 경우 BC 를 사용하지 않은 network 에서 더 좋은 결
과가 나옴
‒ SVHN 이 상대적으로 쉬운 작업이기 때문에 더 deep 한
모델이 학습데이터에 overfitting 되기 때문
• ResNet 의 parameter 가 높은 모델과 DenseNet 의 parameter 가
굉장히 작은 모델의 성능이 비슷한 수준을 보임
Discussion
Discussion
• Dense block 내부에서 convolution layer 들의 필터 가중치의 평균
• 픽셀 색깔이 source layer(s) 에서 target layer(𝑙) 로 연결되어 있는 가중치의 L1norm (normalized by number of input feature-map)
• 색이 빨간색일수록 더 높은 가중치
• 같은 block 내에서는 가중치가 잘 흩어져 있음
• Transition layer 에서 나온 가중치도 잘 퍼져 있음
• Classification layer 가 전체 weight 를 가져가기는 하지만 네트워크 마지
막 단에서 생긴 high-level feature 를 더 많이 가져감
Multi-Scale Dense Networks for Resource Efficient Classification
Gao Huang, Danlu Chen, Tsinghua Li, Felix Wu
발표자 : 오유진
Motivation
✓ Anytime classification – test 를 위한 networks prediction 이 점진적으로 update 되면서, output 의 prediction이 언제나 가능하게..
✓ budgeted batch classification – 분류를 위한 계산량 고정시켜 수행
• Test image → ‘easy’ VS. ‘hard
shallow model VS. deep model
• 다양한 resource demand 를 가진 multiple classifier training 해서 test 하기 위함
• Develop CNNs
– 계산을 ‘slice’하고 이러한 ‘slice’를 하나씩 처리
– CPU 시간이 고갈되거나 classification 이 충분히 이뤄지면 평가 중단
• 그래프와 같이 이전의 classifier 가 이후의 classifier의 성능에 부정적인 영향을 줌
Multi-Scale DenseNet - Architecture
• Network 의 마지막 layer 까지 모든 scale 을 유지하는 것은 비효율적
• Network 의 크기를 줄이는 방법 1
– 깊이에 따라 S 블록으로 분할
– 𝑆 − 𝑖 + 1 인 가장 큰 scale의 𝑖 𝑡ℎ
번째 block 만 유지
– Training 과 test 모두 계산량 줄임
• 매 번 scale 이 줄어들고transition layer 를 block 사이에 연결
• Network 의 크기를 줄이는 방법 2
– 가장 큰 scale feature 만 사용하기 때문에 대각선에 위치한 block 에서 classification 하는데 영향을 줌
Key Point
One layer
depth
scale
Key Point

Weitere ähnliche Inhalte

Was ist angesagt?

[신경망기초] 심층신경망개요
[신경망기초] 심층신경망개요[신경망기초] 심층신경망개요
[신경망기초] 심층신경망개요jaypi Ko
 
From maching learning to deep learning
From maching learning to deep learningFrom maching learning to deep learning
From maching learning to deep learningYongdae Kim
 
LSTM 네트워크 이해하기
LSTM 네트워크 이해하기LSTM 네트워크 이해하기
LSTM 네트워크 이해하기Mad Scientists
 
Rnn개념정리
Rnn개념정리Rnn개념정리
Rnn개념정리종현 최
 
Yolo v2 urop 발표자료
Yolo v2 urop 발표자료Yolo v2 urop 발표자료
Yolo v2 urop 발표자료DaeHeeKim31
 
Visualizing data using t-SNE
Visualizing data using t-SNEVisualizing data using t-SNE
Visualizing data using t-SNE홍배 김
 
Learning how to explain neural networks: PatternNet and PatternAttribution
Learning how to explain neural networks: PatternNet and PatternAttributionLearning how to explain neural networks: PatternNet and PatternAttribution
Learning how to explain neural networks: PatternNet and PatternAttributionGyubin Son
 
Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)홍배 김
 
Review Wide Resnet
Review Wide ResnetReview Wide Resnet
Review Wide ResnetWoojin Jeong
 
Attention is all you need 설명
Attention is all you need 설명Attention is all you need 설명
Attention is all you need 설명Junho Lee
 
Normalization 방법
Normalization 방법 Normalization 방법
Normalization 방법 홍배 김
 
머피의 머신러닝 : Gaussian Processes
머피의 머신러닝 : Gaussian Processes머피의 머신러닝 : Gaussian Processes
머피의 머신러닝 : Gaussian ProcessesJungkyu Lee
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks ISang Jun Lee
 

Was ist angesagt? (16)

[신경망기초] 심층신경망개요
[신경망기초] 심층신경망개요[신경망기초] 심층신경망개요
[신경망기초] 심층신경망개요
 
From maching learning to deep learning
From maching learning to deep learningFrom maching learning to deep learning
From maching learning to deep learning
 
Les net
Les netLes net
Les net
 
LSTM 네트워크 이해하기
LSTM 네트워크 이해하기LSTM 네트워크 이해하기
LSTM 네트워크 이해하기
 
Review Dense net
Review Dense netReview Dense net
Review Dense net
 
Rnn개념정리
Rnn개념정리Rnn개념정리
Rnn개념정리
 
Yolo v2 urop 발표자료
Yolo v2 urop 발표자료Yolo v2 urop 발표자료
Yolo v2 urop 발표자료
 
Review MLP Mixer
Review MLP MixerReview MLP Mixer
Review MLP Mixer
 
Visualizing data using t-SNE
Visualizing data using t-SNEVisualizing data using t-SNE
Visualizing data using t-SNE
 
Learning how to explain neural networks: PatternNet and PatternAttribution
Learning how to explain neural networks: PatternNet and PatternAttributionLearning how to explain neural networks: PatternNet and PatternAttribution
Learning how to explain neural networks: PatternNet and PatternAttribution
 
Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)
 
Review Wide Resnet
Review Wide ResnetReview Wide Resnet
Review Wide Resnet
 
Attention is all you need 설명
Attention is all you need 설명Attention is all you need 설명
Attention is all you need 설명
 
Normalization 방법
Normalization 방법 Normalization 방법
Normalization 방법
 
머피의 머신러닝 : Gaussian Processes
머피의 머신러닝 : Gaussian Processes머피의 머신러닝 : Gaussian Processes
머피의 머신러닝 : Gaussian Processes
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks I
 

Ähnlich wie Densely Connected Convolutional Networks

History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AITae Young Lee
 
밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장Sunggon Song
 
텐서플로우 2.0 튜토리얼 - CNN
텐서플로우 2.0 튜토리얼 - CNN텐서플로우 2.0 튜토리얼 - CNN
텐서플로우 2.0 튜토리얼 - CNNHwanhee Kim
 
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal NetworksFaster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal NetworksOh Yoojin
 
[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networks[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networksKorea, Sejong University.
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLDKim Junghoon
 
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...태엽 김
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Othersjdo
 
[데이터 분석 소모임] Convolution Neural Network 김려린
[데이터 분석 소모임] Convolution Neural Network 김려린[데이터 분석 소모임] Convolution Neural Network 김려린
[데이터 분석 소모임] Convolution Neural Network 김려린dkuplusalpha
 
"Learning transferable architectures for scalable image recognition" Paper Re...
"Learning transferable architectures for scalable image recognition" Paper Re..."Learning transferable architectures for scalable image recognition" Paper Re...
"Learning transferable architectures for scalable image recognition" Paper Re...LEE HOSEONG
 
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...changedaeoh
 
Convolutional neural networks
Convolutional neural networksConvolutional neural networks
Convolutional neural networksHyunjinBae3
 
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...MYEONGGYU LEE
 
Introduction toDQN
Introduction toDQNIntroduction toDQN
Introduction toDQNCurt Park
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용Youngjae Kim
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...Gyubin Son
 
Deep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural NetworkDeep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural Networkagdatalab
 

Ähnlich wie Densely Connected Convolutional Networks (20)

History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AI
 
밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장
 
텐서플로우 2.0 튜토리얼 - CNN
텐서플로우 2.0 튜토리얼 - CNN텐서플로우 2.0 튜토리얼 - CNN
텐서플로우 2.0 튜토리얼 - CNN
 
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal NetworksFaster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
 
[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networks[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networks
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD
 
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 
CNN
CNNCNN
CNN
 
[데이터 분석 소모임] Convolution Neural Network 김려린
[데이터 분석 소모임] Convolution Neural Network 김려린[데이터 분석 소모임] Convolution Neural Network 김려린
[데이터 분석 소모임] Convolution Neural Network 김려린
 
"Learning transferable architectures for scalable image recognition" Paper Re...
"Learning transferable architectures for scalable image recognition" Paper Re..."Learning transferable architectures for scalable image recognition" Paper Re...
"Learning transferable architectures for scalable image recognition" Paper Re...
 
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
 
Convolutional neural networks
Convolutional neural networksConvolutional neural networks
Convolutional neural networks
 
LeNet & GoogLeNet
LeNet & GoogLeNetLeNet & GoogLeNet
LeNet & GoogLeNet
 
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
 
Introduction toDQN
Introduction toDQNIntroduction toDQN
Introduction toDQN
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
Dl from scratch(7)
Dl from scratch(7)Dl from scratch(7)
Dl from scratch(7)
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
 
Deep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural NetworkDeep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural Network
 

Densely Connected Convolutional Networks

  • 1. Densely Connected Convolutional Networks HUANG, Gao, et al. Densely connected convolutional networks. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 발표자 : 오유진
  • 2. Key Point ✓ Network 의 layer 간 information flow 를 보장하기 위해서 모든 layer 를 직접 연결 ✓ layer 로 전달되기 전에 summation 을 해서 feature 를 결합하는 것이 아니라 concatenating 을 통해서 feature 결합 ✓ Dense connection 에는 정규화 효과가 있어서 training set 이 작아도 overfitting을 줄일 수 있음 [Abstract] • 각 layer에 대해 모든 preceding layer의 feature map이 input으로 사용되며, own feature map이 모든 subsequent layer에 대한 input으로 사용 • Vanishing-gradient 문제 완화 • Feature propagation 강화, • Parameter 수 감소 →Redundant feature maps 를 re-learn 할 필요가 없기 때문에 더 적은 parameter 로 기존의 성능 이상을 낼 수 있음
  • 3. DenseNet • 기존의 feed-forward network 는 𝑙 𝑡ℎ layer 의 output 을 (𝑙 + 1) 𝑡ℎ layer의 input과 연결 → 𝑋𝑙 = 𝐻𝑙(𝑋𝑙−1) • ResNet 은 skip-connection 을 추가 → 𝑋𝑙 = 𝐻𝑙 𝑋𝑙−1 + 𝑋𝑙−1 – Gradient 가 later layer 에서 earlier layer 로 identity function 이 직접 흐름 → vanishing-gradient 일부 해결 – 하지만 identity function 과 output 𝐻𝑙이 합에 의해 결합되어 network에서의 information flow를 방해할 수 있음. • Dense Connectivity 는 layer 간의 information flow를 향상시키기 위해 다른 연결 패턴을 제안 – 모든 layer 에서 모든 subsequent layer 로 직접 연결 – 𝑙 𝑡ℎ 번째 layer는 모든 preceding layer의 feature-map을 받음 → 𝑋𝑙 = 𝐻𝑙( 𝑋0, 𝑋1, ⋯ , 𝑋𝑙−1 )
  • 4. Composition function → Dense block DenseNet - architecture • 𝐻𝑙을 3개의 연속작업 composite function 으로 정의. Batch normalization, ReLU, 3*3 convolution • feature maps의 크기가 바뀌는 것이 𝑋𝑙 = 𝐻𝑙( 𝑋0, 𝑋1, ⋯ , 𝑋𝑙−1 ) 에 사용된 연결 연산에서 실행 불가능 • Down-sampling 을 용이하게 하기 위해 network를 밀도가 높은 여러 개의 dense block으로 나눔 • Layer 사이에서 Convolution 과 pooling을 하는 Transition layer라고 정의 • 실험에서 transition layer는 batch normalization layer 와 1*1 convolutional layer 와 2*2 avaverage pooling layer 로 구성. Pooling layer
  • 5. Growth rate DenseNet - architecture • 𝐻𝑙이 k개의 feature-map을 생성하면, 다음 layer는 𝑘0 + 𝑘 × (𝑙 − 1)개의 input feature-map을 가짐 – 𝑘0 는 dense block 첫번째의 input layer 의 feature map 개수 • 한번 기록되면 network 내의 어디서든 접근 가능, 계층별로 layer 복제할 필요 없음. • 각 layer는 k개의 output feature-map만 생성하지만 일반적으로 더 많은 input이 있음 • 1*1 convolution은 각각의 3*3 convolution 이전에 bottleneck layer로 나타나 input feature-map의 수를 줄임으로써 계산 효율을 향상시킴 Bottleneck layer • BN → ReLU → 3x3 Conv의 구조에서 BN → ReLU → 1x1 Conv → BN → ReLU → 3x3 Conv의 Bottleneck 구조 적용 • 계산 복잡성을 줄여주는 효과가 있습니다. Bottleneck layer
  • 6. Compression DenseNet - architecture • 모델의 압축률을 더 향상시키기 위해 transition layer에서 feature-map의 수를 줄임 • Dense block이 m개의 feature-map을 포함한다면, 다음 transition layer가 [θm] output feature-map을 생성 • 여기서 0 < θ ≤ 1은 압축 인자. θ = 1일 때, transition layer를 거친 feature-map의 수는 변하지 않음 • θ < 1 인 DenseNet 을 DenseNet-C 라고 부르고 θ = 0.5로 설정 • θ < 1 인 bottleneck과 transition layer를 모두 사용하는 경우 → DenseNet-BC 모델 Architecture
  • 7. DenseNet - advantage Strong gradient flow • 먼저 모든 feature map 들을 쌓아오기 때문에 layer 사이 사이 최대한 가치 있는 정보가 지나가게 할 수 있음 ‒ ResNet 의 경우 network 시작 지점 layer 의 정보가 깊은 망을 거치면서 뒤로 갈수록 희미해지는데, Dens connectivity pattern 을 사용하면 초반 layer 의 정보를 쌓아가며 뒤쪽 layer 까지 효율적으로 전달 ‒ 모델의 학습이 쉬워짐 ➢ Standard Connectivity Increasingly complex features ➢ Dense Connectivity • 기존의 network 보다 parameter 의 수를 많이 줄일 수 있음 – Dense 한 network 연결을 통해 정보의 손실이 별로 없이 효율적으로 전달 – 이는 classifier 에 network 전체의 feature map 을 골고루 입력할 수 있게 해 더 적은 parameter 사용이 가능 • Dense connection 이 regularizing 효과를 가지고 있어서 작은 dataset 에서도 overfitting 을 줄여줌
  • 8. Implementation details 사용한 DenseNet 의 구조 • ImageNet 에 적용할 때는 dense block 을 4개 사용 • CIFAR-10, SVHN 에는 dense block 을 3개 사용 ‒ Dense block 내부에는 같은 수의 layer 가 존재 Classification layer • 보통은 fully-connected network 사용하 는데, GAP(global average pooling) 사용 • Network 구조가 발전하면서 굳이 parameter 의 수가 증가하는 FC 를 넣어 주지 않기 때문
  • 14. DenseNet Experiment 총 3가지 data set 사용해 실험 ‒ CIFAR-10, CIFAR-100 (32*32 픽셀 컬러 이미지 train 50000, test 10000) ‒ SVHN (32*32 컬러 숫자 이미지 train 73257 test 26032) ‒ ImageNet (224*224 1000 개 class, train 120만, test 50000) • K 가 증가하면 parameter 의 수가 많아지고 Bottleneck Compression 을 사용하면 parameter 가 줄어드는 것 확인 가능
  • 15. DenseNet Experiment 총 3가지 data set 사용해 실험 ‒ CIFAR-10, CIFAR-100 (32*32 픽셀 컬러 이미지 train 50000, test 10000) ‒ SVHN (32*32 컬러 숫자 이미지 train 73257 test 26032) ‒ ImageNet (224*224 1000 개 class, train 120만, test 50000) • K 가 증가하면 parameter 의 수가 많아지고 Bottleneck Compression 을 사용하면 parameter 가 줄어드는 것 확인 가능 • SVHN 의 경우 BC 를 사용하지 않은 network 에서 더 좋은 결 과가 나옴 ‒ SVHN 이 상대적으로 쉬운 작업이기 때문에 더 deep 한 모델이 학습데이터에 overfitting 되기 때문
  • 16. DenseNet Experiment 총 3가지 data set 사용해 실험 ‒ CIFAR-10, CIFAR-100 (32*32 픽셀 컬러 이미지 train 50000, test 10000) ‒ SVHN (32*32 컬러 숫자 이미지 train 73257 test 26032) ‒ ImageNet (224*224 1000 개 class, train 120만, test 50000) • K 가 증가하면 parameter 의 수가 많아지고 Bottleneck Compression 을 사용하면 parameter 가 줄어드는 것 확인 가능 • SVHN 의 경우 BC 를 사용하지 않은 network 에서 더 좋은 결 과가 나옴 ‒ SVHN 이 상대적으로 쉬운 작업이기 때문에 더 deep 한 모델이 학습데이터에 overfitting 되기 때문 • ResNet 의 parameter 가 높은 모델과 DenseNet 의 parameter 가 굉장히 작은 모델의 성능이 비슷한 수준을 보임
  • 18. Discussion • Dense block 내부에서 convolution layer 들의 필터 가중치의 평균 • 픽셀 색깔이 source layer(s) 에서 target layer(𝑙) 로 연결되어 있는 가중치의 L1norm (normalized by number of input feature-map) • 색이 빨간색일수록 더 높은 가중치 • 같은 block 내에서는 가중치가 잘 흩어져 있음 • Transition layer 에서 나온 가중치도 잘 퍼져 있음 • Classification layer 가 전체 weight 를 가져가기는 하지만 네트워크 마지 막 단에서 생긴 high-level feature 를 더 많이 가져감
  • 19. Multi-Scale Dense Networks for Resource Efficient Classification Gao Huang, Danlu Chen, Tsinghua Li, Felix Wu 발표자 : 오유진
  • 20. Motivation ✓ Anytime classification – test 를 위한 networks prediction 이 점진적으로 update 되면서, output 의 prediction이 언제나 가능하게.. ✓ budgeted batch classification – 분류를 위한 계산량 고정시켜 수행 • Test image → ‘easy’ VS. ‘hard shallow model VS. deep model • 다양한 resource demand 를 가진 multiple classifier training 해서 test 하기 위함 • Develop CNNs – 계산을 ‘slice’하고 이러한 ‘slice’를 하나씩 처리 – CPU 시간이 고갈되거나 classification 이 충분히 이뤄지면 평가 중단 • 그래프와 같이 이전의 classifier 가 이후의 classifier의 성능에 부정적인 영향을 줌
  • 21. Multi-Scale DenseNet - Architecture • Network 의 마지막 layer 까지 모든 scale 을 유지하는 것은 비효율적 • Network 의 크기를 줄이는 방법 1 – 깊이에 따라 S 블록으로 분할 – 𝑆 − 𝑖 + 1 인 가장 큰 scale의 𝑖 𝑡ℎ 번째 block 만 유지 – Training 과 test 모두 계산량 줄임 • 매 번 scale 이 줄어들고transition layer 를 block 사이에 연결 • Network 의 크기를 줄이는 방법 2 – 가장 큰 scale feature 만 사용하기 때문에 대각선에 위치한 block 에서 classification 하는데 영향을 줌