ݺߣ

ݺߣShare a Scribd company logo
Dongyi Kim
Ajou University
Dept. of Computer Engineering
waps12b@ajou.ac.kr
Survey on Convolution Layers
다양한 형태의 컨볼루션 레이어와 경량화 기법
Convolution (2D) Layer
영상에 대한 “2D Spatial Feature”를 추출하는 필터들로 구성되어 있다.
• x, y 방향으로 인접한 픽셀들에 대한 필터를 학습한다.
• 같은 위치에 해당하는 모든 채널에 대해 가중치를 가진다.
하나의 커널은 입력 영상의 각 위치 별 반응치를 계산하여 2D Response Map을 출력한다.
• 각 위치별로 모든 채널의 픽셀들에 대한 Linear Combination을 수행한다.
Various types of Convolution layers P.2
Memory & Time Cost
연산량은 𝑀𝑋𝑌𝐾2
𝑁가 되고 파라미터의 수는 N(𝑀𝐾2
+ 1)개가 된다.
• M는 입력 채널 수, (X, Y)는 입력 영상의 크기, (K, K)는 필터 커널의 크기, N은 필터의 수(출력 채널)
영상의 크기 뿐만 아니라 많은 요소들에 의해 연산량과 파라미터 수가 증가한다.
• 입력 채널의 수
• 필터의 수
• 커널의 크기
Various types of Convolution layers P.3
Problem #1 – Expensive Cost
네트워크는 점점 깊어지고, 채널의 수는 증가한다.
 연산량도 가중치도 비례해서 증가한다.
