SlideShare une entreprise Scribd logo
1  sur  110
누구나 TensorFlow!
J. Kang Ph.D.
모바일 ML을 위한 비전모델
쥐어짜보즈아!
Model compression, Efficient convolution
Jaewook Kang, Ph.D.
jwkang10@gmail.com
June. 2018
1
© 2018
MoT Labs
All Rights Reserved
누구나 TensorFlow!
J. Kang Ph.D.
 GIST EEC Ph.D. (2015)
 연구팀 리더 (~2018 5)
 모두의 연구소 MoT 연구실 리더
 좋아하는 것:
 통계적 신호처리 / 무선통신 신호처리
 C++ Native 라이브러리 구현
 Mobile Machine learning
 수영 덕력 6년
 현재 겁도 없이 백수 중…
2
Jaewook Kang (강재욱)
소 개
누구나 TensorFlow!
J. Kang Ph.D.
1. 모바일에서 머신러닝을 한다는것
- Why on-device ML?
- 해결해줘야 하는 부분
3
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
Why on-device ML?
– Cloud ML의 제약
• UX 측면
4
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
Why on-device ML?
– Cloud ML의 제약
• UX 측면
– 서비스 반응 속도=
» 입력 데이터 업로드시간
» +클라우드 Inference 시간
» +결과 다운로드 시간
5
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
Why on-device ML?
– Cloud ML의 제약
• UX 측면
– 서비스 반응 속도
– 오프라인 상황
6
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
Why on-device ML?
– Cloud ML의 제약
• 데이터 소모 측면
– Inference할때마다
» server call 필요
» 입력데이터 업로드 필요
– 큰 데이터 소비 APP  순삭 ㅠ
7
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
Why on-device ML?
– Cloud ML의 제약
• 프라이버시 측면
– 개인화   프라이버시
– 개인화 서비스는 받고 싶은데 내데이터를 주는 건 싫다?
• 데이터 퓨젼의 어려움
– 한 클라우드 서비스에서 다양한 개인정보를 수집하기
어려움
» 모바일: 위치정보 / 사진 / 영상 /오디오
8
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
해결해줘야 하는 부분
– UX + 비용 측면  On-device inference
• 반응 속도 (Fast Response)
• 배터리 (Efficient Computation)
• 모델 사이즈
• 메모리 제한?
– 프라이버시 측면 On-device training
• 다른 사람 말고 내 얼굴을 잘 인식해라 이놈아
• Transfer learning?
• Personal Data fusion
9
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
해결해줘야 하는 부분
– UX + 비용 측면  On-device inference
• 반응 속도 (Fast Response)
• 배터리 (Efficient Computation)
• 모델 사이즈
• 메모리 제한?
– 프라이버시 측면 On-device training
• 다른 사람 말고 내 얼굴을 잘 인식해라 이놈아
• Transfer learning?
• Personal Data fusion
10
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
11
- 하이퍼커넥트 신범준님 발표자료 중 -
누구나 TensorFlow!
J. Kang Ph.D.
2. Recent Trends of Vision Networks
- CNN Concept
- Recent Trends
12
누구나 TensorFlow!
J. Kang Ph.D.
Some References
 Standford cs231n 2018
– http://cs231n.stanford.edu
13
누구나 TensorFlow!
J. Kang Ph.D.
질문: 계산량이 가장 많고 프라이버시에 민감하며
동시에 정보량이 가장 큰 데이터?
14
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
계산량이 가장 많고 프라이버시에 민감하며
동시에 정보량이 가장 큰 데이터?
15 이미지출처: http://cs231n.stanford.edu
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
계산량이 가장 많고 프라이버시에 민감하며
동시에 정보량이 가장 큰 데이터?
16 이미지출처: http://cs231n.stanford.edu
누구나 TensorFlow!
J. Kang Ph.D.
Convolutional Neural Networks (CNN)
Convolutional neural network (CNN) 는 아주
중요하게 되었습니다.
– 시각인식
– 신호처리
– 분석 도구
17 이미지출처: http://cs231n.stanford.edu
누구나 TensorFlow!
J. Kang Ph.D.
CNN is Biologically Inspired!
Emerged from the study of the brain’s visual cortex
– Visual system의 뉴런은 전체를 보지 않는다!
18
이미지출처: https://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn
누구나 TensorFlow!
J. Kang Ph.D.
CNN - Why Convolution?
 https://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn
19
누구나 TensorFlow!
J. Kang Ph.D.
CNN - Why Convolution?
 https://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn
20
누구나 TensorFlow!
J. Kang Ph.D.
CNN is Biologically Inspired!
Emerged from the study of the brain’s visual cortex
– 상위 layer의 뉴런은 에서는 Retina 뉴런에서 인식한 ”Low-level
features”를 복합적으로 결합하여 “High-level features”를 구성한다.
– High-level feature들은 단계적으로 결합되어 “Entire objects
pattern”를 구성하고 뇌에서 인지 한다.
21
이미지출처: https://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn
Area V1 Area V2 Area V3 Area V4Retina
Edges Object parts Entire objects
누구나 TensorFlow!
J. Kang Ph.D.
CNN을 한마디로 요약하면?
Convolutional Neural Networks (CNN)
22
1) 이미지의 지역적 특징 (1D/2D~nD)을 구분해서 추출하고
2) 추출한 특징을 계층적으로 조립하여
3) 전체 이미지를 인식 한 후 판단/추론 하는 모델
이미지출처: https://www.safaribooksonline.com/library/view/learning-tensorflow/9781491978504/ch04.html
Logit: Z
Input: X
누구나 TensorFlow!
J. Kang Ph.D.
CNN을 한마디로 요약하면?
Convolutional Neural Networks (CNN)
23
1) Fully- connected
2) Convolutionally -connected
이미지출처: https://www.safaribooksonline.com/library/view/learning-tensorflow/9781491978504/ch04.html
Logit: Z
Input: X
y = f (W ×x + b)
y = f (W ⊙x + b)
누구나 TensorFlow!
J. Kang Ph.D.
CNN을 한마디로 요약하면?
Convolutional Neural Networks (CNN)
24
1) Convolutionally –connected
- 모델의 parameter 개수가 줄어든다
- 모델 연산이 줄어든다.
이미지출처: https://www.safaribooksonline.com/library/view/learning-tensorflow/9781491978504/ch04.html
Logit: Z
Input: X
누구나 TensorFlow!
J. Kang Ph.D.
CNN을 한마디로 요약하면?
Convolutional Neural Networks (CNN)
25
1) Convolutional –connected
- 모델의 parameter 개수가 줄어든다  Weight sharing
- 모델 연산이 줄어든다.  Sparse connectivity
이미지출처: https://www.safaribooksonline.com/library/view/learning-tensorflow/9781491978504/ch04.html
Logit: Z
Input: X
누구나 TensorFlow!
J. Kang Ph.D.
CNN을 구성하는 layers
– Convolutional layer
• Generation of feature map (layer output)
• Local feature reception and combination
– Pooling layer
• Spatial / temporal sub-sampling of features
26
누구나 TensorFlow!
J. Kang Ph.D.
CNN Basic Architectures
Stacking of (Conv layer + pooling layer)
– 기본적으로 Conv layer + pool layer를 쌓는 방식
– Output layer 바로 전 몇 단은 FNN을 쌓는다
– Application에 따라서 다양한 configuration이 존재
27
누구나 TensorFlow!
J. Kang Ph.D.
모바일 머신러닝
계산량이 가장 많고 프라이버시에 민감하며
동시에 정보량이 가장 큰 데이터?
28 이미지출처: http://cs231n.stanford.edu
누구나 TensorFlow!
J. Kang Ph.D. 29 이미지출처: http://cs231n.stanford.edu
ImageNet Top-5 error rate
누구나 TensorFlow!
J. Kang Ph.D.
CNN Benchmark Map (~2015)
 목적: 모바일에도 올릴 수 있는 효율적인 모델을 만들고 싶다!
30
https://www.topbots.com/a-brief-history-of-
neural-network-architectures/
Good Region
Bad Region
누구나 TensorFlow!
J. Kang Ph.D.
Comparison to Mobile App Size
 대한민국 상위 앱 (안드로이드 기준, 2018 Jan)
• 카카오톡: 83.98 MB 네이버: 128 MB
• Facebook: 67.97 MB Chrome: 178 MB
31
누구나 TensorFlow!
J. Kang Ph.D.
2. CNN 모델 경량화 1
- Model compression
모델을 압축하는 방법론!
32
누구나 TensorFlow!
J. Kang Ph.D.
Model Compression
33
Model Compression
누구나 TensorFlow!
J. Kang Ph.D.
Model Compression
34
Model Compression
Model Compression
누구나 TensorFlow!
J. Kang Ph.D.
Model Compression
 목표: 어떻게 하면 성능을 유지 하면서 네트워크 용량을
줄이고 inference속도를 개선할 수 있을까?
– 네트워크 구현에 의존적 기법
• Network pruning
– With weight regularization
• Low rank approximation
– 네트워크 구현에 독립적? 기법
• Weight sharing
– With weight quantization
• Weight quantization
35
Model Compression
Model Compression
누구나 TensorFlow!
J. Kang Ph.D.
Network Pruning
 네트워크 구현에 의존적 기법
– Network pruning
• Step1) training entire weights
• Step2) weight thresholding
• Step3) fine-training the net
with remaining weights
– 장점:
• 압축된 모델의 성능이 보장됨
– 단점:
• “Training  tuning  testing”
의 파이프라인이 길다. (오래걸린다)
• 다소 노가다 성 튜닝 ㅠ
• Sparse matrix ops의 별도
의 구현이 필요하고 성능이
크게 의존한다.
• 최신 mobile CNN 모델에 적용되어
성능이 확인되지 않음
36
Image source:
https://arxiv.org/pdf/1506.02626.pdf
누구나 TensorFlow!
J. Kang Ph.D.
Network Pruning
네트워크 구현에 의존적 기법
– Network pruning
– weight값이 작은 뉴런 연결을 잘라냄
• Step1) training entire weights
• Step2) weight thresholding
• Step3) fine-training the net
with remaining weights
37
Train entire weight in
net
Weight thresholding
Making net sparse!
Fine-training on the
remaining weights
Satisfied
performance ?
Released!
Tuning
threshold
누구나 TensorFlow!
J. Kang Ph.D.
Network Pruning
네트워크 구현에 의존적 기법
– Network pruning
– weight값이 작은 뉴런 연결을 잘라냄
• Step1) training entire weights
• Step2) weight thresholding
• Step3) fine-training the net
with remaining weights
• Step4) Iterative pruning
– Weight l1-regularizer의
가중치를 조절하여 acc loss
를 확인하면서
단계적으로 punning하는 것
38
Train entire weight in
net
Weight thresholding
Making net sparse!
Fine-training on the
remaining weights
Satisfied
performance ?
Released!
Tuning
threshold
Iterative
Pruning
누구나 TensorFlow!
J. Kang Ph.D.
Network Pruning
네트워크 구현에 의존적 기법
– 장점:
• 압축된 모델의 성능이 보장됨
– 단점:
• “Training  tuning  testing”
의 파이프라인이 길다. (오래 걸린다)
• 다소 노가다 성 튜닝 ㅠ
• Sparse matrix ops의 별도
의 구현이 필요하고 성능이
크게 의존한다.
• AlexNet / VGG과 같은
over-parameterized된 모델에서 성능
이 잘나오는 것을 보이는 논문이 대다수
39
Train entire weight in
net
Weight thresholding
Making net sparse!
Fine-training on the
remaining weights
Satisfied
performance ?
Released!
Tuning
threshold
누구나 TensorFlow!
J. Kang Ph.D.
Weight Sharing
네트워크 구현에 독립적 기법
– Weight Sharing
• Step1) 레이어 안에서 한번 training 된 filter weights를 k-mean clustering하여
k개의 값으로만 표현
• Step2) weights를 k-mean으로 mapping하고 table를 공유
– k-mean에 quantization 적용가능
• Step3) Fine-training!
– 장점:
• Filter weight를 획기적으로
줄일 수 있음
– 단점
• 적절한 k에 대한 튜닝 필요
• Weight Mapping table을
이용하는 별도의 구현 필요
40
Image source: Deep
Compression
https://arxiv.org/pdf/15
10.00149.pdf
Clustered
weight
Weight Mapping
table
Original weights
누구나 TensorFlow!
J. Kang Ph.D.
Weight Quantization
네트워크 구현에 독립적 기법
 B. Jacob etal, “Quantization and Training of Neural Networks for
