6. 1.1 Deep Neural Network
Deep Neural Network (DNN)
1. 1 개 이상의 Hidden Layer를 가진 Neural Network
C_1
C_2
ŸŸŸ
C_n
Output Layer
ŸŸŸ
Non
Linear
Activation
Sigmoid
ŸŸŸ
Hidden Layer
Weight
ŸŸŸ
Input Layer
7. 1.1 Deep Neural Network
C_1
C_2
ŸŸŸ
C_n
‘고양이’, ‘호랑이’
‘학교’, ‘학과’
ŸŸŸ
Non
Linear
Activation
Sigmoid
ŸŸŸ
Weight
ŸŸŸ
Hidden Layer
8. 1.1 Deep Neural Network
Linear
Multiplication
T
T
[InputVector]
!Weight $
#
Matrix %
tanh
sigmoid
T
!Weight $
#
Matrix %
…
Non-Linear
Activation
tanh
sigmoid
9. 1.2 Deep Learning의 부활
DNN-Back propagation
1. 1980년대에 개발된 방법
2. Overfitting 문제와 느린 학습으로 인해, Shallow Learning – SVM, GMM 에 완전히 밀림
New Algorithms
Big Data
GPU
11. 1.2 Deep Learning의 부활
‘망설이는 호랑이는 벌보다 못하다’ – 사기열전 한신
New Algorithms
Big Data
GPU
12. 1.3 New Algorithms
Pre-Training : Restricted Boltzmann Machine (RBM)
1. 2000 년 대 Deep Learning 의 새로운 시작
2. Unsupervised Generative Training
Drop-Out
1. 2010 년 대 Overfitting 을 방지하기 위한 효율적 방법
2. Regularizer by Randomness
14. 1.5 Restricted Boltzmann Machine
Pre-Training : Restricted Boltzmann Machine (RBM)
1. Hidden Node 들 끼리, Visible Node 들 끼리는 Independent
2. Hidden Node 와 Visible Node 사이의 Weight는 Bipartite
H_1
…
H_N
Hidden
V_1
…
V_M
Visible
15. 1.6 Learning Restricted Boltzmann Machine
Generative Training
1. p( Label | Image )를 Maximize 하는 것이 아니라, p(Image)를 Maximize 하기 위한 것
a.
Δwij = vi h j data − vi h j model
b. Ideal 하게는 무한대의 Markov Chain – Monte Carlo
j
i
j
i
New Algorithm
t=0
t=1
j
i
GPU
t=2
j
Big iData
t = infinity
16. 1.7 Contrastive Divergence
Hinton 의 제안 ( Toronto Univ.)
1. 2002년 RBM을 이용한 Pre-Training
a. CD-1 만으로도 Overfitting 문제를 피할 수 있는 Initial Point
b. Generative Training 후 Discriminative Training
c.
Δwij = vi h j data − vi h j recon
j
i
t=0
data
j
i
t=1
reconstruction
18. 1.9 Drop-Out
Drop-Out
1. Regularizer 의 일종
a. Randomness 를 추가함
2. Hidden Node를 모두 훈련시키지 않고, Random 하게 Drop Out 시킨다
a. 관련된 Weight들은 모두 훈련되지 않는다.
Big Data
Random Value 0.6
GPU
Random Value 0.6
20. 1.10 Rectified Linear Unit (ReLU)
Drop-Out ReLU
1. Drop-Out 은 학습 Curve 의 수렴이 느리다
a. Drop Out 되고 남은 일부분만 학습되므로
2. Non-Linear Activation Function 의 교체
a. 일반적으로 사용되는 tanh, Logistic Sigmoid 대신
b. ReLU 사용
Logistic Sigmoid
ReLU
21. 1.11 Big Data
포털, 검색 업체 들 대량의 학습 DB 보유
1. Modeling 을 정교하게 하기 위해서는 많은 Parameter 들이 필요
2. 많은 Parameter 들을 Overfitting 없이 훈련하려면 Big Data 필요
3. Google 음성 인식에 사용된 DB Size
a. 5800 시간 이상
b. DNN 훈련을 위한 입력 Data 20 억개 이상
Big 중
c. 지금도 게속하여 수집되어지는 음성 인식 데이터로 성능 개선 진행Data
d. Google의 DB 수집 노력
•
https://www.peanutgalleryfilms.com
22. 1.12 GPU
Training Time
1. New Algorithm 은 모두 Overfitting 을 방지 하기 위한 것
2. 추가 알고리즘에 의해 Training Time 은 더 늘어난다.
3. 다행히 DNN 의 Training 은 Non Linear Activation 을 제외하면 Matrix Operation
4. GPU
a. NVIDIA – CUBLAS
b. NVIDIA 최신 GPU
•
GeForce GTX Titan
•
CUDA Core 2688 개
Big Data
24. 2.1 RBM or Drop-Out ?
Drop-Out is better than RBM
1. Overfitting 을 막을 Pre-Training 목적이라면 굳이 RBM 쓸 필요 없음
2. Drop-Out 과 함께 Discriminative Training
a. 많은 hidden node 와 hidden layer
b. ReLU
c. Drop-Out
3. RBM의 효용성
a. Unsupervised Training
b. Feature Extractor
25. 2.2 Input Data
Noisy 한 Real Data 가 많다면 굳이 RBM도 Drop-Out도 쓰지 않아도 됨
1. Noisy Data의 역할
a. Local Minimum에 빠지는 것을 방지해 준다
b. Regularizer by Randomness 의 역할
2. Noisy Data 가 없다면
a. 만들어서라도 넣어 주어야
•
Image Data의 경우
ü 좌우 반전, 약간의 왜곡 등
•
음성의 경우
ü 임의의 배경 잡음 삽입
27. 2.4 Learning Rate
계속 같은 Learning Rate를 써야 하나요?
1. Iteration이 진행 될 수록 Learning Rate를 감소
a. Validation Data Set을 설정
b. Test 해 보며 성능이 Saturation 할 때마다 감소시키는 것이 정석
c. 귀찮고, 얼마나 감소시켜야 하는지도 애매
•
음성 인식 AM의 경우
•
Practically Exponentially 감소시키기
28. 2.5 남은 어려운 점
DNN 을 훈련시키기 위해 결정되어져야 할 Parameters
1. DNN Structure
a. Input Layer 의 Node 개수
b. Output Layer 의 Node 개수
c. Hidden Layer 의 개수
d. Hidden Layer 의 Node 수
2. Training 단계 Parameters
a. Momentum
b. Learning Rate
c. Weight Initial Value
d. Drop Out 비율
e. Mini-Batch Size
f. Big-Batch Size
30. 3.1 Speech Recognition with DNN
p(x | w)p(w)
w = arg max p(w | x) = arg max
p(x)
w
w
^
Speech Recognition
1. Observation Data
a. Speech Signal : x
2. Maximum A Posteriori
a. p( w | x ) 를 최대로 하는 Word Sequence w
31. 3.1 Speech Recognition with DNN
p(x | w)p(w)
w = arg max p(w | x) = arg max
p(x)
w
w
^
Acoustic Model Language Model
1. p(x)
a. w와 Independent 하므로 제외
2. p(w)
a. Prior Probability : Language Model
3. p( x | w )
a. Likelihood : Acoustic Model
b. 현재의 흐름은 DNN 을 이용하여 Acoustic Model을 표현
32. 3.2 Acoustic Model with DNN
T
p(x | w) = max ∏ p(xt | qt )
t=1
Acoustic Model Language Model
1. q
a. Word w 를 구성하는 Senone q
2. 기존 방법
1. p( x | q )를 표현하기 위해 Gaussian Mixture Model (GMM) 을 사용
2. p( x | q ) Acoustic Model을 GMM 대신 DNN 사용
33. 3.3 HMM-DNN Hybrid
Gaussian Mixture Model (GMM) 의 대체
1. GMM Acoustic Model (AM)
a. 음성 신호의 Likelihood 를 표현
2. AM 을 DNN 으로 표현
s1
s2
s3
Observation
Probabilities
H(M)
H(M-1)
…
H(1)
v
HMM
DNN
Observation
34. 3.4 Deep Learning 음성인식 현황
Deep Learning NAVER 음성인식 서비스
1. 2013년 하반기부터 서비스
a. 기존 HMM-GMM 방식으로는 넘어설 수 없었던 수준
•
기존 GMM 방식과 DNN 방식은
청동기 시대 철기 시대의 차이
b. 지금도 계속 성능 개선 진행 중
2. Google, Microsoft 등 대부분 음성 인식 서비스 제공 업체들
이미 DNN 방식 사용
a. Google 은 2012 년 Jelly Bean 부터
b. Microsoft 는 2013년 하반기 부터