Various types of Convolution layers P.4https://towardsdatascience.com/neural-network-architectures-156e5bad51ba
Problem #1 – Expensive Cost
일반적으로 큰 Feature Map을 컨볼루션의 입력으로 가지는 것이 유리하지만,
대부분의 CNN에서는 코스트를 고려해 Sub-sampling을 수행한다.
Various types of Convolution layers P.5
https://saitoxu.io/2017/01/01/convolution-and-pooling.html
Problem #1 – Expensive Cost
채널의 수를 늘릴수록 더 많은 Filter를 학습할 수 있다.
하지만 너무 많은 채널은 오히려 비용을 증가시킨다
• 파라미터의 수 증가
• 학습 속도 하락
• Overfitting
• …
Various types of Convolution layers P.6
https://saitoxu.io/2017/01/01/convolution-and-pooling.html
Problem #2 – Dead Channels
신경망의 학습 과정에서, 출력 결과에 영향을 거의 주지 않는 간선(혹은 정점)이 나타난다.
• 일반적으로 Pruning을 통해 신경망의 연산량과 파라미터 수를 경량화 할 수 있다.
• Edge Pruning이 Neuron Pruning에 비해 상대적으로 간단하다.
Various types of Convolution layers P.7
Problem #2 – Dead Channels
마찬가지로, 이런 문제들이 채널 단위에서 발생할 수 도 있다.
• 좁게는 하나의 필터에서, 넓게는 전체 신경망에서 불필요한 채널이 발생할 수 있다.
• 일종의 Neuron Pruning으로 볼 수 있으며, 제거 여부를 판단하기도 어렵다.
채널의 수는 곧 파라미터 수와 연산량에 직결되기 때문에, 상당한 자원 낭비가 될 수 있다.
• 당연히 채널의 수는 Hyper Parameter이기 때문에 최적의 수를 찾는 것도 한계가 있다.
Various types of Convolution layers P.8
불필요한 채널일지라도 가중치를 가지고, 계산 시간을 소요한다
Problem #3 – Low Correlation between channels
각 필터는 입력 영상의 모든 채널을 사용하지만,
모든 채널-필터 쌍이 높은 Correlation을 가질 수 만은 없다.
Various types of Convolution layers P.9
Problem #3 – Low Correlation between channels
결과적으로 Sparse한 Correlation Matrix를 보일 수 있다.
이로 인해 다음과 같은 문제점이 생긴다
• 학습 수렴 속도 저하
• 일종의 Noise처럼 작용
• 불필요한 가중치와 연산의 존재
Various types of Convolution layers P.10
https://blog.yani.io/filter-group-tutorial/https://blog.yani.io/filter-group-tutorial/
Abstract
요약하자면, Convolution Layer에는 크게 다음과 같은 세 가지 문제점이 존재한다.
• Expensive Cost
• Dead Channels
• Low Correlation between channels
본 발표에서는 이런 문제점들을 해결하기 위한 다양한 관점의 접근 방법들과
관련 논문들의 아이디어에 대해서 알아본다.
1. Dilated Convolution
2. Point-wise Convolution
3. Grouped Convolution
4. Depth-wise (Separable) Convolution
Various types of Convolution layers P.11
Various types of Convolution layers P.12
Dilated Convolution
Contextual Information & Receptive Fields
영상 내의 Objects에 대한 정확한 판단을 위해서는 Contextual Information이 중요하다
• 객체 주변의 배경은 어떤 환경인가?
• 객체 주변의 다른 객체들은 어떤 종류인가?
충분한 Contextual Information을 확보하기 위해서,
상대적으로 넓은 Receptive Field를 고려할 필요가 있다.
Various types of Convolution layers P.13
Contextual Information & Receptive Fields
일반적으로 CNN에서 Receptive Field를 확장하기 위해서는 다음을 고려해볼 수 있다.
• 커널 크기의 확장
• 더 많은 컨볼루션 레이어의 적층
하지만 두 방법 모두 연산량을 크게 증가시킨다.
Various types of Convolution layers P.14
https://blog.yani.io/filter-group-tutorial/ https://medium.com/@TalPerry/convolutional-methods-for-text-d5260fd5675f
Dilated Convolution
Dilated Convolution[1]은 Convolution filter의 수용 픽셀사이에 간격을 둔 형태
입력 픽셀의 수는 동일하지만, 더 넓은 범위에 대한 입력을 수용할 수 있게 된다.
Various types of Convolution layers P.15
https://mlblr.com/includes/mlai/index.html
Dilated Convolution
실제 Receptive Field 상의 모든 정보를 입력 받지
는 않는다.
하지만, 같은 수의 파라미터를 통해 상대적으로 넓은
영역의 정보들을 수용할 수 있다.
• Segmentation, Object Detection과 같이 상대적으로
Contextual Information이 중요한 분야에
적용하기 유리하다.
• 간격을 조절하여 다양한 Scale에 대한 대응이 가능하다.
Various types of Convolution layers P.16
Various types of Convolution layers P.17
Point-wise Convolution
Convolution Layer with a 1x1 kernels
Point-wise Convolution (1 by 1 Convolution)
Point-wise Convolution은 커널 크기가 1x1로 고정된 Convolution Layer를 말한다.
연산량은 𝑀𝑋𝑌𝑁가 되고 파라미터의 수는 N(𝑀 + 1)개가 된다.
• M는 입력 채널 수, (X, Y)는 입력 영상의 크기, (K, K)는 필터 커널의 크기, N은 필터의 수(출력 채널)
입력 영상에 대한 Spatial Feature는 추출하지 않은 상태로,
각 채널들에 대한 연산만을 수행한다.
• 출력 영상의 크기는 변하지 않으며, 채널의 수를 자유롭게 조정할 수 있다.
Various types of Convolution layers P.18
Point-wise Convolution (1 by 1 Convolution)
결국 하나의 필터는 채널 별로 Coefficient를 가지는 Linear Combination을 표현한다.
• 필터의 채널 별 파라미터(1x1)가 모든 위치에 동일하게 적용되므로
채널에 대한 Scalar Coefficient처럼 생각할 수 있다.
즉, 채널 단위의 Linear Combination을 통한 채널 수의 변화가 가능하다.
Various types of Convolution layers P.19
Point-wise Convolution
일반적으로 Point-wise Convolution의 경우 출력 영상의 채널 수를 줄여 사용한다.
이를 일종의 Dimensionality Reduction으로 이해할 수 있다.
즉, 다채널 입력 영상을 더 적은 채널의 영상(Low dimension)으로의 Embedding하는
하는 것으로 이해할 수 있다.
• 출력 채널 수를 줄임으로써, 다음 레이어의
계산 코스트와 파라미터 수를 줄일 수 있다.
Various types of Convolution layers P.20
Point-wise Convolution (1 by 1 Convolution)
채널에 대한 Linear Combination을 수행할 시,
불필요한 채널들이 낮은 Coefficient를 가지며 연산 결과에서 희석될 수 있다.
Various types of Convolution layers P.21
Point-wise Convolution - Experiments
Various types of Convolution layers P.22
Squeeze Net[2]
여러 구조에서 적용되어 경량화와 성능 개선이
가능함이 실험적으로 증명되었다.
• Inception
• Xception
• Squeeze-Net
• Mobile-Net
• …
Inception Network [3]
Various types of Convolution layers P.23
Grouped Convolution
Dividing channels into independent groups
Grouped Convolution
입력 영상의 채널들을 여러 개의 그룹으로 나누어 독립적인 컨볼루션을 수행하는 방식
• 아이디어와 구현 방법이 간단하다
• 병렬처리에 유리하다
Various types of Convolution layers P.24
def grouped_convolution(input, n_groups):
input_groups = tf.split(input, n_groups, axis = -1)
output_groups = [
tf.layers.conv2d(input_groups[i], """ some params """)
for i in range(n_groups)
]
output = tf.concat(output_groups, axis = -1)
return output
Grouped Convolution
각 그룹의 입력 채널들 사이에 독립적인 필터를 학습한다.
• 더 낮은 파라미터 수와 연산량을 가진다
• 각 그룹에 높은 Correlation을 가지는 채널들이 학습될 수 있다
Various types of Convolution layers P.25https://blog.yani.io/filter-group-tutorial/
Grouped Convolution
결과적으로 각 그룹마다 독립적인 필터의 학습을 기대할 수 있다.
• AlexNet에 사용된 Grouped Convolution의 예시
Various types of Convolution layers P.26
https://blog.yani.io/filter-group-tutorial/
Example : AlexNet
음영와 외곽선 위주의 커널을 학습한 그룹(위)과
색상과 패턴 위주의 커널을 학습한 그룹(아래)
Grouped Convolution
그룹 수를 조정해 독립적인 필터 그룹을 조정할 수 있다.
• 그룹의 수를 늘리면 파라미터의 수는 줄면서도, 성능 향상이 일어나는 경우가 있다.
그룹의 수는 Hyper Parameter라는 단점이 있다.
• 너무 많은 그룹으로의 분할은 오히려 성능이 하락할 수 있다.
Various types of Convolution layers P.27
음영와 외곽선 위주의 커널을 학습한 그룹(위)과
색상과 패턴 위주의 커널을 학습한 그룹(아래)
AlexNet 그룹 수에 따른 성능 변화
https://blog.yani.io/filter-group-tutorial/
Various types of Convolution layers P.28
Depth-wise Convolution
Channel-independent Convolution
Depth-wise Convolution
일반적인 Convolution Filter는 입력 영상의 모든 채널의 영향을 받게 되므로,
완벽히 특정 채널만의 Spatial Feature를 추출하는 것이 불가능하다.
• 다른 채널의 정보가 관여하는 것이 불가피하므로
Depth-wise Convolution은 각 단일 채널에 대해서만 수행되는 필터들을 사용한다.
• 그렇기에 필터 수는 입력 채널의 수와 같다.
Various types of Convolution layers P.29
Depth-wise Convolution
각 커널들은 하나의 채널에 대해서만 파라미터를 가진다.
• 입력-출력 채널의 수가 동일하다.
• 각 채널 고유의 Spatial 정보만을 사용하여 필터를 학습한다.
결과적으로 입력 채널 수 만큼 그룹을 나눈 Grouped Convolution과 같다.
Various types of Convolution layers P.30
Various types of Convolution layers P.31
Depth-wise Separable Convolution
Pointwise Convolution after Depthwise Convolution
Idea in Xception(F. chollet et al)
기존의 Convolution에서
Cross-channel Correlation을 완벽히 분리하기 위한 구조 제안
Various types of Convolution layers P.32
Depth-wise ‘Separable’ Convolution
Depth-wise Convolution과 Point-wise Convolution를 조합해 사용하는 방식
• Xception(F. Chollet et al)에서 제안함.
• 기존의 Convolution과 거의 유사하게 동작하지만 파라미터 수와 연산량은 훨씬 적다.
Cross-channel Correlation을 완벽히 분리하기 위한 구조 제안
Various types of Convolution layers P.33
https://www.kdnuggets.com/2017/08/intuitive-guide-deep-network-architectures.html/2
Depth-wise ‘Separable’ Convolution
Original Convolution
• 전체 채널에 대한 Spatial Convolution
Depth-wise Separable Convolution
• 각 채널 별 Spatial Convolution이후 Feature별 Linear Combination
Various types of Convolution layers P.34
Depth-wise ‘Separable’ Convolution
Various types of Convolution layers P.35
Baseline
(Original Convolution)
Proposed
(Depth-wise Separable Convolution)
# of params.
N 𝐶𝐾2
+ 1
= 𝑁𝐶𝐾2
+ 𝑁
𝐶 𝐾2
+ 1 + N 𝐶 + 1
= 𝐶𝐾2
+ 𝑁𝐶 + 𝐶 + 𝑁
# of operations. C𝐻𝑊𝐾2
𝑁
C𝐻𝑊𝐾2
+ C𝐻𝑊𝑁
= 𝐶𝐻𝑊(𝐾2
+ 𝑁)
Spatial Feature과 Channel-wise Feature를 모두 고려하는 경량화된 모델 제안
Experiment Results of Xception (F. chollet et al)
Various types of Convolution layers P.36
Spatial Feature과 Channel-wise Feature를 모두 고려하는 경량화된 모델 제안
Various types of Convolution layers P.37
Related Works
Squeeze Net, Mobile Net, Shuffle Net
Squeeze Net (F. N. Iandola et al)
Various types of Convolution layers P.38
다음 두 가지 아이디어를 사용한 네트워크 설계법 제안
1. 더 큰 Feature Map을 사용하는 것이 성능 향상에 유리하다
1. Sub-sampling을 최대한 후반부에 배치하여 Feature Map의 크기를 유지
2. 너무 많은 채널은 컨볼루션 연산의 비용을 증가시킨다
1. Point-wise Convolution을 사용해 Channel Reduction
Fire Module
Various types of Convolution layers P.39
1. Squeeze Layer
Point-wise Convolution을 사용한 Channel Reduction
2. Expand Layer
일부 3x3 Convolution Layer를 Point-wise Convolution으로 대체하여 계산 비용 감소
Experiment results of Squeeze Net
Various types of Convolution layers P.40
Mobile Net (A. G. Howard et al)
Various types of Convolution layers P.41
1. Point-wise Convolution의 적극 활용
Scalar-Matrix Multiplication으로 계산되기에 GEMM을 사용한 모델 가속화 용이
2. Depth-wise Separable Convolution의 사용
일반적인 Convolution Layer에 비해 좋은 계산/메모리 효율
3. Resolution과 Channel Size 보정을 통한 모델 경량화
Mobile Net: Network Architecture
Various types of Convolution layers P.42
첫 번째 레이어를 제외하고는 모두 Depth-wise Separable Convolution을 적용해 설계
Mobile Net: Width Multiplier / Resolution Multiplier
Various types of Convolution layers P.43
추가적인 모델 경량화를 위한 두 가지 Hyper Parameter 설정
1. Width Multiplier 𝛼
각 레이어의 입출력 채널의 수를 감소시키는 파라미터
2. Resolution Multiplier 𝜌
각 레이어의 입력 해상도를 감소시키는 파라미터
Mobile Net: Experiment Result
Various types of Convolution layers P.44
Mobile Net (A. G. Howard et al)
Various types of Convolution layers P.45
1. Point-wise Convolution의 적극 활용
Scalar-Matrix Multiplication으로 계산되기에 GEMM을 사용한 모델 가속화 용이
2. Depth-wise Separable Convolution의 사용
일반적인 Convolution Layer에 비해 좋은 계산/메모리 효율
3. Resolution과 Channel Size 보정을 통한 모델 경량화
Mobile Net V2
Various types of Convolution layers P.46
Residual Connetion과 추가적인 Point-wise Convolution을 사용
• 채널 수에 의한 계산 비용 절감
• 많은 채널의 Feature을 Low Channel-Space로 Embedding유도
Shuffle Net (X. Zhang et al)
Various types of Convolution layers P.47
두 가지 방식의 문제점을 해결하기 위한 아이디어 제안
1. Depth-wise Separable Convolution
여전히 Sparse Correlation Matrix로 인한 문제를 가지고 있음
2. Grouped Convolution
Grouped Convolution을 적층 할 시 여러 독립적인 네트워크처럼 경로가 분할
하나의 네트워크가 Ensemble처럼 동작해버리는 문제 발생
Shuffle Net: Channel Shuffle
Various types of Convolution layers P.48
Grouped Convolution을 반복하는 사이에 그룹간 일부 채널을 Shuffle.
• 간단한 구현으로 그룹간 Independency 해결
• Grouped Convolution으로 Sparse Correlation Matrix 문제 해결
Shuffle Net: Shuffle-Net Unit
Various types of Convolution layers P.49
결과적으로 다음과 같은 Shuffle-Net Unit의 적층을 통한 네트워크 구현
Shuffle Net: Network Architecture
Various types of Convolution layers P.50
네트워크 상세 설계와 그룹별 파라미터 사이즈
Shuffle Net: Network Architecture
Various types of Convolution layers P.51
그룹 크기와 채널 사이즈 경량화에 따른 실험 결과
References
[1] Multi-Scale Context Aggregation by Dilated Convolutions (F. Yu et al)
[2] SqueezeNet: AlexNet-level accuracy with 50x fewer parameters
and <0.5MB model size (F. N. Iandola et al)
[3] Xception: Deep Learning with
Depthwise Separable Convolutions (François Chollet)
[4] MobileNets: Efficient Convolutional Neural Networks for
Mobile Vision Applications (A. G. Howard et al)
[5] MobileNetV2: Inverted Residuals and
Linear Bottlenecks (M. Sandler et al)
[6] ShuffleNet: An Extremely Efficient Convolutional Neural Network
for Mobile Devices (X. Zhang et al)
Various types of Convolution layers P.52
Fin.
감사합니다.
* 이 PPT는 네이버에서 제공한 나눔글꼴과 아모레퍼시픽의 아리따부리 폰트를 사용하고 있습니다.
Various types of Convolution layers P.53