Efficient Integer-Arithmetic-Only Inference”, CVPR 2018
• 기존 quantization기법들은 네트워크 사이즈 경량화에만 고려함
• Float32  unit8
• 레이어 별 내부 weight값에만 quantization적용
• 레이어 간 값 전달, 즉 activation값은 float32 값 사용
–  computational bottleneck
• 본 기법은 사이즈 + 연산 속도 동시 개선
• Weight, bias, activation 모든 파이프라인을 integer modeling
• Integer-arithmetic-only matrix mul을 정의
• Qualcomm Hexagon과같은 mobile DSP에서 효율적 연산 가능!
• 일반 모바일 환경에서 속도 개선 가능성!
41
Image source:
https://arxiv.org/pdf/1712.05877.pdf
누구나 TensorFlow!
J. Kang Ph.D.
Weight Quantization
네트워크 구현에 독립적 기법
 B. Jacob etal, “Quantization and Training of Neural Networks for Efficient
Integer-Arithmetic-Only Inference”, CVPR 2018
 기존 quantization 기법들
42
Image source:
https://arxiv.org/pdf/1712.05877.pdf
float32
float32
float32
Quantize
Dequantize
uint8
Input
float32
• Weight 만 quantization!
ReLu
uint8
누구나 TensorFlow!
J. Kang Ph.D.
Weight Quantization
43
Image source:
https://arxiv.org/pdf/1712.05877.pdf
Scale down:
- logit+ activation은
uint8 표현
Cast down:
- Conv + biases연산결과는
- uint32 표현
• All quantization!
• ReLu6!
Integer-only arithmetic을
통해서 연산효율을 대폭
개선!
네트워크 구현에 독립적 기법
 B. Jacob etal, “Quantization and Training of Neural Networks for Efficient
Integer-Arithmetic-Only Inference”, CVPR 2018
 제안 quantization 기법
누구나 TensorFlow!
J. Kang Ph.D.
Weight Quantization
네트워크 구현에 독립적 기법
 B. Jacob etal, “Quantization and Training of Neural Networks for Efficient
Integer-Arithmetic-Only Inference”, CVPR 2018
44
Image source:
https://arxiv.org/pdf/1712.05877.pdf
Scale down:
- logit+ activation은
uint8 표현
Cast down:
- Conv + biases연산결과는
uint32 표현
 제안 quantization 기법
• All quantization!
• ReLu6!
Integer-only arithmetic을
통해서 연산효율을 대폭
개선!
6
누구나 TensorFlow!
J. Kang Ph.D.
Weight Quantization
네트워크 구현에 독립적 기법
 B. Jacob etal, “Quantization and Training of Neural Networks for Efficient
Integer-Arithmetic-Only Inference”, CVPR 2018
 ImageNet Latency-vs-accuracy tradeoff (over channel nums)
45
Google pixel 2
Snapdragon 835 LITTLE
Mobilenet v1, Tflite
Google pixel 1
Snapdragon 821 LITTLE
Mobilebet v1, Tflite
누구나 TensorFlow!
J. Kang Ph.D.
Weight Quantization
네트워크 구현에 독립적 기법
 B. Jacob etal, “Quantization and Training of Neural Networks for Efficient
Integer-Arithmetic-Only Inference”, CVPR 2018
 ImageNet Latency-vs-accuracy tradeoff (over channel nums)
46
Google pixel 2
Snapdragon 835 LITTLE
Mobilenet v1, Tflite
Google pixel 1
Snapdragon 821 LITTLE
Mobilebet v1, Tflite
결국 integer-only arithmetic 속도가 날려면
하드웨어가 받쳐줘야 한다.
누구나 TensorFlow!
J. Kang Ph.D.
Model Compression Remark
47
❖ 네트워크 구현과 모델 압축이 최대한 분리 해야함
• 대부분의 기법이 simulation 기반 이기 때문에 파이프라인을 자동화하고
단축하는게 중요
• Network pruning은 simulation iteration 마다 구현이 변화  E2E 자동화의
어려움
• Network pruning의 성능은 external sparse matrix lib에 매우 의존함
 Weight sharing
• Network pruning보다 파이프라인 측면에서 유리
• 마찬가지로 weight mapping 구현에 의존적
• 적절한 Cluster 개수 ”k”를 찾는 것은 노가다
 현실적으로 weight quantization이 가장 유망함
• 네크워크 구현과의 독립성
• 속도 개선을 위해서는 integer-arithmetic only operation이 필수
• 하드웨어 의존성이 높음
 모든 기법 적용 이후에 fine-training하는 것은 매우 중요!
누구나 TensorFlow!
J. Kang Ph.D.
3. CNN 모델 경량화 2
- Efficient Convolution Layer
Convolution 연산량과 파라미터 수
좀 줄여보자!
48
누구나 TensorFlow!
J. Kang Ph.D.
작고 강한 convolutional layer!
 목표: 계산 복잡도/사이즈를 줄이면서 conv layer의
표현력을 유지 할 수 있는가?
– 아직까지 많은 CNN모델들은 over-parameterized 되어 있음
• AlexNet & VGG
– Model compression방식은 근본적인 한계가 있음
• 데이터 셋에 따라서 다른 성능을 보일 수 있음
• 기존 논문 결과들이 AlexNet & VGG와 같은 모델을 ref로 많이 했었기 때문에
신뢰도가 떨어짐
• Model compression 방식은 말그대로 쥐어 짜는 것이지 근본적인 해결이 아님
– 근본적으로 convolution 연산의 계산 효율을 높일 필요가 있음!
49
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 핵심질문: 더 압축적으로 spatial local correlation을 뽑아낼 수 있는
filter를 설계할 수 는 없는가?
– MLP is a very good universal function approximator!
 Ref: Min Lin et al. “Network in Network” (2014)
– 1) Nonlinear filtering: multiplayer perceptron을 filter로 사용하자!
– 2) Cross channel pooling: input feature map간에 filter weight를 다르게 줘서
결합 (sum-up)
50
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 MLP is a very good universal function approximator!
– Conv operation은 기본적으로 local patch와 filter weight사이의
spatial local correlation을 뽑아내는 것이다.
51
Fig from standford n231 material
Output map
28 X 28 X 1
+
X
W
Y
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 MLP is a very good universal function approximator!
– Linear conv layer에서는 filtering tile(위에서 5x5) 안에 들어오는 input
feature에 대해서 weighted-sum해서 output map의 한 pixel을 생성
• 2d filtering인 경우 모든 input feature image (위에서 3개)에 대해서 동일한
weight사용
• 3d filtering인 경우 각 input feature image (위에서 3개) 에 대해서 다른 weights를 사용
52
Fig from standford n231 material
Output map
28 X 28 X 1
+
X
W
Y
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 MLP is a very good universal function approximator!
53
Fig from standford n231 material
Output map
28 X 28 X 1
+
Y[i, j,k] = X ÄW[i, j,k]
= X[i + m, j + n,k + l]W[m,n,l]
l
å
n
å
m
å
X
W
Y
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 MLP conv filter (=1x1 conv)는 어떻케 동작하는가?
– X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters,
– Y: activation,
54
X: 3x3xL
Input features
X1 X2 X3
W: 1x1xL Filter
 Single 1x1xL conv
filters (L=3,M=1)
Num of input ch
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 MLP conv filter (=1x1 conv)는 어떻케 동작하는가?
– X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters,
– Y: activation,
55
Z1
X: 3x3xL
Input features
+
w11 w12 w13
X1 X2 X3
W: 1x1xL Filter
 Single 1x1xL conv
filters (L=3,M=1)
Num of input ch
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 MLP conv filter (=1x1 conv)는 어떻케 동작하는가?
– X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters,
– Y: activation,
56
Z1
Z1
X: 3x3xL
Input features
Z: 3x3xM
Logit features
+
W: 1x1xL Filter
 Single 1x1xL conv
filters (L=3,M=1)
w11 w12 w13
X1 X2 X3
Num of input ch
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 MLP conv filter (=1x1 conv)는 어떻케 동작하는가?
– X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters,
– Y: activation,
57
Z1
Z1
Z2
X: 3x3xL
Input features
Z: 3x3xM
Logit features
+
+
W: 1x1xL Filter
 Two 1x1xL conv
filters (L=3,M=2)
w11
Z2
w12 w13
w21 w22 w23
X1 X2 X3
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 MLP conv filter (=1x1 conv)는 어떻케 동작하는가?
– X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters,
– Y: activation,
58
Z1
Z1
Z2
X: 3x3xL
Input features
Y1
Z: 3x3xM
Logit features
Y: 3x3xM
Output features
+
+
W: 1x1xL Filter
 Two 1x1xL conv
filters (L=3,M=2)
w11
Z2
Y2
w12 w13
w21 w22 w23
X1 X2 X3
Relu
nonlinearity
Relu activation
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 Cross channel Pooling
– mlpconv reduces dimension of output channels!
– Filter수가 입력 채널 수 보다 작은 경우 (L<M)
– mlpconv filter는 a 1x1 patch에 걸쳐서 모든 input channels을
weighted sum한다.
• Cross Channel pooling이라고 하는 이유!
– Local receptive field를 인식할 때 모든 Input feature의 특성을
동시에 고려
59
Z1X: 3x3xL
Input features
+
w11 w12 w13
X1 X2 X3
W: 1x1xL Filter
 Single 1x1xL conv
filters (L=3,M=1)
Num of input ch
누구나 TensorFlow!
J. Kang Ph.D.
Cross Channel Pooling
 Cross channel Pooling
– 1x1 conv filter의 개수 만큼 output channel 출력
– Filter 개수 < input channel 수 인 경우 channel pooling
60
Fig from standford n231 material
누구나 TensorFlow!
J. Kang Ph.D.
Combination of Parallel Conv Paths
 Room: Lower layers와 higher layers에서 spatial local
correlation 통계 특성이 다름
– At Lower layers:
• Role: Parts abstraction of features
• Filtering결과 high local correlation이 smaller local patches에서 나타남
– At higher layers:
• Role: Object parts abstraction by made of the lower layer outputs
• Filtering결과 high local correlation이 larger local patches에서 나타남
61Area V1 Area V2Area V3 Area V4Retina
Edges Object parts Entire objects
누구나 TensorFlow!
J. Kang Ph.D.
Combination of Parallel Conv Paths
 핵심질문: 모든 layer level에서 spatial local correlation을
범용적으로 잘 뽑아내기 위한 저복잡도 layer설계는?
 Ref: Szegedy etal, Going deeper with convolutions, 2014
Inception module!
62
누구나 TensorFlow!
J. Kang Ph.D.
Combination of Parallel Conv Paths
 핵심질문: 모든 layer level에서 spatial local correlation을
범용적으로 잘 뽑아내기 위한 저복잡도 layer설계는?
 Ref: Szegedy etal, Going deeper with convolutions, 2014
Inception module!
– 1) Combination of parallel conv paths:
• Layer input을 1x1, 3x3, 5x5 conv path로 병렬적으로 처리 한 후
concatenation해서 출력
– 2) Dimensionality reduction by 1x1 conv:
• 1x1 conv를 통해서 cross channel pooling을 수행하여 3x3, 5x5
conv에서의 연산량을 줄임
63
누구나 TensorFlow!
J. Kang Ph.D.
Combination of parallel conv paths
64
이미지 출처:
https://www.slides
hare.net/aurot/goo
glenet-insights
 Role of each conv path
– 1x1 conv : Capture correlation from very local clusters
– 3x3 conv: Capture correlation from spread-out local clusters
– 5x5 conv: Capture correlation from more spread-out clusters
누구나 TensorFlow!
J. Kang Ph.D.
Combination of parallel conv paths
65
이미지 출처:
https://www.slides
hare.net/aurot/goo
glenet-insights
 Then, concatenate them all into a single vector!
– Which is a naïve version of the inception module
누구나 TensorFlow!
J. Kang Ph.D.
Combination of parallel conv paths
66
 The Naïve inception module의 문제점
– 1) 5x5 conv의 계산량이 부담
– 2) 계속적으로 늘어나는 output feature map의 개수
• Pooling path의 output feature map 수는 input feature map수와 같음
• 다른 conv path들의 output feature map를 아무리 줄여도 concatenate 과정에서
output feature maps의 개수는 피할 수 없이 증가함
누구나 TensorFlow!
J. Kang Ph.D.
Combination of parallel conv paths
67
이미지 출처:
https://www.slides
hare.net/aurot/goo
glenet-insights
 1x1 conv (NIN) 를 dimensionality reduction용으로 사용
