2. 2
Deep Learning? Deep Neural Network
Deep Neural Network 침체기 (1986~2006)
① ‘Deep’ learning에 대한 이론적인 침체
• Local optimization을 피하는 initialization에 대한 이론이 없어서 Learning시
Network가 깊어질수록 과도한 overfitting 발생
• Vanishing gradient : 활성함수로 Sigmoid함수 사용시 Gradient Descent에서
기울기가 0에 수렴하여 Backpropagation에 의한 weight 업데이트가 안됨
② Computation Cost 대비 성능이 좋지 않음
침체기로부터의 탈출
① ‘Deep’ Learning의 이론적인 토대 마련 : Deep network의 initialization 문제에 대한
해답을 Deep Beilf Network(2007)의 개념으로 해결
② Regularization Method(Drop out, ReLu) 발전
③ Computer Vision 분야에서 발전한 CNN 기반 알고리즘의 압도적인 성능
④ 컴퓨팅 성능의 발전 : 하드웨어 스펙과 GPU 병렬처리 기술의 발전
참고 : http://sanghyukchun.github.io/75/
3. 3
Deep Belief Network (DBN, Hinton et al.,2007)
• Bengio et al.(2006)의 Restricted Boltzmann Machine(RBM) 방법에서 착안
• Gradient approximation 알고리즘에서 weight 를 계산하는 MCMC (Gibbs Sampling)의 step을
converge할 때 까지 돌리는 것이 아니라, 한 번만 돌려서 weight를 approximate
- 어차피 정확하게 converge한 distribution이나, 중간에 멈춘 distribution이나 대략의 방향성
은 유사하므로 완벽한 gradient 대신 Gibbs sampling을 중간에 멈추고 그 approximation 값
을 update에 사용하여 pre-training 시간 단축
• Deep Belief Network는 RBM의 방법으로 ℓ 개의 layer를 가진 joint distribution을 표
현하는 graphical model로 weight 초기값을 unsupervised pre-training 할 수 있음
Initial weight 결정 문제 해결
Deep Learning? Deep Neural Network
참고 : http://sanghyukchun.github.io/75/
4. 4
Drop-out (Dahl et al., 2013)
• 핵심 아이디어는 학습 과정 중에 신경
망의 뉴런들을 임의로 꺼버리는 것
• 학습 중에 drop out은 기하급수적으로
많은 서로 다른 ‘thinned’ 네트워크를
모으고, 테스트 과정에서는 모든 뉴런,
즉, ‘un-thinned’ 네트워크를 사용함으
로 기하급수적으로 많은 ‘thinned’ 네
트워크의 평균에 근사값을 가지게 함 Overfitting과 weight 초기값 문제 개선
Deep Neural Network의 과적합 문제 해결
ReLU(Rectified Linear Unit, Nair&Hinton 2010; Glorot et al.,2011)
• 기울기가 0 또는 1로 학습되는 경우에는 error가 100% 전파되어 vanishing 문제해결
느린 학습시간과 Vanishing Gradient 문제를 해결
참고:http://blog.naver.com/PostView.nhn?blogId=sogangori&logNo=220454579396&parentCategoryNo=8&categoryNo=&viewDate=&isShowPopularPosts=true&from=search
5. 5
CNN(Convolution Neural Network, 합성곱신경망)이란?
CNN은 합성곱(Convolution) 연산을 사용하는 ANN(Artificial Neural Network)의 한 종류
Convolution을 사용하면 3차원 데이터의 공간적 정보를 유지하여 다음 Layer로 전달
핵심 아이디어는 feature selection이 performance에 가장 크게 영향을 미치므로 가장 좋
은 feature map을 뽑아주는 convolution filter를 learning하는 모델을 만드는 것
대표적인 CNN : LeNet(1998), AlexNet(2012)
CNN 기반의 DNN(Deep Neural Network, 심층신경망) : VGG, GoogLeNet, ResNet 등
*최초 개념 : Backpropagation Applied to Handwritten Zip Code Recognition (LeCun, 1989)
출처 : 모두의연구소DeepLapEdu 5기박희경, 밑바닥부터시작하는딥러닝 Chapter 7 합성곱 신경망(CNN)
6. 6
CNN(Convolution Neural Network, 합성곱신경망)이란?
기존의 신경망(Artificial Neural Network) 구조
• 인접하는 계층의 모든 뉴런이 결합되어 있는 완전연결된 은닉층들로 구성
• Fully-connected Layer 또는 Affine Layer라고 불림
출처 : 모두의연구소DeepLapEdu 5기박희경, 밑바닥부터시작하는딥러닝 Chapter 7 합성곱 신경망(CNN)
8. 8
Convolutional Layer : Fully-connected Layer의 문제
기존 신경망의 데이터 형상 무시
• 세로·가로·채널(색상)로 구성된 3차원 데이터인 이미지가 완전연결계층(fully-
connected layer)에 입력될 때, 1차원 데이터로 변형되게 되면서 공간 정보 손실
출처 : 모두의연구소DeepLapEdu 5기박희경, 밑바닥부터시작하는딥러닝 Chapter 7 합성곱 신경망(CNN)
9. 9
Convolutional Layer : Fully-connected Layer의 문제
기존 신경망의 데이터 형상의 무시
• 예를 들어, 공간적으로 가까운 픽셀은 값이 비슷하거나, RGB의 각 채널은 서로
밀접하게 관련되어 있거나, 거리가 먼 픽셀끼리는 별연관이 없는 등, 3차원 속 의미를
갖는 본질적인 패턴이 무시됨
출처 : 모두의연구소DeepLapEdu 5기박희경, 밑바닥부터시작하는딥러닝 Chapter 7 합성곱 신경망(CNN)
19. 19
Convolutional Layer : 합성곱 연산
3차원 데이터의 합성곱 연산
• 3차원 이미지(RGB) 데이터의 경우, 필터도 이미지와 같은 수의 채널을 가짐
• Convolution Layer의 출력 Layer는 모든 채널의 합산하여 하나의 채널로 축소할
수도 있음
출처 : 모두의연구소DeepLapEdu 5기박희경, 밑바닥부터시작하는딥러닝 Chapter 7 합성곱 신경망(CNN)
21. 21
Convolutional Layer : Parameter Learning
Sparse weights
• Full connection 대비 훨씬 적은 표현형을
learning하게 되는 단점이 있지만, 모델
complexity가 낮아진다는 장점이 큼
픽셀값이 많고 feauture의 공간 상관성이 높은
이미지 데이터에서는 유용함
Shared(tied) weights
• 하나의 필터와 연결되는 모든 뉴런은 동일한 weight로 학습됨(bias는 제외)
필터의 모든 뉴런이 다른 위치에 있는 동일한 feature를 detect할 수 있음
학습시켜야 할 parameter 수를 줄여서 Learning 속도가 빠름
출처 : http://sanghyukchun.github.io/75/
22. 22
Pooling Layer
Pooling Layer 개요
• 세로·가로 방향의 공간을 줄이는 연산으로, Sub-sampling이라고도 불림
• Feature map의 크기를 줄여서 학습시간을 줄이고 shift, distortion에 덜 민감하게 함
• 일반적으로 풀링의 윈도우 크기와 Stride의 값은 같게 설정함
출처 : 모두의연구소DeepLapEdu 5기박희경, 밑바닥부터시작하는딥러닝 Chapter 7 합성곱 신경망(CNN)
23. 23
Pooling Layer
Pooling Layer의 특징 : 학습이 필요한 매개변수가 없음
• 풀링은 대상영역에서 최댓값(Max Pooling)이나 평균(Average Pooling)만을 취하는
명확한 처리이므로 학습해야 할 매개변수가 없음
Max Pooling 예시
출처 : 모두의연구소DeepLapEdu 5기박희경, 밑바닥부터시작하는딥러닝 Chapter 7 합성곱 신경망(CNN)
24. 24
Pooling Layer
Pooling Layer의 특징 : 입력의 변화에 영향을 적게 받음
• 입력데이터가 조금 변해도 풀링의 결과는 잘 변하지 않음
출처 : 모두의연구소DeepLapEdu 5기박희경, 밑바닥부터시작하는딥러닝 Chapter 7 합성곱 신경망(CNN)
27. 27
타분야 CNN 활용 사례 : Speech Recognition
Covolutional neural networks for speech recognition, IEEE/ACM Transactions on Audio,
Speech, and Language Processing, Abdel-Hamid et al.(2014)
28. 28
타분야 CNN 활용 사례 : Text Classification
Convolutional Neural Networks for Sentence Classification, Conference on Empirical
Methods in Natural Language, Processing Kim.(2014)
29. 29
타분야 CNN 활용 사례 : Time series prediction
Time Series Classification Using Multi-Channels Deep Convolutional Neural
Networks, International Conference on Web-Age Information Management,(2014)
30. 30
타분야 CNN 활용 사례 : Time series prediction
Encoding Time Series as Images for Visual Inspection and Classification Using
Tiled Convolutional Neural Networks, Association fortheAdvancement ofArtificial Intelligence,(2015)
31. 31
타분야 CNN 활용 사례 : Time series prediction
Learning Traffic as Images: A Deep Convolutional Neural Network for Large-Scale
Transportation Network Speed Prediction, Sensors, (2017)