More Related Content

What's hot (20)

PDF
Recurrent Neural Networks (RNN) | RNN LSTM | Deep Learning Tutorial | Tensorf...
Edureka!
PDF
Collaborative filtering
Tien-Yang (Aiden) Wu
PDF
Recommender Systems
Francesco Casalegno
PPTX
Collaborative Filtering Recommendation System
Milind Gokhale
PPTX
support vector regression
Akhilesh Joshi
PDF
Artificial Neural Networks Lect5: Multi-Layer Perceptron & Backpropagation
Mohammed Bennamoun
PDF
Understanding Convolutional Neural Networks
Jeremy Nixon
PDF
Yurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAI
Lviv Startup Club
PDF
Overview of Convolutional Neural Networks
ananth
PPTX
Introduction to Transformer Model
Nuwan Sriyantha Bandara
PPTX
Gradient descent method
Prof. Neeta Awasthy
PPTX
Convolution 종류 설명
홍배 김
PDF
Introduction to Recurrent Neural Network
Knoldus Inc.
PPT
Cnn method
AmirSajedi1
PDF
Research of adversarial example on a deep neural network
NAVER Engineering
PPTX
Convolutional Neural Network and Its Applications
Kasun Chinthaka Piyarathna
PPT
★Mean shift a_robust_approach_to_feature_space_analysis
irisshicat
PPTX
Scale Invariant Feature Transform
kislayabhi
PPTX
Long Short Term Memory LSTM
Abdullah al Mamun
PDF
Logistic regression : Use Case | Background | Advantages | Disadvantages
Rajat Sharma
Recurrent Neural Networks (RNN) | RNN LSTM | Deep Learning Tutorial | Tensorf...
Edureka!
Collaborative filtering
Tien-Yang (Aiden) Wu
Recommender Systems
Francesco Casalegno
Collaborative Filtering Recommendation System
Milind Gokhale
support vector regression
Akhilesh Joshi
Artificial Neural Networks Lect5: Multi-Layer Perceptron & Backpropagation
Mohammed Bennamoun
Understanding Convolutional Neural Networks
Jeremy Nixon
Yurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAI
Lviv Startup Club
Overview of Convolutional Neural Networks
ananth
Introduction to Transformer Model
Nuwan Sriyantha Bandara
Gradient descent method
Prof. Neeta Awasthy
Convolution 종류 설명
홍배 김
Introduction to Recurrent Neural Network
Knoldus Inc.
Cnn method
AmirSajedi1
Research of adversarial example on a deep neural network
NAVER Engineering
Convolutional Neural Network and Its Applications
Kasun Chinthaka Piyarathna
★Mean shift a_robust_approach_to_feature_space_analysis
irisshicat
Scale Invariant Feature Transform
kislayabhi
Long Short Term Memory LSTM
Abdullah al Mamun
Logistic regression : Use Case | Background | Advantages | Disadvantages
Rajat Sharma