– Cross channel pooling!
– 문제1 해결: conv layer 입력 feature map의 개수를 줄임
– 문제2 해결: pooling layer 출력 feature map의 개수를 줄임
누구나 TensorFlow!
J. Kang Ph.D.
Combination of parallel conv paths
68
Dimensionality
reduction
Capturing correlation
From local clusters
Inception module v1
이미지 출처: Szegedy etal, Going
deeper with convolutions, 2014
Dimensionality
reduction
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
 목적: 네트워크 모델을 계층을 더 깊게 하고 싶다!
Does depth matter for deep learning ?
– 계층을 더 깊게 쌓을 수록 모델의 expressiveness는 좋아지겠지만 학습
시키기 더 어려워진다!
69
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
 목적: 네트워크 모델을 계층을 더 깊게 하고 싶다!
 ResNet Microsoft팀의 실험 결과
– 깊은 모델이 오히려 Test error 가 높음!
70
이미지출처:
https://arxiv.org/
abs/1512.03385
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
 목적: 네트워크 모델을 계층을 더 깊게 하고 싶다!
Does depth matter for deep learning ?
– 계층을 더 깊게 쌓을 수록 모델의 expressiveness는 좋아지겠지만 학습
시키기 더 어려워진다!
– 두가지 문제!
• Vanishing/Exploding Gradient 문제:
– 모델 학습에서 Backpropagation 통해서 출력 계층으로 부터 전달되는
gradient값이 계층이 깊을 수록 지수적으로 작아지는 문제
–  모델의 기형적 학습의 원인
– Batch normalization / dropout / Relu activation과 같은 기법으로 역부족
• 파라미터 개수 증가  Degradation문제:
– 층을 쌓을 수록 학습시켜야 하는 파라미터 개수가 늘어나는 문제
– 기존 훈련방식으로는 깊은 층을 가지는 모델은 오히려 성능 저하를
야기함
71
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
 Degradation problem 정의
– 모델의 계층 수를 단순하게 증가시켰을때 발생하는 성능 저하문제
– Overfitting 문제와는 달리 training error와 validation/test error가
동시에 열화됨
72
이미지출처:
https://arxiv.org/
abs/1512.03385
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
 Degradation problem 정의
– 모델의 계층 수를 단순하게 증가시켰을때 발생하는 성능 저하문제
– Overfitting 인경우 계층 수를 증가시켜도
• Validation/test error 는 증가
• Training error는 감소 또는 유지
계층 수
증가
Overfitting problem
Validation-Training err
gap 증가!
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
 Degradation problem 정의
– 모델의 계층 수를 단순하게 증가시켰을때 발생하는 성능 저하문제
• ReLu / Dropout / Batch norm은 degradation문제를 해결 하지 않음!
– 다른 방법이 필요!
74
누구나 TensorFlow!
J. Kang Ph.D.
출발지
Residual Learning
 Analogy: 도로교통 문제
75
이미지 출처:
http://www.cs.toronto.edu/~fidler/teaching/2
015/slides/CSC2523/renjie_highwayNNs.pdf
목적지
출발지A:
B:
- 출발지에서 목적지로 가는 길이 있다.
- A는 가능길에 빵사고 세탁물도 맡겨야 한다.
- B는 그냥 빨리가서 자고 싶다.
- 목적이 다른 두차가 같은 길을 달린다
누구나 TensorFlow!
J. Kang Ph.D.
출발지
Residual Learning
 Analogy: 도로교통 문제
76
이미지 출처:
http://www.cs.toronto.edu/~fidler/teaching/2
015/slides/CSC2523/renjie_highwayNNs.pdf
목적지
출발지A:
B:
- 출발지에서 목적지로 가는 길이 있다.
- A는 가능길에 빵사고 세탁물도 맡겨야 한다.
- B는 그냥 빨리가서 자고 싶다.
- 목적이 다른 두차가 같은 길을 달린다
결론: 차가막힌다.
누구나 TensorFlow!
J. Kang Ph.D.
출발지
Residual Learning
 Analogy: 도로교통 문제
77
이미지 출처:
http://www.cs.toronto.edu/~fidler/teaching/2
015/slides/CSC2523/renjie_highwayNNs.pdf
목적지
출발지
결론: 아니죠!
고속도로를 만들어야죠!
- 출발지에서 목적지로 가는 길이 있다.
- A는 가능길에 빵사고 세탁물도 맡겨야 한다.
- B는 그냥 빨리가서 자고 싶다.
- 목적이 다른 두차가 같은 길을 달린다
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
Analogy를 본 Bob 아저씨의 질문
– Conv계층의 목적은 입력채널에 대한 feature extraction!
– 근데 이미 입력 자체가 feature-like한 채널도 있지 않은가?
– 그럼 모든 입력 채널에 대해서 weight를 학습시켜야 하는가?
– 이미 feature-like한 채널이 다른 채널의 feature extraction에
악 영향을 주지 않을까?
78
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
핵심가설:
It is easier to optimize to residual mapping than do the original.
Residual networks: (Residual learning) :
– K. He etal. “Deep Residual Learning for Image Recognition,”
CVPR 2016.
– 레이어 입출력의 변화 (Residual) 에 대해서만 학습
79
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
 Residual Networks (2016)
– 핵심질문1:
• 비선형 계층을 쌓아서 어떤 복잡한 함수 “Y= H(X)”를 학습 할 수
있다면…,
• 입출력 차이 “F(X)=H(X) – X” 도 학습 할 수 있지 않을까?
– 핵심질문2:
• 입력 채널 자체가 이미 feature인 경우 (혹은 거의 근접하게
feature인경우),…
• 다시말해서 identity mapping이 optimal이거나 근접한 경우,..
• 기존 “Y=H(X)” 보다 “F(X)=H(X) – X”로 학습하는게 쉽지 않을까?
80
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
 Residual Networks (2016)
– 입출력 함수 “Y=H(X)”을 학습하는 것이 아니고
– Residual “F(X)= H(X) – X”을 학습!
81
Residual
path Shortcut
path
누구나 TensorFlow!
J. Kang Ph.D.
Residual Learning
Bob 아저씨 질문에 대한 대답
– 이미 입력 자체가 이미 feature-like한 채널도 있지 않은가?
• 있죠. 그런 채널들을 Residual network에서 shortcut path를 타고 가도록
학습이 되죠.
– 그럼 모든 입력 채널에 대해서 weight를 학습시켜야 하는가?
• Residual network에서는 자연스럽게 필요한 채널에 대해서만 weight
연산하도록 학습이 됩니다.
– 이미 feature-like 한 채널이 다른 채널의 feature extraction에
악영향을 주지 않을까?
• 기존 plain network에서는 그럴 가능성이 있습니다.
• 그것이 degradation 문제의 원인이라고 생각합니다.
82
누구나 TensorFlow!
J. Kang Ph.D.
Depthwise Separable Conv
 목적: 모바일에도 올릴 수 있는 효율적인 모델을 만들고 싶다!
– Layer width와 network depth를 무작정 늘리는 것은 가야 할 방향이
아니다!
 핵심가설: The mapping of “cross-channels correlation” and
“spatial correlation” can be entirely decoupled!
 무슨 말인가?
83
Recent advances are not necessarily making network
more efficient with respect to size and speed!!!
누구나 TensorFlow!
J. Kang Ph.D.
Depthwise Separable Conv
Cross-channel correlation:
– conv layer에 입력되는 채널 간의 비슷한 정도
84
High cross-channel correlation!
누구나 TensorFlow!
J. Kang Ph.D.
Depthwise Separable Conv
Cross-channel correlation:
– conv layer에 입력되는 채널 간의 비슷한 정도
85
Very? Low cross-channel correlation!
누구나 TensorFlow!
J. Kang Ph.D.
Depthwise Separable Conv
 Cross-channel correlation: conv layer의 입력 채널 간의
비슷한 정도
– High cross-channel correlation:
• 입력 채널 간의 상관도 높다.
• 입력 채널간 비슷한 특징을 가진다.
– Low cross-channel correlation:
• 입력 채널 간의 상관도 낮다.
• 입력 채널간 구별되는 특징을 가진다.
86
누구나 TensorFlow!
J. Kang Ph.D.
Depthwise Separable Conv
Spatial correlation:
– conv filter와 입력 채널 사이의 상관도
87
Conv filter 이미지출처: http://user-
image.logdown.io/user/136
73/blog/12890/post/30264
1/V21DnAAeTKiOirZRFKhT_
dl2.png
Low correlation
High correlation
누구나 TensorFlow!
J. Kang Ph.D.
Depthwise Separable Conv
Spatial correlation:
– conv filter와 입력 채널 사이의 상관도
– High spatial correlation: 특정 conv filter로 feature
extraction이 잘된다.
– Low spatial correlation: 특정 conv filter로 feature
extraction이 잘 안된다.
88Conv filter
누구나 TensorFlow!
J. Kang Ph.D.
Depthwise Separable Conv
 Depthwise separable conv의 핵심가설:
– The mapping of “cross-channels correlation” and “spatial
correlation” can be entirely decoupled!
– 그러니깐 “cross-channels correlation”과 “spatial correlation”
분리해서 다루겠다는 것!
89
누구나 TensorFlow!
J. Kang Ph.D.
Depthwise Separable Conv
 Depthwise separable conv
– 1) Depthwise Convolution:
• Extract spatial correlation from
a NxNx1 2D input channel
• 2D convolution with a single
K x K x 1 x(M) 2D filter
– 2) Pointwise Convolution:
• Compress NxNxL input channel to
from NxNxM output channel (M < L)
• Weighted linear mixing using
2D convolution with 1x1xLx(M)
1D conv filters
90
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
Cross Channel Pooling Revisit!
– Is 1x1 conv filtering equivalent to matrix multiplication ?
– We can look the convolution at a 1x1 pixel point (i=i*,j=j*).
– Given (M=2, L=3 case)
• Lx1x1 local patch vector, [X1,X2,X3]^T from X (3x3xL, L=3)
• two 1x1 conv filters (1x1xLxM, M=2,L=3)
• we have two different logits scalars: Z1, Z2
91
Z1
X: 3x3xL
Input features
+
w11 w12 w13
X1 X2 X3
W: 1x1xL Filter
 Single 1x1xL conv
filters (L=3,M=1)
Num of input ch
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
Cross Channel Pooling Revisit!
– Is 1x1 conv filtering equivalent to matrix multiplication ?
– We can look the convolution at a 1x1 pixel point (i=i*,j=j*).
– Given (M=2, L=3 case)
• Lx1x1 local patch vector, [X1,X2,X3]^T from X (3x3xL, L=3)
• two 1x1 conv filters (1x1xLxM, M=2,L=3)
• we have two different logits scalars: Z1, Z2
92
Z1
[i*
, j*
,k] = X[i*
, j*
,k + l]W1
[l]l=0
M-1
å
Z2
[i*
, j*
,k] = X[i*
, j*
,k + l]W2
[l]l=0
M-1
å
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
Cross Channel Pooling Revisit!
– Is 1x1 conv filtering equivalent to matrix multiplication ?
– We can look the convolution at a 1x1 pixel point (i=i*,j=j*).
– Given (M=2, L=3 case)
• Lx1x1 local patch vector, [X1,X2,X3]^T from X (3x3xL, L=3)
• two 1x1 conv filters (1x1xLxM, M=2,L=3)
• we have two different logits scalars: Z1, Z2
– These conv operations recast into a matrix-vector form:
93
Z1
Z2
é
ë
ê
ù
û
ú =
W11 W12 W13
W21 W22 W23
é
ë
ê
ê
ù
û
ú
ú
X1
X2
X3
é
ë
ê
ê
ê
ù
û
ú
ú
ú
Lx1x1 local
patch vector
Two different
logits scalars
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
Cross Channel Pooling Revisit!
– Is 1x1 conv filtering equivalent to matrix multiplication ?
– We can look the convolution at a 1x1 pixel point (i=i*,j=j*).
– Given (M=2, L=3 case)
• Lx1x1 local patch vector, [X1,X2,X3]^T from X (3x3xL, L=3)
• two 1x1 conv filters (1x1xLxM, M=2,L=3)
• we have two different logits scalars: Z1, Z2
– These conv operations recast into a matrix-vector form:
94
Z1
Z2
é
ë
ê
ù
û
ú =
W11 W12 W13
W21 W22 W23
é
ë
ê
ê
ù
û
ú
ú
X1
X2
X3
é
ë
ê
ê
ê
ù
û
ú
ú
ú
Lx1x1 local
patch vector
Two different
logits scalars
1x1xL conv1
1x1xL conv2
누구나 TensorFlow!
J. Kang Ph.D.
 Cross Channel Pooling Revisit!