Similar to 여러 컨볼루션 레이어 테크닉과 경량화 기법들 (20)

PPTX
Xception mhkim
KIMMINHA3
PPTX
CNN
chs71
PDF
History of Vision AI
Tae Young Lee
PDF
HistoryOfCNN
Tae Young Lee
PPTX
Convolutional neural networks
HyunjinBae3
PPTX
Review Dense net
Woojin Jeong
PDF
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
changedaeoh
PDF
네트워크 경량화 이모저모 @ 2020 DLD
Kim Junghoon
PDF
Convoutional sequence to sequence
Woodam Lim
PDF
Densely Connected Convolutional Networks
Oh Yoojin
PPTX
A Beginner's guide to understanding Autoencoder
Lee Seungeun
PPTX
Microstrip Patch Antenna Design by Lim and Oh
Yong Heui Cho
PDF
Deep Learning & Convolutional Neural Network
agdatalab
PDF
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Oh Yoojin
PDF
FCN to DeepLab.v3+
Whi Kwon
PDF
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
jdo
PPTX
텐서플로우 2.0 튜토리얼 - CNN
Hwanhee Kim
PDF
CNN Introduction
pko89403
PPTX
GoogLenet
KyeongUkJang
PDF
deep encoder, shallow decoder reevaluating non-autoregressive machine transl...
taeseon ryu
Xception mhkim
KIMMINHA3
History of Vision AI
Tae Young Lee
HistoryOfCNN
Tae Young Lee
Convolutional neural networks
HyunjinBae3
Review Dense net
Woojin Jeong
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
changedaeoh
네트워크 경량화 이모저모 @ 2020 DLD
Kim Junghoon
Convoutional sequence to sequence
Woodam Lim
Densely Connected Convolutional Networks
Oh Yoojin
A Beginner's guide to understanding Autoencoder
Lee Seungeun
Microstrip Patch Antenna Design by Lim and Oh
Yong Heui Cho
Deep Learning & Convolutional Neural Network
agdatalab
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Oh Yoojin
FCN to DeepLab.v3+
Whi Kwon
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
jdo
텐서플로우 2.0 튜토리얼 - CNN
Hwanhee Kim
CNN Introduction
pko89403
GoogLenet
KyeongUkJang
deep encoder, shallow decoder reevaluating non-autoregressive machine transl...
taeseon ryu
Ad

여러 컨볼루션 레이어 테크닉과 경량화 기법들

  • 1. Dongyi Kim Ajou University Dept. of Computer Engineering waps12b@ajou.ac.kr Survey on Convolution Layers 다양한 형태의 컨볼루션 레이어와 경량화 기법
  • 2. Convolution (2D) Layer 영상에 대한 “2D Spatial Feature”를 추출하는 필터들로 구성되어 있다. • x, y 방향으로 인접한 픽셀들에 대한 필터를 학습한다. • 같은 위치에 해당하는 모든 채널에 대해 가중치를 가진다. 하나의 커널은 입력 영상의 각 위치 별 반응치를 계산하여 2D Response Map을 출력한다. • 각 위치별로 모든 채널의 픽셀들에 대한 Linear Combination을 수행한다. Various types of Convolution layers P.2
  • 3. Memory & Time Cost 연산량은 𝑀𝑋𝑌𝐾2 𝑁가 되고 파라미터의 수는 N(𝑀𝐾2 + 1)개가 된다. • M는 입력 채널 수, (X, Y)는 입력 영상의 크기, (K, K)는 필터 커널의 크기, N은 필터의 수(출력 채널) 영상의 크기 뿐만 아니라 많은 요소들에 의해 연산량과 파라미터 수가 증가한다. • 입력 채널의 수 • 필터의 수 • 커널의 크기 Various types of Convolution layers P.3
  • 4. Problem #1 – Expensive Cost 네트워크는 점점 깊어지고, 채널의 수는 증가한다.  연산량도 가중치도 비례해서 증가한다. Various types of Convolution layers P.4https://towardsdatascience.com/neural-network-architectures-156e5bad51ba
  • 5. Problem #1 – Expensive Cost 일반적으로 큰 Feature Map을 컨볼루션의 입력으로 가지는 것이 유리하지만, 대부분의 CNN에서는 코스트를 고려해 Sub-sampling을 수행한다. Various types of Convolution layers P.5 https://saitoxu.io/2017/01/01/convolution-and-pooling.html
  • 6. Problem #1 – Expensive Cost 채널의 수를 늘릴수록 더 많은 Filter를 학습할 수 있다. 하지만 너무 많은 채널은 오히려 비용을 증가시킨다 • 파라미터의 수 증가 • 학습 속도 하락 • Overfitting • … Various types of Convolution layers P.6 https://saitoxu.io/2017/01/01/convolution-and-pooling.html
  • 7. Problem #2 – Dead Channels 신경망의 학습 과정에서, 출력 결과에 영향을 거의 주지 않는 간선(혹은 정점)이 나타난다. • 일반적으로 Pruning을 통해 신경망의 연산량과 파라미터 수를 경량화 할 수 있다. • Edge Pruning이 Neuron Pruning에 비해 상대적으로 간단하다. Various types of Convolution layers P.7
  • 8. Problem #2 – Dead Channels 마찬가지로, 이런 문제들이 채널 단위에서 발생할 수 도 있다. • 좁게는 하나의 필터에서, 넓게는 전체 신경망에서 불필요한 채널이 발생할 수 있다. • 일종의 Neuron Pruning으로 볼 수 있으며, 제거 여부를 판단하기도 어렵다. 채널의 수는 곧 파라미터 수와 연산량에 직결되기 때문에, 상당한 자원 낭비가 될 수 있다. • 당연히 채널의 수는 Hyper Parameter이기 때문에 최적의 수를 찾는 것도 한계가 있다. Various types of Convolution layers P.8 불필요한 채널일지라도 가중치를 가지고, 계산 시간을 소요한다
  • 9. Problem #3 – Low Correlation between channels 각 필터는 입력 영상의 모든 채널을 사용하지만, 모든 채널-필터 쌍이 높은 Correlation을 가질 수 만은 없다. Various types of Convolution layers P.9
  • 10. Problem #3 – Low Correlation between channels 결과적으로 Sparse한 Correlation Matrix를 보일 수 있다. 이로 인해 다음과 같은 문제점이 생긴다 • 학습 수렴 속도 저하 • 일종의 Noise처럼 작용 • 불필요한 가중치와 연산의 존재 Various types of Convolution layers P.10 https://blog.yani.io/filter-group-tutorial/https://blog.yani.io/filter-group-tutorial/
  • 11. Abstract 요약하자면, Convolution Layer에는 크게 다음과 같은 세 가지 문제점이 존재한다. • Expensive Cost • Dead Channels • Low Correlation between channels 본 발표에서는 이런 문제점들을 해결하기 위한 다양한 관점의 접근 방법들과 관련 논문들의 아이디어에 대해서 알아본다. 1. Dilated Convolution 2. Point-wise Convolution 3. Grouped Convolution 4. Depth-wise (Separable) Convolution Various types of Convolution layers P.11
  • 12. Various types of Convolution layers P.12 Dilated Convolution
  • 13. Contextual Information & Receptive Fields 영상 내의 Objects에 대한 정확한 판단을 위해서는 Contextual Information이 중요하다 • 객체 주변의 배경은 어떤 환경인가? • 객체 주변의 다른 객체들은 어떤 종류인가? 충분한 Contextual Information을 확보하기 위해서, 상대적으로 넓은 Receptive Field를 고려할 필요가 있다. Various types of Convolution layers P.13
  • 14. Contextual Information & Receptive Fields 일반적으로 CNN에서 Receptive Field를 확장하기 위해서는 다음을 고려해볼 수 있다. • 커널 크기의 확장 • 더 많은 컨볼루션 레이어의 적층 하지만 두 방법 모두 연산량을 크게 증가시킨다. Various types of Convolution layers P.14 https://blog.yani.io/filter-group-tutorial/ https://medium.com/@TalPerry/convolutional-methods-for-text-d5260fd5675f
  • 15. Dilated Convolution Dilated Convolution[1]은 Convolution filter의 수용 픽셀사이에 간격을 둔 형태 입력 픽셀의 수는 동일하지만, 더 넓은 범위에 대한 입력을 수용할 수 있게 된다. Various types of Convolution layers P.15 https://mlblr.com/includes/mlai/index.html
  • 16. Dilated Convolution 실제 Receptive Field 상의 모든 정보를 입력 받지 는 않는다. 하지만, 같은 수의 파라미터를 통해 상대적으로 넓은 영역의 정보들을 수용할 수 있다. • Segmentation, Object Detection과 같이 상대적으로 Contextual Information이 중요한 분야에 적용하기 유리하다. • 간격을 조절하여 다양한 Scale에 대한 대응이 가능하다. Various types of Convolution layers P.16
  • 17. Various types of Convolution layers P.17 Point-wise Convolution Convolution Layer with a 1x1 kernels
  • 18. Point-wise Convolution (1 by 1 Convolution) Point-wise Convolution은 커널 크기가 1x1로 고정된 Convolution Layer를 말한다. 연산량은 𝑀𝑋𝑌𝑁가 되고 파라미터의 수는 N(𝑀 + 1)개가 된다. • M는 입력 채널 수, (X, Y)는 입력 영상의 크기, (K, K)는 필터 커널의 크기, N은 필터의 수(출력 채널) 입력 영상에 대한 Spatial Feature는 추출하지 않은 상태로, 각 채널들에 대한 연산만을 수행한다. • 출력 영상의 크기는 변하지 않으며, 채널의 수를 자유롭게 조정할 수 있다. Various types of Convolution layers P.18
  • 19. Point-wise Convolution (1 by 1 Convolution) 결국 하나의 필터는 채널 별로 Coefficient를 가지는 Linear Combination을 표현한다. • 필터의 채널 별 파라미터(1x1)가 모든 위치에 동일하게 적용되므로 채널에 대한 Scalar Coefficient처럼 생각할 수 있다. 즉, 채널 단위의 Linear Combination을 통한 채널 수의 변화가 가능하다. Various types of Convolution layers P.19
  • 20. Point-wise Convolution 일반적으로 Point-wise Convolution의 경우 출력 영상의 채널 수를 줄여 사용한다. 이를 일종의 Dimensionality Reduction으로 이해할 수 있다. 즉, 다채널 입력 영상을 더 적은 채널의 영상(Low dimension)으로의 Embedding하는 하는 것으로 이해할 수 있다. • 출력 채널 수를 줄임으로써, 다음 레이어의 계산 코스트와 파라미터 수를 줄일 수 있다. Various types of Convolution layers P.20
  • 21. Point-wise Convolution (1 by 1 Convolution) 채널에 대한 Linear Combination을 수행할 시, 불필요한 채널들이 낮은 Coefficient를 가지며 연산 결과에서 희석될 수 있다. Various types of Convolution layers P.21
  • 22. Point-wise Convolution - Experiments Various types of Convolution layers P.22 Squeeze Net[2] 여러 구조에서 적용되어 경량화와 성능 개선이 가능함이 실험적으로 증명되었다. • Inception • Xception • Squeeze-Net • Mobile-Net • … Inception Network [3]
  • 23. Various types of Convolution layers P.23 Grouped Convolution Dividing channels into independent groups
  • 24. Grouped Convolution 입력 영상의 채널들을 여러 개의 그룹으로 나누어 독립적인 컨볼루션을 수행하는 방식 • 아이디어와 구현 방법이 간단하다 • 병렬처리에 유리하다 Various types of Convolution layers P.24 def grouped_convolution(input, n_groups): input_groups = tf.split(input, n_groups, axis = -1) output_groups = [ tf.layers.conv2d(input_groups[i], """ some params """) for i in range(n_groups) ] output = tf.concat(output_groups, axis = -1) return output
  • 25. Grouped Convolution 각 그룹의 입력 채널들 사이에 독립적인 필터를 학습한다. • 더 낮은 파라미터 수와 연산량을 가진다 • 각 그룹에 높은 Correlation을 가지는 채널들이 학습될 수 있다 Various types of Convolution layers P.25https://blog.yani.io/filter-group-tutorial/
  • 26. Grouped Convolution 결과적으로 각 그룹마다 독립적인 필터의 학습을 기대할 수 있다. • AlexNet에 사용된 Grouped Convolution의 예시 Various types of Convolution layers P.26 https://blog.yani.io/filter-group-tutorial/ Example : AlexNet 음영와 외곽선 위주의 커널을 학습한 그룹(위)과 색상과 패턴 위주의 커널을 학습한 그룹(아래)
  • 27. Grouped Convolution 그룹 수를 조정해 독립적인 필터 그룹을 조정할 수 있다. • 그룹의 수를 늘리면 파라미터의 수는 줄면서도, 성능 향상이 일어나는 경우가 있다. 그룹의 수는 Hyper Parameter라는 단점이 있다. • 너무 많은 그룹으로의 분할은 오히려 성능이 하락할 수 있다. Various types of Convolution layers P.27 음영와 외곽선 위주의 커널을 학습한 그룹(위)과 색상과 패턴 위주의 커널을 학습한 그룹(아래) AlexNet 그룹 수에 따른 성능 변화 https://blog.yani.io/filter-group-tutorial/
  • 28. Various types of Convolution layers P.28 Depth-wise Convolution Channel-independent Convolution
  • 29. Depth-wise Convolution 일반적인 Convolution Filter는 입력 영상의 모든 채널의 영향을 받게 되므로, 완벽히 특정 채널만의 Spatial Feature를 추출하는 것이 불가능하다. • 다른 채널의 정보가 관여하는 것이 불가피하므로 Depth-wise Convolution은 각 단일 채널에 대해서만 수행되는 필터들을 사용한다. • 그렇기에 필터 수는 입력 채널의 수와 같다. Various types of Convolution layers P.29
  • 30. Depth-wise Convolution 각 커널들은 하나의 채널에 대해서만 파라미터를 가진다. • 입력-출력 채널의 수가 동일하다. • 각 채널 고유의 Spatial 정보만을 사용하여 필터를 학습한다. 결과적으로 입력 채널 수 만큼 그룹을 나눈 Grouped Convolution과 같다. Various types of Convolution layers P.30
  • 31. Various types of Convolution layers P.31 Depth-wise Separable Convolution Pointwise Convolution after Depthwise Convolution
  • 32. Idea in Xception(F. chollet et al) 기존의 Convolution에서 Cross-channel Correlation을 완벽히 분리하기 위한 구조 제안 Various types of Convolution layers P.32
  • 33. Depth-wise ‘Separable’ Convolution Depth-wise Convolution과 Point-wise Convolution를 조합해 사용하는 방식 • Xception(F. Chollet et al)에서 제안함. • 기존의 Convolution과 거의 유사하게 동작하지만 파라미터 수와 연산량은 훨씬 적다. Cross-channel Correlation을 완벽히 분리하기 위한 구조 제안 Various types of Convolution layers P.33 https://www.kdnuggets.com/2017/08/intuitive-guide-deep-network-architectures.html/2
  • 34. Depth-wise ‘Separable’ Convolution Original Convolution • 전체 채널에 대한 Spatial Convolution Depth-wise Separable Convolution • 각 채널 별 Spatial Convolution이후 Feature별 Linear Combination Various types of Convolution layers P.34
  • 35. Depth-wise ‘Separable’ Convolution Various types of Convolution layers P.35 Baseline (Original Convolution) Proposed (Depth-wise Separable Convolution) # of params. N 𝐶𝐾2 + 1 = 𝑁𝐶𝐾2 + 𝑁 𝐶 𝐾2 + 1 + N 𝐶 + 1 = 𝐶𝐾2 + 𝑁𝐶 + 𝐶 + 𝑁 # of operations. C𝐻𝑊𝐾2 𝑁 C𝐻𝑊𝐾2 + C𝐻𝑊𝑁 = 𝐶𝐻𝑊(𝐾2 + 𝑁) Spatial Feature과 Channel-wise Feature를 모두 고려하는 경량화된 모델 제안
  • 36. Experiment Results of Xception (F. chollet et al) Various types of Convolution layers P.36 Spatial Feature과 Channel-wise Feature를 모두 고려하는 경량화된 모델 제안
  • 37. Various types of Convolution layers P.37 Related Works Squeeze Net, Mobile Net, Shuffle Net
  • 38. Squeeze Net (F. N. Iandola et al) Various types of Convolution layers P.38 다음 두 가지 아이디어를 사용한 네트워크 설계법 제안 1. 더 큰 Feature Map을 사용하는 것이 성능 향상에 유리하다 1. Sub-sampling을 최대한 후반부에 배치하여 Feature Map의 크기를 유지 2. 너무 많은 채널은 컨볼루션 연산의 비용을 증가시킨다 1. Point-wise Convolution을 사용해 Channel Reduction
  • 39. Fire Module Various types of Convolution layers P.39 1. Squeeze Layer Point-wise Convolution을 사용한 Channel Reduction 2. Expand Layer 일부 3x3 Convolution Layer를 Point-wise Convolution으로 대체하여 계산 비용 감소
  • 40. Experiment results of Squeeze Net Various types of Convolution layers P.40
  • 41. Mobile Net (A. G. Howard et al) Various types of Convolution layers P.41 1. Point-wise Convolution의 적극 활용 Scalar-Matrix Multiplication으로 계산되기에 GEMM을 사용한 모델 가속화 용이 2. Depth-wise Separable Convolution의 사용 일반적인 Convolution Layer에 비해 좋은 계산/메모리 효율 3. Resolution과 Channel Size 보정을 통한 모델 경량화
  • 42. Mobile Net: Network Architecture Various types of Convolution layers P.42 첫 번째 레이어를 제외하고는 모두 Depth-wise Separable Convolution을 적용해 설계
  • 43. Mobile Net: Width Multiplier / Resolution Multiplier Various types of Convolution layers P.43 추가적인 모델 경량화를 위한 두 가지 Hyper Parameter 설정 1. Width Multiplier 𝛼 각 레이어의 입출력 채널의 수를 감소시키는 파라미터 2. Resolution Multiplier 𝜌 각 레이어의 입력 해상도를 감소시키는 파라미터
  • 44. Mobile Net: Experiment Result Various types of Convolution layers P.44
  • 45. Mobile Net (A. G. Howard et al) Various types of Convolution layers P.45 1. Point-wise Convolution의 적극 활용 Scalar-Matrix Multiplication으로 계산되기에 GEMM을 사용한 모델 가속화 용이 2. Depth-wise Separable Convolution의 사용 일반적인 Convolution Layer에 비해 좋은 계산/메모리 효율 3. Resolution과 Channel Size 보정을 통한 모델 경량화
  • 46. Mobile Net V2 Various types of Convolution layers P.46 Residual Connetion과 추가적인 Point-wise Convolution을 사용 • 채널 수에 의한 계산 비용 절감 • 많은 채널의 Feature을 Low Channel-Space로 Embedding유도
  • 47. Shuffle Net (X. Zhang et al) Various types of Convolution layers P.47 두 가지 방식의 문제점을 해결하기 위한 아이디어 제안 1. Depth-wise Separable Convolution 여전히 Sparse Correlation Matrix로 인한 문제를 가지고 있음 2. Grouped Convolution Grouped Convolution을 적층 할 시 여러 독립적인 네트워크처럼 경로가 분할 하나의 네트워크가 Ensemble처럼 동작해버리는 문제 발생
  • 48. Shuffle Net: Channel Shuffle Various types of Convolution layers P.48 Grouped Convolution을 반복하는 사이에 그룹간 일부 채널을 Shuffle. • 간단한 구현으로 그룹간 Independency 해결 • Grouped Convolution으로 Sparse Correlation Matrix 문제 해결
  • 49. Shuffle Net: Shuffle-Net Unit Various types of Convolution layers P.49 결과적으로 다음과 같은 Shuffle-Net Unit의 적층을 통한 네트워크 구현
  • 50. Shuffle Net: Network Architecture Various types of Convolution layers P.50 네트워크 상세 설계와 그룹별 파라미터 사이즈
  • 51. Shuffle Net: Network Architecture Various types of Convolution layers P.51 그룹 크기와 채널 사이즈 경량화에 따른 실험 결과
  • 52. References [1] Multi-Scale Context Aggregation by Dilated Convolutions (F. Yu et al) [2] SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size (F. N. Iandola et al) [3] Xception: Deep Learning with Depthwise Separable Convolutions (François Chollet) [4] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (A. G. Howard et al) [5] MobileNetV2: Inverted Residuals and Linear Bottlenecks (M. Sandler et al) [6] ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices (X. Zhang et al) Various types of Convolution layers P.52
  • 53. Fin. 감사합니다. * 이 PPT는 네이버에서 제공한 나눔글꼴과 아모레퍼시픽의 아리따부리 폰트를 사용하고 있습니다. Various types of Convolution layers P.53