– Is 1x1 conv filtering equivalent to matrix multiplication ?
– Consider a M=2 case
Linear Bottleneck
95
1x1xL conv1
1x1xL conv2
.
Input channels
1x1xNxK conv filters
Output logit
Before activation
Lx1x1 vector X
1x1xLxM
filter matrix, W
MX1 output logit Z
Z1
Z2
=
Z = W X
X1
X2
...
...
...
XL-1
XL
output
채널방향
input
채널방향
누구나 TensorFlow!
J. Kang Ph.D.
 Room1: 과도한 cross-channel pooling
– Given 1x1xL(xM) conv filters
– 1x1xL conv filter 개수, M  linear transform W의 row 개수
• “cross-channel pooling”이 되려면  M < L
• 과도한 cross-channel pooling 경우  M << L
– M<<L 경우 linear transform W이 충분한 개수의 independent
basis을 가질 수 없음
• W가 span하는 feature space의 dimensionality가 X의 정보를 보존하기에
충분하지 않음
Linear Bottleneck
96
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
 Room1: 과도한 cross-channel pooling
97
Where “dim”
indicates the
dimension of
activation space
span by W.
이미지출처:
https://arxiv.org/a
bs/1801.04381
Note: Activation
space-
(선형변환 후
feature space)
W +
Y
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
98
Room2: ReLu non-linearity에 의한 정보손실
– ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를
중요하지 않은 정보라고 판단하고 zero-mapping한다.
– An 1x1 conv example:
1x1xL conv1
1x1xL conv2
1x1xL conv3
1x1xL conv4
= .
Features
After Dwise convSet of 1x1xL conv filters
Output logit
Before activation
1X1XLXM
filter matrix, W
M X 1 output logit Z
(M=4)
Z1
> 0
Z2
< 0
Z3
< 0
Z4
> 0
X1
X2
...
...
...
XL-1
XL
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
99
Room2: ReLu non-linearity에 의한 정보손실
– ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를
중요하지 않은 정보라고 판단하고 zero-mapping한다.
– An 1x1 conv example:
1x1xL conv1
1x1xL conv2
1x1xL conv3
1x1xL conv4
= .
Features
After Dwise convSet of 1x1xL conv filters
Output logit
Before activation
1X1XLXM
filter matrix, W
M X 1 output logit Z
(M=4)
Z1
> 0
Z2
< 0
Z3
< 0
Z4
> 0
X1
X2
...
...
...
XL-1
XL
ReLu !!!!
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
100
Room2: ReLu non-linearity에 의한 정보손실
– ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를
중요하지 않은 정보라고 판단하고 zero-mapping한다.
– An 1x1 conv example:
1x1xL conv1
1x1xL conv2
1x1xL conv3
1x1xL conv4
= .
Features
After Dwise convSet of 1x1xL conv filters
Output
After activation
1X1XLXM
filter matrix, W
M X 1 output Y
(M=4)
X1
X2
...
...
...
XL-1
XL
f ( )
Y1
> 0
0
0
Y4
> 0
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
101
Room2: ReLu non-linearity에 의한 정보손실
– ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를
중요하지 않은 정보라고 판단하고 zero-mapping한다.
• Activation space의 차원수 (dimensionality) 를 제한할 수 있음
• ReLu에 의해서 다음이 일어난때 정보손실이 발생
X manifold 차원수 <= activation space (WX) 차원수
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
102
Room2: ReLu non-linearity에 의한 정보손실
– ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를
중요하지 않은 정보라고 판단하고 zero-mapping한다.
• Activation space의 차원수 (dimensionality) 를 제한할 수 있음
• ReLu에 의해서 다음이 일어난때 정보손실이 발생
X manifold 차원수 <= activation space (WX) 차원수
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
Mobilenet v2!
 핵심질문: X의 정보를 효과적으로 보존하기 위해서는 conv
layer의 구조를 어떻게 구성해야 하는가?
- Mark Sandler et al. “MobileNetV2: Inverted Residuals and Linear Bottlenecks”, CoRR, 2017.
103
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
 핵심질문: Linear bottleneck의 삽입은 어떻케 ReLu non-
linearity에 의한 정보손실을 해결하는가?
 기존 Depthwise-separable conv (Mobilenet v1):
– Q1) 마지막 Relu를 수행 전에 channel pooling을 수행해서 activation
space를 먼저 제한할 필요 없지 않은가?
104
Dwise Conv
3x3x1/s
Pwise Conv
1x1xLxM
(M < L)
BN ReLu6 BN ReLu6
Ch in
X
NxNxL
Ch out
Y
NxNxM
Feature maps
NxNxL
Feature map
NxNxM
Spatial
Feature extraction
Channel
Pooling
누구나 TensorFlow!
J. Kang Ph.D.
Linear Bottleneck
 핵심질문: Linear bottleneck의 삽입은 어떻케 ReLu non-
linearity에 의한 정보손실을 해결하는가?
 Depthwise-separable conv (Mobilenet v2):
– Linear Bottleneck: Channel pooling을 Depthwise separable conv 밖으로 !
• Depthwise-separable conv 내부 Pwise conv에서 channel pooling 수행X
• ReLu non-linearity를 linear bottleneck에서 보완할 수 있도록 학습됨 (soft pooling)
105
Dwise
Conv
3x3x1/s
Linear
Bottleneck
1x1xLxM
(L>M)
Ch in
X
NxNxL
Ch out
Y
NxNxM
Feature maps
NxNxL
Feature map
NxNxL
Spatial
Feature extraction
Channel
Pooling
BN
ReLu6
Pwise
Conv
1x1xLxL
B
N
BN
ReLu6
누구나 TensorFlow!
J. Kang Ph.D.
Efficient Convolution Remarks
106
❖ CNN 모델은 2016을 기점으로 사이즈를 늘려서 성능을 개선시키는
방향보다, 효율적인 작은 모델을 연구 하는 방향으로 가는 추세
• 초창기에 제안된 AlexNet & VGG와 같은 모델은 과도하게 많은 파라미터를
포함하는 모델로 인식되어 앞으로 사용되지 않을 것임
❖ 모델들이 서로의 장점을 적극적으로 도입하여 성능을 개선
• 결국 모든 모델 안의 conv layer 구조가 서로 닮아가는 추세
• 결국 함께 conv layer라는 것을 알아가는게 아닐까..
• Cross channel pooling
• Depthwise separable conv
• Residual learning
• Linear bottleneck
• Groupwise convolution
• Network search
 추가적으로 모델의 전체 accuracy-size+comp의 trade off를 조절할 수
있는 meta parameter를 설정하는 것은 매우 중요
– 채널 수
– Feature resolution
누구나 TensorFlow!
J. Kang Ph.D.
Android 개발자 MoT로 가즈아ㅏㅏㅏ!
더 궁금하시면?
– MoT로 오세요! 같이 공부해요!
– 머신러닝에 관심있는 열정많은 안드로이드 개발자 모집중!
107
MoT로
가으자!!!!
우르르…
누구나 TensorFlow!
J. Kang Ph.D.
모두연 MoT랩 소개
자신의 모델을 모바일에 올려보고 싶은 분들 같이
해봐요!
후원, 참여 환영합니다!
 https://motlabs.github.io/
 https://www.facebook.com/lab4all/posts/761099760749661
 jwkang10@gmail.com 로 메일
Keywords:
– CNN / RNN module
– Model Compression
– Tensorflow Lite
– CoreML
– MLkit
– Android / iOS
108
누구나 TensorFlow!
J. Kang Ph.D. 109
누구나 TensorFlow!
J. Kang Ph.D. 110
The End
Mobile Vision Learning 2018
- All right reserved @ Jaewook Kang 2018

Contenu connexe

Tendances

[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우
NAVER D2
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
NAVER D2
 
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
NAVER D2
 
[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽
NAVER D2
 

Tendances (20)

기계 학습의 현재와 미래
기계 학습의 현재와 미래기계 학습의 현재와 미래
기계 학습의 현재와 미래
 
[Tf2017] day2 jwkang_pub
[Tf2017] day2 jwkang_pub[Tf2017] day2 jwkang_pub
[Tf2017] day2 jwkang_pub
 
개인 일정관리에 Agile을 끼얹으면?
개인 일정관리에 Agile을 끼얹으면?개인 일정관리에 Agile을 끼얹으면?
개인 일정관리에 Agile을 끼얹으면?
 
[Tf2017] day3 jwkang_pub
[Tf2017] day3 jwkang_pub[Tf2017] day3 jwkang_pub
[Tf2017] day3 jwkang_pub
 
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...
 
인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기
 
인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용
 
순환신경망(Recurrent neural networks) 개요
순환신경망(Recurrent neural networks) 개요순환신경망(Recurrent neural networks) 개요
순환신경망(Recurrent neural networks) 개요
 
[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우
 
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크Deepcheck, 딥러닝 기반의 얼굴인식 출석체크
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
 
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning
 
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽
 
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)
 

Similaire à 180624 mobile visionnet_baeksucon_jwkang_pub

Similaire à 180624 mobile visionnet_baeksucon_jwkang_pub (20)

스마트폰 위의 딥러닝
스마트폰 위의 딥러닝스마트폰 위의 딥러닝
스마트폰 위의 딥러닝
 
Deep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniquesDeep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniques
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
Review MLP Mixer
Review MLP MixerReview MLP Mixer
Review MLP Mixer
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD
 
Nationality recognition
Nationality recognitionNationality recognition
Nationality recognition
 
딥러닝 논문읽기 efficient netv2 논문리뷰
딥러닝 논문읽기 efficient netv2  논문리뷰딥러닝 논문읽기 efficient netv2  논문리뷰
딥러닝 논문읽기 efficient netv2 논문리뷰
 
I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)
 
AUTOML
AUTOMLAUTOML
AUTOML
 
Automl
AutomlAutoml
Automl
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
Basics of deep learning_imcloud
Basics of deep learning_imcloudBasics of deep learning_imcloud
Basics of deep learning_imcloud
 
Designing more efficient convolution neural network
Designing more efficient convolution neural networkDesigning more efficient convolution neural network
Designing more efficient convolution neural network
 
Designing more efficient convolution neural network
Designing more efficient convolution neural networkDesigning more efficient convolution neural network
Designing more efficient convolution neural network
 
[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준
 
Unsupervised Clickstream Clustering for User Behavior Analysis CHI2016
Unsupervised Clickstream Clustering for User Behavior Analysis CHI2016Unsupervised Clickstream Clustering for User Behavior Analysis CHI2016
Unsupervised Clickstream Clustering for User Behavior Analysis CHI2016
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요
 
딥뉴럴넷 클러스터링 실패기
딥뉴럴넷 클러스터링 실패기딥뉴럴넷 클러스터링 실패기
딥뉴럴넷 클러스터링 실패기
 
네이버 NLP Challenge 후기
네이버 NLP Challenge 후기네이버 NLP Challenge 후기
네이버 NLP Challenge 후기
 
[PR12] image super resolution using deep convolutional networks
[PR12] image super resolution using deep convolutional networks[PR12] image super resolution using deep convolutional networks
[PR12] image super resolution using deep convolutional networks
 

Plus de Jaewook. Kang

Plus de Jaewook. Kang (9)

190111 tf2 preview_jwkang_pub
190111 tf2 preview_jwkang_pub190111 tf2 preview_jwkang_pub
190111 tf2 preview_jwkang_pub
 
Cloud tpu jae_180814
Cloud tpu jae_180814Cloud tpu jae_180814
Cloud tpu jae_180814
 
Life is stair-like
Life is stair-likeLife is stair-like
Life is stair-like
 
A Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB SimulinkA Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB Simulink
 
A Simple Communication System Design Lab #3 with MATLAB Simulink
A Simple Communication System Design Lab #3 with MATLAB SimulinkA Simple Communication System Design Lab #3 with MATLAB Simulink
A Simple Communication System Design Lab #3 with MATLAB Simulink
 
A Simple Communication System Design Lab #2 with MATLAB Simulink
A Simple Communication System Design Lab #2 with MATLAB SimulinkA Simple Communication System Design Lab #2 with MATLAB Simulink
A Simple Communication System Design Lab #2 with MATLAB Simulink
 
A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink
 
Jaewook Kang's Phd final defense @ 20151117
Jaewook Kang's  Phd final defense @ 20151117Jaewook Kang's  Phd final defense @ 20151117
Jaewook Kang's Phd final defense @ 20151117
 
Introduction to Soundlly 2nd screen services and technology: Seminar in 금오공대 ...
Introduction to Soundlly 2nd screen services and technology: Seminar in 금오공대 ...Introduction to Soundlly 2nd screen services and technology: Seminar in 금오공대 ...
Introduction to Soundlly 2nd screen services and technology: Seminar in 금오공대 ...
 

180624 mobile visionnet_baeksucon_jwkang_pub

  • 1. 누구나 TensorFlow! J. Kang Ph.D. 모바일 ML을 위한 비전모델 쥐어짜보즈아! Model compression, Efficient convolution Jaewook Kang, Ph.D. jwkang10@gmail.com June. 2018 1 © 2018 MoT Labs All Rights Reserved
  • 2. 누구나 TensorFlow! J. Kang Ph.D.  GIST EEC Ph.D. (2015)  연구팀 리더 (~2018 5)  모두의 연구소 MoT 연구실 리더  좋아하는 것:  통계적 신호처리 / 무선통신 신호처리  C++ Native 라이브러리 구현  Mobile Machine learning  수영 덕력 6년  현재 겁도 없이 백수 중… 2 Jaewook Kang (강재욱) 소 개
  • 3. 누구나 TensorFlow! J. Kang Ph.D. 1. 모바일에서 머신러닝을 한다는것 - Why on-device ML? - 해결해줘야 하는 부분 3
  • 4. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 Why on-device ML? – Cloud ML의 제약 • UX 측면 4
  • 5. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 Why on-device ML? – Cloud ML의 제약 • UX 측면 – 서비스 반응 속도= » 입력 데이터 업로드시간 » +클라우드 Inference 시간 » +결과 다운로드 시간 5
  • 6. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 Why on-device ML? – Cloud ML의 제약 • UX 측면 – 서비스 반응 속도 – 오프라인 상황 6
  • 7. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 Why on-device ML? – Cloud ML의 제약 • 데이터 소모 측면 – Inference할때마다 » server call 필요 » 입력데이터 업로드 필요 – 큰 데이터 소비 APP  순삭 ㅠ 7
  • 8. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 Why on-device ML? – Cloud ML의 제약 • 프라이버시 측면 – 개인화   프라이버시 – 개인화 서비스는 받고 싶은데 내데이터를 주는 건 싫다? • 데이터 퓨젼의 어려움 – 한 클라우드 서비스에서 다양한 개인정보를 수집하기 어려움 » 모바일: 위치정보 / 사진 / 영상 /오디오 8
  • 9. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 해결해줘야 하는 부분 – UX + 비용 측면  On-device inference • 반응 속도 (Fast Response) • 배터리 (Efficient Computation) • 모델 사이즈 • 메모리 제한? – 프라이버시 측면 On-device training • 다른 사람 말고 내 얼굴을 잘 인식해라 이놈아 • Transfer learning? • Personal Data fusion 9
  • 10. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 해결해줘야 하는 부분 – UX + 비용 측면  On-device inference • 반응 속도 (Fast Response) • 배터리 (Efficient Computation) • 모델 사이즈 • 메모리 제한? – 프라이버시 측면 On-device training • 다른 사람 말고 내 얼굴을 잘 인식해라 이놈아 • Transfer learning? • Personal Data fusion 10
  • 11. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 11 - 하이퍼커넥트 신범준님 발표자료 중 -
  • 12. 누구나 TensorFlow! J. Kang Ph.D. 2. Recent Trends of Vision Networks - CNN Concept - Recent Trends 12
  • 13. 누구나 TensorFlow! J. Kang Ph.D. Some References  Standford cs231n 2018 – http://cs231n.stanford.edu 13
  • 14. 누구나 TensorFlow! J. Kang Ph.D. 질문: 계산량이 가장 많고 프라이버시에 민감하며 동시에 정보량이 가장 큰 데이터? 14
  • 15. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 계산량이 가장 많고 프라이버시에 민감하며 동시에 정보량이 가장 큰 데이터? 15 이미지출처: http://cs231n.stanford.edu
  • 16. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 계산량이 가장 많고 프라이버시에 민감하며 동시에 정보량이 가장 큰 데이터? 16 이미지출처: http://cs231n.stanford.edu
  • 17. 누구나 TensorFlow! J. Kang Ph.D. Convolutional Neural Networks (CNN) Convolutional neural network (CNN) 는 아주 중요하게 되었습니다. – 시각인식 – 신호처리 – 분석 도구 17 이미지출처: http://cs231n.stanford.edu
  • 18. 누구나 TensorFlow! J. Kang Ph.D. CNN is Biologically Inspired! Emerged from the study of the brain’s visual cortex – Visual system의 뉴런은 전체를 보지 않는다! 18 이미지출처: https://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn
  • 19. 누구나 TensorFlow! J. Kang Ph.D. CNN - Why Convolution?  https://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn 19
  • 20. 누구나 TensorFlow! J. Kang Ph.D. CNN - Why Convolution?  https://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn 20
  • 21. 누구나 TensorFlow! J. Kang Ph.D. CNN is Biologically Inspired! Emerged from the study of the brain’s visual cortex – 상위 layer의 뉴런은 에서는 Retina 뉴런에서 인식한 ”Low-level features”를 복합적으로 결합하여 “High-level features”를 구성한다. – High-level feature들은 단계적으로 결합되어 “Entire objects pattern”를 구성하고 뇌에서 인지 한다. 21 이미지출처: https://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn Area V1 Area V2 Area V3 Area V4Retina Edges Object parts Entire objects
  • 22. 누구나 TensorFlow! J. Kang Ph.D. CNN을 한마디로 요약하면? Convolutional Neural Networks (CNN) 22 1) 이미지의 지역적 특징 (1D/2D~nD)을 구분해서 추출하고 2) 추출한 특징을 계층적으로 조립하여 3) 전체 이미지를 인식 한 후 판단/추론 하는 모델 이미지출처: https://www.safaribooksonline.com/library/view/learning-tensorflow/9781491978504/ch04.html Logit: Z Input: X
  • 23. 누구나 TensorFlow! J. Kang Ph.D. CNN을 한마디로 요약하면? Convolutional Neural Networks (CNN) 23 1) Fully- connected 2) Convolutionally -connected 이미지출처: https://www.safaribooksonline.com/library/view/learning-tensorflow/9781491978504/ch04.html Logit: Z Input: X y = f (W ×x + b) y = f (W ⊙x + b)
  • 24. 누구나 TensorFlow! J. Kang Ph.D. CNN을 한마디로 요약하면? Convolutional Neural Networks (CNN) 24 1) Convolutionally –connected - 모델의 parameter 개수가 줄어든다 - 모델 연산이 줄어든다. 이미지출처: https://www.safaribooksonline.com/library/view/learning-tensorflow/9781491978504/ch04.html Logit: Z Input: X
  • 25. 누구나 TensorFlow! J. Kang Ph.D. CNN을 한마디로 요약하면? Convolutional Neural Networks (CNN) 25 1) Convolutional –connected - 모델의 parameter 개수가 줄어든다  Weight sharing - 모델 연산이 줄어든다.  Sparse connectivity 이미지출처: https://www.safaribooksonline.com/library/view/learning-tensorflow/9781491978504/ch04.html Logit: Z Input: X
  • 26. 누구나 TensorFlow! J. Kang Ph.D. CNN을 구성하는 layers – Convolutional layer • Generation of feature map (layer output) • Local feature reception and combination – Pooling layer • Spatial / temporal sub-sampling of features 26
  • 27. 누구나 TensorFlow! J. Kang Ph.D. CNN Basic Architectures Stacking of (Conv layer + pooling layer) – 기본적으로 Conv layer + pool layer를 쌓는 방식 – Output layer 바로 전 몇 단은 FNN을 쌓는다 – Application에 따라서 다양한 configuration이 존재 27
  • 28. 누구나 TensorFlow! J. Kang Ph.D. 모바일 머신러닝 계산량이 가장 많고 프라이버시에 민감하며 동시에 정보량이 가장 큰 데이터? 28 이미지출처: http://cs231n.stanford.edu
  • 29. 누구나 TensorFlow! J. Kang Ph.D. 29 이미지출처: http://cs231n.stanford.edu ImageNet Top-5 error rate
  • 30. 누구나 TensorFlow! J. Kang Ph.D. CNN Benchmark Map (~2015)  목적: 모바일에도 올릴 수 있는 효율적인 모델을 만들고 싶다! 30 https://www.topbots.com/a-brief-history-of- neural-network-architectures/ Good Region Bad Region
  • 31. 누구나 TensorFlow! J. Kang Ph.D. Comparison to Mobile App Size  대한민국 상위 앱 (안드로이드 기준, 2018 Jan) • 카카오톡: 83.98 MB 네이버: 128 MB • Facebook: 67.97 MB Chrome: 178 MB 31
  • 32. 누구나 TensorFlow! J. Kang Ph.D. 2. CNN 모델 경량화 1 - Model compression 모델을 압축하는 방법론! 32
  • 33. 누구나 TensorFlow! J. Kang Ph.D. Model Compression 33 Model Compression
  • 34. 누구나 TensorFlow! J. Kang Ph.D. Model Compression 34 Model Compression Model Compression
  • 35. 누구나 TensorFlow! J. Kang Ph.D. Model Compression  목표: 어떻게 하면 성능을 유지 하면서 네트워크 용량을 줄이고 inference속도를 개선할 수 있을까? – 네트워크 구현에 의존적 기법 • Network pruning – With weight regularization • Low rank approximation – 네트워크 구현에 독립적? 기법 • Weight sharing – With weight quantization • Weight quantization 35 Model Compression Model Compression
  • 36. 누구나 TensorFlow! J. Kang Ph.D. Network Pruning  네트워크 구현에 의존적 기법 – Network pruning • Step1) training entire weights • Step2) weight thresholding • Step3) fine-training the net with remaining weights – 장점: • 압축된 모델의 성능이 보장됨 – 단점: • “Training  tuning  testing” 의 파이프라인이 길다. (오래걸린다) • 다소 노가다 성 튜닝 ㅠ • Sparse matrix ops의 별도 의 구현이 필요하고 성능이 크게 의존한다. • 최신 mobile CNN 모델에 적용되어 성능이 확인되지 않음 36 Image source: https://arxiv.org/pdf/1506.02626.pdf
  • 37. 누구나 TensorFlow! J. Kang Ph.D. Network Pruning 네트워크 구현에 의존적 기법 – Network pruning – weight값이 작은 뉴런 연결을 잘라냄 • Step1) training entire weights • Step2) weight thresholding • Step3) fine-training the net with remaining weights 37 Train entire weight in net Weight thresholding Making net sparse! Fine-training on the remaining weights Satisfied performance ? Released! Tuning threshold
  • 38. 누구나 TensorFlow! J. Kang Ph.D. Network Pruning 네트워크 구현에 의존적 기법 – Network pruning – weight값이 작은 뉴런 연결을 잘라냄 • Step1) training entire weights • Step2) weight thresholding • Step3) fine-training the net with remaining weights • Step4) Iterative pruning – Weight l1-regularizer의 가중치를 조절하여 acc loss 를 확인하면서 단계적으로 punning하는 것 38 Train entire weight in net Weight thresholding Making net sparse! Fine-training on the remaining weights Satisfied performance ? Released! Tuning threshold Iterative Pruning
  • 39. 누구나 TensorFlow! J. Kang Ph.D. Network Pruning 네트워크 구현에 의존적 기법 – 장점: • 압축된 모델의 성능이 보장됨 – 단점: • “Training  tuning  testing” 의 파이프라인이 길다. (오래 걸린다) • 다소 노가다 성 튜닝 ㅠ • Sparse matrix ops의 별도 의 구현이 필요하고 성능이 크게 의존한다. • AlexNet / VGG과 같은 over-parameterized된 모델에서 성능 이 잘나오는 것을 보이는 논문이 대다수 39 Train entire weight in net Weight thresholding Making net sparse! Fine-training on the remaining weights Satisfied performance ? Released! Tuning threshold
  • 40. 누구나 TensorFlow! J. Kang Ph.D. Weight Sharing 네트워크 구현에 독립적 기법 – Weight Sharing • Step1) 레이어 안에서 한번 training 된 filter weights를 k-mean clustering하여 k개의 값으로만 표현 • Step2) weights를 k-mean으로 mapping하고 table를 공유 – k-mean에 quantization 적용가능 • Step3) Fine-training! – 장점: • Filter weight를 획기적으로 줄일 수 있음 – 단점 • 적절한 k에 대한 튜닝 필요 • Weight Mapping table을 이용하는 별도의 구현 필요 40 Image source: Deep Compression https://arxiv.org/pdf/15 10.00149.pdf Clustered weight Weight Mapping table Original weights
  • 41. 누구나 TensorFlow! J. Kang Ph.D. Weight Quantization 네트워크 구현에 독립적 기법  B. Jacob etal, “Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”, CVPR 2018 • 기존 quantization기법들은 네트워크 사이즈 경량화에만 고려함 • Float32  unit8 • 레이어 별 내부 weight값에만 quantization적용 • 레이어 간 값 전달, 즉 activation값은 float32 값 사용 –  computational bottleneck • 본 기법은 사이즈 + 연산 속도 동시 개선 • Weight, bias, activation 모든 파이프라인을 integer modeling • Integer-arithmetic-only matrix mul을 정의 • Qualcomm Hexagon과같은 mobile DSP에서 효율적 연산 가능! • 일반 모바일 환경에서 속도 개선 가능성! 41 Image source: https://arxiv.org/pdf/1712.05877.pdf
  • 42. 누구나 TensorFlow! J. Kang Ph.D. Weight Quantization 네트워크 구현에 독립적 기법  B. Jacob etal, “Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”, CVPR 2018  기존 quantization 기법들 42 Image source: https://arxiv.org/pdf/1712.05877.pdf float32 float32 float32 Quantize Dequantize uint8 Input float32 • Weight 만 quantization! ReLu uint8
  • 43. 누구나 TensorFlow! J. Kang Ph.D. Weight Quantization 43 Image source: https://arxiv.org/pdf/1712.05877.pdf Scale down: - logit+ activation은 uint8 표현 Cast down: - Conv + biases연산결과는 - uint32 표현 • All quantization! • ReLu6! Integer-only arithmetic을 통해서 연산효율을 대폭 개선! 네트워크 구현에 독립적 기법  B. Jacob etal, “Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”, CVPR 2018  제안 quantization 기법
  • 44. 누구나 TensorFlow! J. Kang Ph.D. Weight Quantization 네트워크 구현에 독립적 기법  B. Jacob etal, “Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”, CVPR 2018 44 Image source: https://arxiv.org/pdf/1712.05877.pdf Scale down: - logit+ activation은 uint8 표현 Cast down: - Conv + biases연산결과는 uint32 표현  제안 quantization 기법 • All quantization! • ReLu6! Integer-only arithmetic을 통해서 연산효율을 대폭 개선! 6
  • 45. 누구나 TensorFlow! J. Kang Ph.D. Weight Quantization 네트워크 구현에 독립적 기법  B. Jacob etal, “Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”, CVPR 2018  ImageNet Latency-vs-accuracy tradeoff (over channel nums) 45 Google pixel 2 Snapdragon 835 LITTLE Mobilenet v1, Tflite Google pixel 1 Snapdragon 821 LITTLE Mobilebet v1, Tflite
  • 46. 누구나 TensorFlow! J. Kang Ph.D. Weight Quantization 네트워크 구현에 독립적 기법  B. Jacob etal, “Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”, CVPR 2018  ImageNet Latency-vs-accuracy tradeoff (over channel nums) 46 Google pixel 2 Snapdragon 835 LITTLE Mobilenet v1, Tflite Google pixel 1 Snapdragon 821 LITTLE Mobilebet v1, Tflite 결국 integer-only arithmetic 속도가 날려면 하드웨어가 받쳐줘야 한다.
  • 47. 누구나 TensorFlow! J. Kang Ph.D. Model Compression Remark 47 ❖ 네트워크 구현과 모델 압축이 최대한 분리 해야함 • 대부분의 기법이 simulation 기반 이기 때문에 파이프라인을 자동화하고 단축하는게 중요 • Network pruning은 simulation iteration 마다 구현이 변화  E2E 자동화의 어려움 • Network pruning의 성능은 external sparse matrix lib에 매우 의존함  Weight sharing • Network pruning보다 파이프라인 측면에서 유리 • 마찬가지로 weight mapping 구현에 의존적 • 적절한 Cluster 개수 ”k”를 찾는 것은 노가다  현실적으로 weight quantization이 가장 유망함 • 네크워크 구현과의 독립성 • 속도 개선을 위해서는 integer-arithmetic only operation이 필수 • 하드웨어 의존성이 높음  모든 기법 적용 이후에 fine-training하는 것은 매우 중요!
  • 48. 누구나 TensorFlow! J. Kang Ph.D. 3. CNN 모델 경량화 2 - Efficient Convolution Layer Convolution 연산량과 파라미터 수 좀 줄여보자! 48
  • 49. 누구나 TensorFlow! J. Kang Ph.D. 작고 강한 convolutional layer!  목표: 계산 복잡도/사이즈를 줄이면서 conv layer의 표현력을 유지 할 수 있는가? – 아직까지 많은 CNN모델들은 over-parameterized 되어 있음 • AlexNet & VGG – Model compression방식은 근본적인 한계가 있음 • 데이터 셋에 따라서 다른 성능을 보일 수 있음 • 기존 논문 결과들이 AlexNet & VGG와 같은 모델을 ref로 많이 했었기 때문에 신뢰도가 떨어짐 • Model compression 방식은 말그대로 쥐어 짜는 것이지 근본적인 해결이 아님 – 근본적으로 convolution 연산의 계산 효율을 높일 필요가 있음! 49
  • 50. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  핵심질문: 더 압축적으로 spatial local correlation을 뽑아낼 수 있는 filter를 설계할 수 는 없는가? – MLP is a very good universal function approximator!  Ref: Min Lin et al. “Network in Network” (2014) – 1) Nonlinear filtering: multiplayer perceptron을 filter로 사용하자! – 2) Cross channel pooling: input feature map간에 filter weight를 다르게 줘서 결합 (sum-up) 50
  • 51. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  MLP is a very good universal function approximator! – Conv operation은 기본적으로 local patch와 filter weight사이의 spatial local correlation을 뽑아내는 것이다. 51 Fig from standford n231 material Output map 28 X 28 X 1 + X W Y
  • 52. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  MLP is a very good universal function approximator! – Linear conv layer에서는 filtering tile(위에서 5x5) 안에 들어오는 input feature에 대해서 weighted-sum해서 output map의 한 pixel을 생성 • 2d filtering인 경우 모든 input feature image (위에서 3개)에 대해서 동일한 weight사용 • 3d filtering인 경우 각 input feature image (위에서 3개) 에 대해서 다른 weights를 사용 52 Fig from standford n231 material Output map 28 X 28 X 1 + X W Y
  • 53. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  MLP is a very good universal function approximator! 53 Fig from standford n231 material Output map 28 X 28 X 1 + Y[i, j,k] = X ÄW[i, j,k] = X[i + m, j + n,k + l]W[m,n,l] l å n å m å X W Y
  • 54. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  MLP conv filter (=1x1 conv)는 어떻케 동작하는가? – X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters, – Y: activation, 54 X: 3x3xL Input features X1 X2 X3 W: 1x1xL Filter  Single 1x1xL conv filters (L=3,M=1) Num of input ch
  • 55. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  MLP conv filter (=1x1 conv)는 어떻케 동작하는가? – X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters, – Y: activation, 55 Z1 X: 3x3xL Input features + w11 w12 w13 X1 X2 X3 W: 1x1xL Filter  Single 1x1xL conv filters (L=3,M=1) Num of input ch
  • 56. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  MLP conv filter (=1x1 conv)는 어떻케 동작하는가? – X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters, – Y: activation, 56 Z1 Z1 X: 3x3xL Input features Z: 3x3xM Logit features + W: 1x1xL Filter  Single 1x1xL conv filters (L=3,M=1) w11 w12 w13 X1 X2 X3 Num of input ch
  • 57. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  MLP conv filter (=1x1 conv)는 어떻케 동작하는가? – X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters, – Y: activation, 57 Z1 Z1 Z2 X: 3x3xL Input features Z: 3x3xM Logit features + + W: 1x1xL Filter  Two 1x1xL conv filters (L=3,M=2) w11 Z2 w12 w13 w21 w22 w23 X1 X2 X3
  • 58. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  MLP conv filter (=1x1 conv)는 어떻케 동작하는가? – X : input (L=3개채널), Z: logit with M=2, 1x1xL conv filters, – Y: activation, 58 Z1 Z1 Z2 X: 3x3xL Input features Y1 Z: 3x3xM Logit features Y: 3x3xM Output features + + W: 1x1xL Filter  Two 1x1xL conv filters (L=3,M=2) w11 Z2 Y2 w12 w13 w21 w22 w23 X1 X2 X3 Relu nonlinearity Relu activation
  • 59. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  Cross channel Pooling – mlpconv reduces dimension of output channels! – Filter수가 입력 채널 수 보다 작은 경우 (L<M) – mlpconv filter는 a 1x1 patch에 걸쳐서 모든 input channels을 weighted sum한다. • Cross Channel pooling이라고 하는 이유! – Local receptive field를 인식할 때 모든 Input feature의 특성을 동시에 고려 59 Z1X: 3x3xL Input features + w11 w12 w13 X1 X2 X3 W: 1x1xL Filter  Single 1x1xL conv filters (L=3,M=1) Num of input ch
  • 60. 누구나 TensorFlow! J. Kang Ph.D. Cross Channel Pooling  Cross channel Pooling – 1x1 conv filter의 개수 만큼 output channel 출력 – Filter 개수 < input channel 수 인 경우 channel pooling 60 Fig from standford n231 material
  • 61. 누구나 TensorFlow! J. Kang Ph.D. Combination of Parallel Conv Paths  Room: Lower layers와 higher layers에서 spatial local correlation 통계 특성이 다름 – At Lower layers: • Role: Parts abstraction of features • Filtering결과 high local correlation이 smaller local patches에서 나타남 – At higher layers: • Role: Object parts abstraction by made of the lower layer outputs • Filtering결과 high local correlation이 larger local patches에서 나타남 61Area V1 Area V2Area V3 Area V4Retina Edges Object parts Entire objects
  • 62. 누구나 TensorFlow! J. Kang Ph.D. Combination of Parallel Conv Paths  핵심질문: 모든 layer level에서 spatial local correlation을 범용적으로 잘 뽑아내기 위한 저복잡도 layer설계는?  Ref: Szegedy etal, Going deeper with convolutions, 2014 Inception module! 62
  • 63. 누구나 TensorFlow! J. Kang Ph.D. Combination of Parallel Conv Paths  핵심질문: 모든 layer level에서 spatial local correlation을 범용적으로 잘 뽑아내기 위한 저복잡도 layer설계는?  Ref: Szegedy etal, Going deeper with convolutions, 2014 Inception module! – 1) Combination of parallel conv paths: • Layer input을 1x1, 3x3, 5x5 conv path로 병렬적으로 처리 한 후 concatenation해서 출력 – 2) Dimensionality reduction by 1x1 conv: • 1x1 conv를 통해서 cross channel pooling을 수행하여 3x3, 5x5 conv에서의 연산량을 줄임 63
  • 64. 누구나 TensorFlow! J. Kang Ph.D. Combination of parallel conv paths 64 이미지 출처: https://www.slides hare.net/aurot/goo glenet-insights  Role of each conv path – 1x1 conv : Capture correlation from very local clusters – 3x3 conv: Capture correlation from spread-out local clusters – 5x5 conv: Capture correlation from more spread-out clusters
  • 65. 누구나 TensorFlow! J. Kang Ph.D. Combination of parallel conv paths 65 이미지 출처: https://www.slides hare.net/aurot/goo glenet-insights  Then, concatenate them all into a single vector! – Which is a naïve version of the inception module
  • 66. 누구나 TensorFlow! J. Kang Ph.D. Combination of parallel conv paths 66  The Naïve inception module의 문제점 – 1) 5x5 conv의 계산량이 부담 – 2) 계속적으로 늘어나는 output feature map의 개수 • Pooling path의 output feature map 수는 input feature map수와 같음 • 다른 conv path들의 output feature map를 아무리 줄여도 concatenate 과정에서 output feature maps의 개수는 피할 수 없이 증가함
  • 67. 누구나 TensorFlow! J. Kang Ph.D. Combination of parallel conv paths 67 이미지 출처: https://www.slides hare.net/aurot/goo glenet-insights  1x1 conv (NIN) 를 dimensionality reduction용으로 사용 – Cross channel pooling! – 문제1 해결: conv layer 입력 feature map의 개수를 줄임 – 문제2 해결: pooling layer 출력 feature map의 개수를 줄임
  • 68. 누구나 TensorFlow! J. Kang Ph.D. Combination of parallel conv paths 68 Dimensionality reduction Capturing correlation From local clusters Inception module v1 이미지 출처: Szegedy etal, Going deeper with convolutions, 2014 Dimensionality reduction
  • 69. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning  목적: 네트워크 모델을 계층을 더 깊게 하고 싶다! Does depth matter for deep learning ? – 계층을 더 깊게 쌓을 수록 모델의 expressiveness는 좋아지겠지만 학습 시키기 더 어려워진다! 69
  • 70. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning  목적: 네트워크 모델을 계층을 더 깊게 하고 싶다!  ResNet Microsoft팀의 실험 결과 – 깊은 모델이 오히려 Test error 가 높음! 70 이미지출처: https://arxiv.org/ abs/1512.03385
  • 71. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning  목적: 네트워크 모델을 계층을 더 깊게 하고 싶다! Does depth matter for deep learning ? – 계층을 더 깊게 쌓을 수록 모델의 expressiveness는 좋아지겠지만 학습 시키기 더 어려워진다! – 두가지 문제! • Vanishing/Exploding Gradient 문제: – 모델 학습에서 Backpropagation 통해서 출력 계층으로 부터 전달되는 gradient값이 계층이 깊을 수록 지수적으로 작아지는 문제 –  모델의 기형적 학습의 원인 – Batch normalization / dropout / Relu activation과 같은 기법으로 역부족 • 파라미터 개수 증가  Degradation문제: – 층을 쌓을 수록 학습시켜야 하는 파라미터 개수가 늘어나는 문제 – 기존 훈련방식으로는 깊은 층을 가지는 모델은 오히려 성능 저하를 야기함 71
  • 72. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning  Degradation problem 정의 – 모델의 계층 수를 단순하게 증가시켰을때 발생하는 성능 저하문제 – Overfitting 문제와는 달리 training error와 validation/test error가 동시에 열화됨 72 이미지출처: https://arxiv.org/ abs/1512.03385
  • 73. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning  Degradation problem 정의 – 모델의 계층 수를 단순하게 증가시켰을때 발생하는 성능 저하문제 – Overfitting 인경우 계층 수를 증가시켜도 • Validation/test error 는 증가 • Training error는 감소 또는 유지 계층 수 증가 Overfitting problem Validation-Training err gap 증가!
  • 74. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning  Degradation problem 정의 – 모델의 계층 수를 단순하게 증가시켰을때 발생하는 성능 저하문제 • ReLu / Dropout / Batch norm은 degradation문제를 해결 하지 않음! – 다른 방법이 필요! 74
  • 75. 누구나 TensorFlow! J. Kang Ph.D. 출발지 Residual Learning  Analogy: 도로교통 문제 75 이미지 출처: http://www.cs.toronto.edu/~fidler/teaching/2 015/slides/CSC2523/renjie_highwayNNs.pdf 목적지 출발지A: B: - 출발지에서 목적지로 가는 길이 있다. - A는 가능길에 빵사고 세탁물도 맡겨야 한다. - B는 그냥 빨리가서 자고 싶다. - 목적이 다른 두차가 같은 길을 달린다
  • 76. 누구나 TensorFlow! J. Kang Ph.D. 출발지 Residual Learning  Analogy: 도로교통 문제 76 이미지 출처: http://www.cs.toronto.edu/~fidler/teaching/2 015/slides/CSC2523/renjie_highwayNNs.pdf 목적지 출발지A: B: - 출발지에서 목적지로 가는 길이 있다. - A는 가능길에 빵사고 세탁물도 맡겨야 한다. - B는 그냥 빨리가서 자고 싶다. - 목적이 다른 두차가 같은 길을 달린다 결론: 차가막힌다.
  • 77. 누구나 TensorFlow! J. Kang Ph.D. 출발지 Residual Learning  Analogy: 도로교통 문제 77 이미지 출처: http://www.cs.toronto.edu/~fidler/teaching/2 015/slides/CSC2523/renjie_highwayNNs.pdf 목적지 출발지 결론: 아니죠! 고속도로를 만들어야죠! - 출발지에서 목적지로 가는 길이 있다. - A는 가능길에 빵사고 세탁물도 맡겨야 한다. - B는 그냥 빨리가서 자고 싶다. - 목적이 다른 두차가 같은 길을 달린다
  • 78. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning Analogy를 본 Bob 아저씨의 질문 – Conv계층의 목적은 입력채널에 대한 feature extraction! – 근데 이미 입력 자체가 feature-like한 채널도 있지 않은가? – 그럼 모든 입력 채널에 대해서 weight를 학습시켜야 하는가? – 이미 feature-like한 채널이 다른 채널의 feature extraction에 악 영향을 주지 않을까? 78
  • 79. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning 핵심가설: It is easier to optimize to residual mapping than do the original. Residual networks: (Residual learning) : – K. He etal. “Deep Residual Learning for Image Recognition,” CVPR 2016. – 레이어 입출력의 변화 (Residual) 에 대해서만 학습 79
  • 80. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning  Residual Networks (2016) – 핵심질문1: • 비선형 계층을 쌓아서 어떤 복잡한 함수 “Y= H(X)”를 학습 할 수 있다면…, • 입출력 차이 “F(X)=H(X) – X” 도 학습 할 수 있지 않을까? – 핵심질문2: • 입력 채널 자체가 이미 feature인 경우 (혹은 거의 근접하게 feature인경우),… • 다시말해서 identity mapping이 optimal이거나 근접한 경우,.. • 기존 “Y=H(X)” 보다 “F(X)=H(X) – X”로 학습하는게 쉽지 않을까? 80
  • 81. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning  Residual Networks (2016) – 입출력 함수 “Y=H(X)”을 학습하는 것이 아니고 – Residual “F(X)= H(X) – X”을 학습! 81 Residual path Shortcut path
  • 82. 누구나 TensorFlow! J. Kang Ph.D. Residual Learning Bob 아저씨 질문에 대한 대답 – 이미 입력 자체가 이미 feature-like한 채널도 있지 않은가? • 있죠. 그런 채널들을 Residual network에서 shortcut path를 타고 가도록 학습이 되죠. – 그럼 모든 입력 채널에 대해서 weight를 학습시켜야 하는가? • Residual network에서는 자연스럽게 필요한 채널에 대해서만 weight 연산하도록 학습이 됩니다. – 이미 feature-like 한 채널이 다른 채널의 feature extraction에 악영향을 주지 않을까? • 기존 plain network에서는 그럴 가능성이 있습니다. • 그것이 degradation 문제의 원인이라고 생각합니다. 82
  • 83. 누구나 TensorFlow! J. Kang Ph.D. Depthwise Separable Conv  목적: 모바일에도 올릴 수 있는 효율적인 모델을 만들고 싶다! – Layer width와 network depth를 무작정 늘리는 것은 가야 할 방향이 아니다!  핵심가설: The mapping of “cross-channels correlation” and “spatial correlation” can be entirely decoupled!  무슨 말인가? 83 Recent advances are not necessarily making network more efficient with respect to size and speed!!!
  • 84. 누구나 TensorFlow! J. Kang Ph.D. Depthwise Separable Conv Cross-channel correlation: – conv layer에 입력되는 채널 간의 비슷한 정도 84 High cross-channel correlation!
  • 85. 누구나 TensorFlow! J. Kang Ph.D. Depthwise Separable Conv Cross-channel correlation: – conv layer에 입력되는 채널 간의 비슷한 정도 85 Very? Low cross-channel correlation!
  • 86. 누구나 TensorFlow! J. Kang Ph.D. Depthwise Separable Conv  Cross-channel correlation: conv layer의 입력 채널 간의 비슷한 정도 – High cross-channel correlation: • 입력 채널 간의 상관도 높다. • 입력 채널간 비슷한 특징을 가진다. – Low cross-channel correlation: • 입력 채널 간의 상관도 낮다. • 입력 채널간 구별되는 특징을 가진다. 86
  • 87. 누구나 TensorFlow! J. Kang Ph.D. Depthwise Separable Conv Spatial correlation: – conv filter와 입력 채널 사이의 상관도 87 Conv filter 이미지출처: http://user- image.logdown.io/user/136 73/blog/12890/post/30264 1/V21DnAAeTKiOirZRFKhT_ dl2.png Low correlation High correlation
  • 88. 누구나 TensorFlow! J. Kang Ph.D. Depthwise Separable Conv Spatial correlation: – conv filter와 입력 채널 사이의 상관도 – High spatial correlation: 특정 conv filter로 feature extraction이 잘된다. – Low spatial correlation: 특정 conv filter로 feature extraction이 잘 안된다. 88Conv filter
  • 89. 누구나 TensorFlow! J. Kang Ph.D. Depthwise Separable Conv  Depthwise separable conv의 핵심가설: – The mapping of “cross-channels correlation” and “spatial correlation” can be entirely decoupled! – 그러니깐 “cross-channels correlation”과 “spatial correlation” 분리해서 다루겠다는 것! 89
  • 90. 누구나 TensorFlow! J. Kang Ph.D. Depthwise Separable Conv  Depthwise separable conv – 1) Depthwise Convolution: • Extract spatial correlation from a NxNx1 2D input channel • 2D convolution with a single K x K x 1 x(M) 2D filter – 2) Pointwise Convolution: • Compress NxNxL input channel to from NxNxM output channel (M < L) • Weighted linear mixing using 2D convolution with 1x1xLx(M) 1D conv filters 90
  • 91. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck Cross Channel Pooling Revisit! – Is 1x1 conv filtering equivalent to matrix multiplication ? – We can look the convolution at a 1x1 pixel point (i=i*,j=j*). – Given (M=2, L=3 case) • Lx1x1 local patch vector, [X1,X2,X3]^T from X (3x3xL, L=3) • two 1x1 conv filters (1x1xLxM, M=2,L=3) • we have two different logits scalars: Z1, Z2 91 Z1 X: 3x3xL Input features + w11 w12 w13 X1 X2 X3 W: 1x1xL Filter  Single 1x1xL conv filters (L=3,M=1) Num of input ch
  • 92. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck Cross Channel Pooling Revisit! – Is 1x1 conv filtering equivalent to matrix multiplication ? – We can look the convolution at a 1x1 pixel point (i=i*,j=j*). – Given (M=2, L=3 case) • Lx1x1 local patch vector, [X1,X2,X3]^T from X (3x3xL, L=3) • two 1x1 conv filters (1x1xLxM, M=2,L=3) • we have two different logits scalars: Z1, Z2 92 Z1 [i* , j* ,k] = X[i* , j* ,k + l]W1 [l]l=0 M-1 å Z2 [i* , j* ,k] = X[i* , j* ,k + l]W2 [l]l=0 M-1 å
  • 93. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck Cross Channel Pooling Revisit! – Is 1x1 conv filtering equivalent to matrix multiplication ? – We can look the convolution at a 1x1 pixel point (i=i*,j=j*). – Given (M=2, L=3 case) • Lx1x1 local patch vector, [X1,X2,X3]^T from X (3x3xL, L=3) • two 1x1 conv filters (1x1xLxM, M=2,L=3) • we have two different logits scalars: Z1, Z2 – These conv operations recast into a matrix-vector form: 93 Z1 Z2 é ë ê ù û ú = W11 W12 W13 W21 W22 W23 é ë ê ê ù û ú ú X1 X2 X3 é ë ê ê ê ù û ú ú ú Lx1x1 local patch vector Two different logits scalars
  • 94. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck Cross Channel Pooling Revisit! – Is 1x1 conv filtering equivalent to matrix multiplication ? – We can look the convolution at a 1x1 pixel point (i=i*,j=j*). – Given (M=2, L=3 case) • Lx1x1 local patch vector, [X1,X2,X3]^T from X (3x3xL, L=3) • two 1x1 conv filters (1x1xLxM, M=2,L=3) • we have two different logits scalars: Z1, Z2 – These conv operations recast into a matrix-vector form: 94 Z1 Z2 é ë ê ù û ú = W11 W12 W13 W21 W22 W23 é ë ê ê ù û ú ú X1 X2 X3 é ë ê ê ê ù û ú ú ú Lx1x1 local patch vector Two different logits scalars 1x1xL conv1 1x1xL conv2
  • 95. 누구나 TensorFlow! J. Kang Ph.D.  Cross Channel Pooling Revisit! – Is 1x1 conv filtering equivalent to matrix multiplication ? – Consider a M=2 case Linear Bottleneck 95 1x1xL conv1 1x1xL conv2 . Input channels 1x1xNxK conv filters Output logit Before activation Lx1x1 vector X 1x1xLxM filter matrix, W MX1 output logit Z Z1 Z2 = Z = W X X1 X2 ... ... ... XL-1 XL output 채널방향 input 채널방향
  • 96. 누구나 TensorFlow! J. Kang Ph.D.  Room1: 과도한 cross-channel pooling – Given 1x1xL(xM) conv filters – 1x1xL conv filter 개수, M  linear transform W의 row 개수 • “cross-channel pooling”이 되려면  M < L • 과도한 cross-channel pooling 경우  M << L – M<<L 경우 linear transform W이 충분한 개수의 independent basis을 가질 수 없음 • W가 span하는 feature space의 dimensionality가 X의 정보를 보존하기에 충분하지 않음 Linear Bottleneck 96
  • 97. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck  Room1: 과도한 cross-channel pooling 97 Where “dim” indicates the dimension of activation space span by W. 이미지출처: https://arxiv.org/a bs/1801.04381 Note: Activation space- (선형변환 후 feature space) W + Y
  • 98. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck 98 Room2: ReLu non-linearity에 의한 정보손실 – ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를 중요하지 않은 정보라고 판단하고 zero-mapping한다. – An 1x1 conv example: 1x1xL conv1 1x1xL conv2 1x1xL conv3 1x1xL conv4 = . Features After Dwise convSet of 1x1xL conv filters Output logit Before activation 1X1XLXM filter matrix, W M X 1 output logit Z (M=4) Z1 > 0 Z2 < 0 Z3 < 0 Z4 > 0 X1 X2 ... ... ... XL-1 XL
  • 99. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck 99 Room2: ReLu non-linearity에 의한 정보손실 – ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를 중요하지 않은 정보라고 판단하고 zero-mapping한다. – An 1x1 conv example: 1x1xL conv1 1x1xL conv2 1x1xL conv3 1x1xL conv4 = . Features After Dwise convSet of 1x1xL conv filters Output logit Before activation 1X1XLXM filter matrix, W M X 1 output logit Z (M=4) Z1 > 0 Z2 < 0 Z3 < 0 Z4 > 0 X1 X2 ... ... ... XL-1 XL ReLu !!!!
  • 100. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck 100 Room2: ReLu non-linearity에 의한 정보손실 – ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를 중요하지 않은 정보라고 판단하고 zero-mapping한다. – An 1x1 conv example: 1x1xL conv1 1x1xL conv2 1x1xL conv3 1x1xL conv4 = . Features After Dwise convSet of 1x1xL conv filters Output After activation 1X1XLXM filter matrix, W M X 1 output Y (M=4) X1 X2 ... ... ... XL-1 XL f ( ) Y1 > 0 0 0 Y4 > 0
  • 101. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck 101 Room2: ReLu non-linearity에 의한 정보손실 – ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를 중요하지 않은 정보라고 판단하고 zero-mapping한다. • Activation space의 차원수 (dimensionality) 를 제한할 수 있음 • ReLu에 의해서 다음이 일어난때 정보손실이 발생 X manifold 차원수 <= activation space (WX) 차원수
  • 102. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck 102 Room2: ReLu non-linearity에 의한 정보손실 – ReLu는 0보다 작은 값을 출력하는 1x1 conv filtering 결과를 중요하지 않은 정보라고 판단하고 zero-mapping한다. • Activation space의 차원수 (dimensionality) 를 제한할 수 있음 • ReLu에 의해서 다음이 일어난때 정보손실이 발생 X manifold 차원수 <= activation space (WX) 차원수
  • 103. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck Mobilenet v2!  핵심질문: X의 정보를 효과적으로 보존하기 위해서는 conv layer의 구조를 어떻게 구성해야 하는가? - Mark Sandler et al. “MobileNetV2: Inverted Residuals and Linear Bottlenecks”, CoRR, 2017. 103
  • 104. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck  핵심질문: Linear bottleneck의 삽입은 어떻케 ReLu non- linearity에 의한 정보손실을 해결하는가?  기존 Depthwise-separable conv (Mobilenet v1): – Q1) 마지막 Relu를 수행 전에 channel pooling을 수행해서 activation space를 먼저 제한할 필요 없지 않은가? 104 Dwise Conv 3x3x1/s Pwise Conv 1x1xLxM (M < L) BN ReLu6 BN ReLu6 Ch in X NxNxL Ch out Y NxNxM Feature maps NxNxL Feature map NxNxM Spatial Feature extraction Channel Pooling
  • 105. 누구나 TensorFlow! J. Kang Ph.D. Linear Bottleneck  핵심질문: Linear bottleneck의 삽입은 어떻케 ReLu non- linearity에 의한 정보손실을 해결하는가?  Depthwise-separable conv (Mobilenet v2): – Linear Bottleneck: Channel pooling을 Depthwise separable conv 밖으로 ! • Depthwise-separable conv 내부 Pwise conv에서 channel pooling 수행X • ReLu non-linearity를 linear bottleneck에서 보완할 수 있도록 학습됨 (soft pooling) 105 Dwise Conv 3x3x1/s Linear Bottleneck 1x1xLxM (L>M) Ch in X NxNxL Ch out Y NxNxM Feature maps NxNxL Feature map NxNxL Spatial Feature extraction Channel Pooling BN ReLu6 Pwise Conv 1x1xLxL B N BN ReLu6
  • 106. 누구나 TensorFlow! J. Kang Ph.D. Efficient Convolution Remarks 106 ❖ CNN 모델은 2016을 기점으로 사이즈를 늘려서 성능을 개선시키는 방향보다, 효율적인 작은 모델을 연구 하는 방향으로 가는 추세 • 초창기에 제안된 AlexNet & VGG와 같은 모델은 과도하게 많은 파라미터를 포함하는 모델로 인식되어 앞으로 사용되지 않을 것임 ❖ 모델들이 서로의 장점을 적극적으로 도입하여 성능을 개선 • 결국 모든 모델 안의 conv layer 구조가 서로 닮아가는 추세 • 결국 함께 conv layer라는 것을 알아가는게 아닐까.. • Cross channel pooling • Depthwise separable conv • Residual learning • Linear bottleneck • Groupwise convolution • Network search  추가적으로 모델의 전체 accuracy-size+comp의 trade off를 조절할 수 있는 meta parameter를 설정하는 것은 매우 중요 – 채널 수 – Feature resolution
  • 107. 누구나 TensorFlow! J. Kang Ph.D. Android 개발자 MoT로 가즈아ㅏㅏㅏ! 더 궁금하시면? – MoT로 오세요! 같이 공부해요! – 머신러닝에 관심있는 열정많은 안드로이드 개발자 모집중! 107 MoT로 가으자!!!! 우르르…
  • 108. 누구나 TensorFlow! J. Kang Ph.D. 모두연 MoT랩 소개 자신의 모델을 모바일에 올려보고 싶은 분들 같이 해봐요! 후원, 참여 환영합니다!  https://motlabs.github.io/  https://www.facebook.com/lab4all/posts/761099760749661  jwkang10@gmail.com 로 메일 Keywords: – CNN / RNN module – Model Compression – Tensorflow Lite – CoreML – MLkit – Android / iOS 108
  • 110. 누구나 TensorFlow! J. Kang Ph.D. 110 The End Mobile Vision Learning 2018 - All right reserved @ Jaewook Kang 2018

Notes de l'éditeur

  1. 왜 on-device에서 ML을 해야되나 대조적 개념으로 cloud ML을 들수 있습니다. 현재 빅스비와 같은 음성인식 모듈은 모두 cloud ML기반입니다. 몇가지 측면을 나누어서 한번 생각을 해보겠습니다. 먼저 UX측면입니다. 클라우드 모듈은 기본적으로 ~~ 구조를 가지고 있는데 이 구조가 서비스 반응 속도를 느리게 할 수 있습니다. 음성인식기 같은 경우 1차원 데이터이고 downsapling을 적절히 조절해서 업앤다운로드를 반응속도가 느리다는 것을 크게 느낄 수 없는데요 컴퓨터 비전 머신 같은 경우 3차원 데이터 이기 떄문에 문제가 될수 있다고 생각합니다.
  2. 먼저 UX측면입니다. 클라우드 모듈은 기본적으로 ~~ 구조를 가지고 있는데 이 구조가 서비스 반응 속도를 느리게 할 수 있습니다. 페북의 로딩하는 시간 즉 반응 속도를 나타낸 것입니다. 음성인식기 같은 경우 1차원 데이터이고 downsapling을 적절히 조절해서 반응속도가 느리다는 것을 크게 느낄 수 없는데요 컴퓨터 비전 머신 같은 경우 3차원 데이터 이기 떄문에 문제가 될수 있다고 생각합니다.
  3. 두번째 UX측면인데요 오프라인 상황에서 머신러닝을 사용해야하는 경우를 들수 있습니다. 명확하게 이경우 클라우드ML은 동작이 안되고요 특히 안전관련된 어플리케이션에서 머신러닝을 사용해야 한다면 문제가 될 수 있습니다.
  4. 통신 비용 측면 모바일 사용자가 가장 민감한거 배터리 소모 데이터 소모 클라우드ML은 입력 올려야 출력을 받아야 되기 떄문에 서버콜 이 필요하고 데이터를 소모합니다. 업로드 할 데이터 사이즈가 크면 데이터를 소모하겠죠 어플리케이션 관리자에 보면 앱별 데이터 소모량을 랭킹 해주는 기능이 있죠 상위권에 랭크되는 앱은 특별한 이유가 없다면 순삭됩니다.
  5. 또 중요하게 생각되어 측면이 프라이버시 입니다. 지금 서비스 되고 있는 대부분의 머신러닝 서비스는 클라우드 서비스죠 클라우드에서 머신러닝을 통한 개인화 서비스를 받기 위해서는 프라이버시는 포기해야합니다. 다시말해서 클라우드 ML에서는 개인화 의 개념과 프라이버시의 개념은 상충되는 개념입니다. 또 클라우드 ML에서는 데이터 퓨젼이 굉장이 어려운데요. 그 이유는 하나의 클라우드 서비스에서 다양한 개인정보를 수집하기 어렵기 때문에죠 모바일에는 여러가지 개인 데이터가 있어서 권한만 얻으면 가능하지만, 네이버 / 카카오 / 구글 정도 되서 다양한 서비스를 가지고 있어야 데이터 퓨젼을 하는 머신러닝 서비스가 가능합니다.
  6. 그런 어려움 들이 on-device ML하면 위에서 얘기 했던 부분이 어떻케 해결되는지 한번 보죠 UX + 데이터 소모 측면은 on-deivce inference가 가능해 지면 해결됩니다. 아래 것들이 기술적으로 극봅되어야 겠죠 프라이버시 측면은 on-device training이 가능해지면 해결됩니다. 이부분은 아직 연구 수준에 있는 거 같습니다.
  7. 그래서 텐서플로 라이트가 지금 해결해 줄수 있는 부분은
  8. 팔방미인이 되라는 거죠 모바일 머신러닝 뿐만 아니라 실제로 임베디드 시스템이나 모바일 신호처리 쪽에서 원하는게 다 이렇습니다. 그래서 매력있는 분야고 재미있는거죠
  9. 그래서 텐서플로 라이트가 지금 해결해 줄수 있는 부분은
  10. 그래서 텐서플로 라이트가 지금 해결해 줄수 있는 부분은
  11. 그래서 텐서플로 라이트가 지금 해결해 줄수 있는 부분은
  12. 그래서 텐서플로 라이트가 지금 해결해 줄수 있는 부분은
  13. 그래서 텐서플로 라이트가 지금 해결해 줄수 있는 부분은
  14. 그래서 텐서플로 라이트가 지금 해결해 줄수 있는 부분은
  15. 먼저 메트랩 프로그래밍의 가장 일반적인 부분에 대해서 애기를 해보겠습니다 강의 중간에 질문이 있으시면 언제든지 손을 들고 말씀해 주세요 사실 맵틀랩도 하나의 프로그래밍 언어이기 때문에 그 기초는 다른 언어와 매우 흡사합니다 혹시 매트랩 프로그래밍에 경험이 있으신 분 얼마나 되나요? 아니면 씨언어? 잘하시는 분들은 좀 지루할 수도 있겠지만 간단하게 짚어보도록 하겠습니다.