ݺߣ

ݺߣShare a Scribd company logo
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
슬로우캠퍼스 딥러닝 스쿨
– 딥러닝 핵심원리 파트
한대희 @ 슬로우캠퍼스
딥러닝 교육/컨설팅
daehee@slowcampus.com
http://medium.com/@slowcampus
http://slowcampus.com
Just Start up your Deep Learning for your Future !
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
슬로우캠퍼스
SLOW는 SW(소프트웨어) 입니다
2
슬로우는 학습과 성장을 의미합니다
홈페이지 http://slowcampus.com
블로그 http://medium.com/@slowcampus
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
딥러닝 스쿨: 딥러닝 Tensorflow & Keras 1일 완성
• 딥러닝 워크샵 클릭
• 한대희 강사 클릭
• 딥러닝 참가 클릭
3
딥러닝
배우고
달리자
Neural Network
4
Neuron – 신경세포
• 화학적/전기적 신호를 통해 정보를 처리하고 활성화되는
신경 세포
5
신경의 연결 - 신경망
• 인간 두뇌 – 1조 개의 Neuron들의 연결
6
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Biological Neuron
7http://cs231n.github.io/neural-networks-1/
수신부:
가지돌기(수상돌기)
발신(전달)부:
축삭
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
수상돌기, 신경세포체, 축삭
8
https://ko.wikipedia.org/wiki/%EC%B6%95%EC%82%AD
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
시냅스 : 뉴런 2개의 연결 부위
9
https://en.wikipedia.org/wiki/Synapse
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Neuron 신호전달 흉내내기
• X0 - 뉴런 A의 출력
• W0 – 뉴런 A와 B의 연결 강도
• B0 – 뉴런 B내부 bias
• Activation function – 뉴런
B의 firing rate
10
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Sigmoid
11
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Layers, Nodes, Edges
12
x1
x2
x3
y1
y2
y3
Wi Wibi
bi
bi
input hidden output
Artificial NN - 계산
• Node: Neuron
• Edge: Neuron간의 연결강도 - Weights
• input에 weight을 곱하고, 전체를 합하고, 활성화 함수를 통해 출력값 결정
13
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
실제값(학습데이터)와 모델의 산출값의 차이 최소화
14
NN
모델
X: 실제 입력 데이타 YREAL: 실제 출력 데이터 (target)
YPR: 학습 후 NN의 출력값 (predicted)
오차, cost, loss
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
오차 - mean squared error (MSE)
15
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
참고: 통계학 용어
• Truth == Yreal : 실제 데이터
• Estimate == Ymodel: 모델의 예
측값(predict)
16
https://en.wikipedia.org/wiki/Linear_regression
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
참고: 통계학 용어
• Error (오차)
• MSE (Mean Squared Error)
17
https://en.wikipedia.org/wiki/Estimator
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Approximation Theory - 수학
18
In mathematics, approximation theory is concerned with
how functions can best be approximated with simpler functions,
and with quantitatively characterizing the errors introduced
thereby.
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Universal Approximation Theorem – Neural Network
• NN(MLP)내부의 노드의 활성화 함수인 sigmoid 함수의 조합으
로 모든 함수(continuous function)를 근사화할 수 있음을 증명
함 – George Cybenko (1989)
• 특정 활성화 함수보다는 feedforward 구조 자체의 특성에 의해
universal approximator되는것을 증명함 -Kurt Hornik (1991)
19
https://en.wikipedia.org/wiki/Universal_approximation_th
eorem
Gradient Descent
20
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
딥러닝(NN)의 학습 기본 원리
21
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Training == Optimization
• Loss function값을 최소화하는 optimization 과정
• Loss function은 각 layer의 weights, bias 연산의 조합
• Loss function을 최소화하기 위한 gradient 계산
• 데이터가 n차수임
• gradient == vector of partial derivatives
22
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Back-propogation, Derivatives, Gradient Descent
• We use derivatives to iteratively make our way the minimum
point using gradient descent.
23
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
데이터는 Vector, Matrix 형태
• 딥러닝(머신러닝)은 학습데이터 vector, matrix 와의 오차를 최
소화하는 과정이다.
24
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Loss는 Weights의 함수.
25
Loss J(W) 를 최소화하는 W를 찾자
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Optimization
• 개미(ball)가 가장 낮은 지점을 찾아가는 것.
26
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Gradient (단순화한 버전)
• Calculate slope at current position
• If slope is negative, move right
• If slope is positive, move left
• (Repeat until slope == 0)
27
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Gradient (기울기 이용하는 버전)
Naive Gradient Descent:
• Calculate "slope" at current ”w" position
• Change w by the negative of the slope.
• w ß w - slope
• (Repeat until slope == 0)
28
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Optimization: W update 과정
29
W ß W – StepSize * Gradient(W) * J(W)
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
30
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
31
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Global optima, Local optima
32
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Gradient Descent (경사하강법) 단점
• relatively slow close to the
minimum
• Local minima 빠지기 쉽다
33
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Gradient Descent 종류
• Standard (Batch) gradient descent
• 학습데이터 전체에 대해 gradient descent 계산
• Stochastic gradient descent (SGD)
• 학습데이터 한개에 대해 gradient descent 수행 (one by one)
• Mini-batch gradient descent
• 학습데이터 N개에 대해 gradient descent 수행
• N: mini-batch 개수. 50~256 정도
34
http://ruder.io/optimizing-gradient-
descent/index.html#stochasticgradientdescent
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
SGD (Stochastic Gradient Descent)
• Fluctuations 발생하기 쉬움.
35
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Stochastic Gradient Descent
36
http://ruder.io/optimizing-gradient-
descent/index.html#stochasticgradientdescent
• 단점: 정확한 minimum으로의 수렴이 어려울 수 있음.
• 장점: local minima에서 jump해서 나올 수 있음.
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Mini batch Gradient Descent
37
http://ruder.io/optimizing-gradient-
descent/index.html#stochasticgradientdescent
Optimization - Gradient
Descent Variants
38
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Optimization: W update 과정
39
W ß W – StepSize * Gradient(W) * J(W)
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Gradient Descent Optimization 종류들
• Momentum
• Adagrad
• Adadelta
• RMSprop
• Adam
• AdaMax
• Nadam
40
http://ruder.io/optimizing-gradient-
descent/index.html#stochasticgradientdescent
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Momentum
• ‘관성’과 Gradient를 혼합하여 이동하는 방식
• W 변화량 == 과거에 이동하던 방향 + Gradient
• SGD가 Oscillation 현상에서 벗어나도록 도
41
à
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Momentum – 속도향상, Local Minima 탈출
42
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Nesterov Accelerated Gradient (NAG)
43
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Nesterov Accelerated Gradient (NAG)
• Gradient 계산하는 지점을 달리함.
• momentum step을 먼저 이동한 자리에서의 gradient 계
• Brake 역할
44
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Adagrad(Adaptive Gradient)
• 변수들을 update할 때 각각의 변수마다 step size를 다르게 설
정해서 이동하는 방식
• 지금까지 많이 변화했던 변수들은 step size를 작게 하자’
45
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Adagrad(Adaptive Gradient)
• Neural Network의 parameter가 k개라고 할 때,
• Gt는 k차원 벡터
• ‘time step t까지 각 변수가 이동한 gradient의 sum of
squares’ 를 저장한다.
• Gt의 루트값에 반비례한 크기로 이동을 진행
• Gt의 값들은 계속해서 증가 à 학습이 오래 진행될수로 거의 움
직이지 않게 되는 단점
46
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
RMSProp
• 딥러닝의 대가 제프리 힌톤이 제안
• Adagrad의 단점을 해결하기 위한 방법
• Gt 부분을 합이 아니라 지수평균으로 바꾸어서 대체한 방법
• Gt가 무한정 커지지는 않으면서 최근 변화량의 변수간 상대적
인 크기 차이는 유지
47
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
AdaDelta (Adaptive Delta)
• RMSProp과 유사하게 AdaGrad의 단점을 보완하기 위해 제안
• RMSProp과 동일하게 G를 구할 때 합을 구하는 대신 지수평균
을 구한다
• step size의 변화값의 제곱을 가지고 지수평균 값을 사용
48
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
AdaDelta (Adaptive Delta)
• Gradient Descent와 같은 first-order optimization 대신
Second-order optimization을 approximate 하기 위한 방법
• Newton’s method와 유사 효과
49
Adam (Adaptive Moment Estimation)
• RMSProp과 Momentum 방식을 합친 의미
50
보통 β1는 0.9, β2는 0.999, ϵ 는 10−8 정도의 값을 사용
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Gradient Descent Optimization at Long Valley
• SGD – 너무느려 내려가지 못함
51
원본 - https://imgur.com/a/Hqolp
정리 - http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient-
Descent-Algorithm-Overview.html
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Gradient Descent Optimization at Beale's Function
• SGD – 해를 찾지 못함
52
원본 - https://imgur.com/a/Hqolp
정리 - http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient-
Descent-Algorithm-Overview.html
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Gradient Descent Optimization at Saddle Point
• SGD – 해를 찾지 못함
53
원본 - https://imgur.com/a/Hqolp
정리 - http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient-
Descent-Algorithm-Overview.html
Training Data의 표현
54
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
딥러닝에서의 입력/출력값의 표현
• 입력값, 출력값의 범위가 한정되는 것이 유리
• 문자는 숫자형태로 변환함
• ’서울’ à 1, ’부산’ à 2, …
• Continuous Value: 0~1 범위, -1~1 범위
• Discrete Value: 0 or 1
55
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Output Layer의 Node 출력값 방식 1
56
x1
x2
x3
최종결과:
1, 2, 3
(Dog, Cat, Horse)
y
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Output Layer의 Node 출력값 방식 2
57
x1
x2
x3
Yes/No (Dog)y1
y2
y3
Yes/No (Cat)
Yes/No (Horse)
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
one-hot encoding (학습 데이터의 표현 방법)
58
• NN output layer의 only one node만 hot(1)하도록 하는 형태
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Output Layer의 Node 출력값의 해석 - 테스트시
59
x1
x2
x3
0.3 (Dog)y1
y2
y3
0.4 (Cat)
0.3 (Horse)
최종판단:
Cat(2번방)
raw
산출값
Decision
예) argmax
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
one-hot encoding
• 3이라는 값을 NN에서 표현하는 스타일 2가지
• 노드의 출력값이 3이 되도록.
• 한 노드가 여러 종류의 값을 출력할 수 있는 스타일
• 3개의 노드로 표현.
• 1번 노드, 2번 노드, 3번 노드 중 누가 불이 들어오냐?
• 출력값을 0 or 1로 한정하고, 그 종류만큼 노드 갯수를 만드는 스타일
60
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
one-hot encoding
• 3이라는 값을 NN에서 표현하는 스타일 2가지
• 노드의 출력값이 3이 되도록.
• 한 노드가 여러 종류의 값을 출력할 수 있는 스타일
• 3개의 노드로 표현.
• 1번 노드, 2번 노드, 3번 노드 중 누가 불이 들어오냐?
• 출력값을 0 or 1로 한정하고, 그 종류만큼 노드 갯수를 만드는 스타일
61
Activation Function
활성화 함수
62
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
63
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Sigmoid
64
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
tanh
65
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
ReLU (Rectified Linear Unit)
66
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Sigmoid vs ReLU
67
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Variants of ReLU
68
https://github.com/BIGBALLON/Deep-learning-and-practices/tree/master/Lab4-NIN2
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Leaky ReLU
• 음의 영역을 다시 살린 것
69
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Exponential Linear Units (ELU)
70
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
SoftExponential
71
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
SWISH activation
72
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
SWISH activation
73
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Softmax 가 필요한 상황
74
stanford cs http://cs231n.github.io/linear-classify/
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Softmax
75
import numpy as np
f = np.array([1, 2, 3])
p = np.exp(f) / np.sum(np.exp(f))
print(p)
https://kakalabblog.wordpress.com/2017/04/03/softmax-
%EC%A0%95%EB%A6%AC/
import math
A = [0, 1, 2]
sum_of_exp = sum([math.exp(x) for x in A])
SM = [math.exp(x)/sum_of_exp for x in A]
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Softmax
76
https://kakalabblog.wordpress.com/2017/04/03/softmax-
%EC%A0%95%EB%A6%AC/
softmax
[1, 2, 3] [0.09, 0.25, 0.66]
합계 == 1.0
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Softmax
77
import numpy as np
A = np.array([1, 2, 3])
SM = np.exp(A) / np.sum(np.exp(A))
https://kakalabblog.wordpress.com/2017/04/03/softmax-
%EC%A0%95%EB%A6%AC/
import math
A = [0, 1, 2]
sum_of_exp = sum([math.exp(x) for x in A])
SM = [math.exp(x)/sum_of_exp for x in A]
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Cross Entropy
78
• Entropy - an optimal number of bits per transmission. The
optimal number of bits is known as entropy.
• Cross Entropy - the number of bits we'll need if we encode
symbols from y using the wrong tool ŷ.
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Cross Entropy Loss
• loss function for logistic problem: cross entropy 의 평균
• y – real data
• y’ – predicted data
• logistic loss, log loss
79
https://en.wikipedia.org/wiki/Cross_entropy
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
로그 그래프 (cross entropy)
• x < 1 이면 ln(x)은 음이다.
80
Overfitting, Generalization
81
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Underfitting, Overfitting (regression)
82
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Underfitting, Overfitting (classification)
83
Classification 에서
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Model Complexity vs Generalization
84
Training Data의 구성
85
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
Autoencoder
• input X가 output Y와 같은 형태로 구성
• NN 내부에 데이터의 숨은 속성이 인코딩
• 비고) 압축 알고리즘, PCA
86
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
semi-supervised
• 의미1 : supervised + unsupervised
• 의미2 : unsupervised 문제를 supervised형태로 변환하여 접근하는 방식
87
배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스,
LSTM 학습데이터 구성
88
• 1초 데이터 구성: [속도, RPM, 브레이크, 위도]의 4차원 데이터
• 20초 단위의 윈도우를 입력 및 출력으로 하여 LSTM을 학습시킴
• 1,000초 동안의 운행데이터에서는 (1,000 – 20 + 1) 개의 데이터 묶음(window) 가능
1초 단위 DTG데이터들
i+1 초 i+19 초i 초 …
i+2 초 i+20 초i+1 초 …
...
n+2 초 n+20 초n+1 초 …
Window Size: 20초
속도, RPM, 브레이크, 위도

More Related Content

마이캠퍼스 딥러닝스쿨(한돌) 파트#2-딥러닝핵심

  • 1. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 슬로우캠퍼스 딥러닝 스쿨 – 딥러닝 핵심원리 파트 한대희 @ 슬로우캠퍼스 딥러닝 교육/컨설팅 daehee@slowcampus.com http://medium.com/@slowcampus http://slowcampus.com Just Start up your Deep Learning for your Future !
  • 2. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 슬로우캠퍼스 SLOW는 SW(소프트웨어) 입니다 2 슬로우는 학습과 성장을 의미합니다 홈페이지 http://slowcampus.com 블로그 http://medium.com/@slowcampus
  • 3. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 딥러닝 스쿨: 딥러닝 Tensorflow & Keras 1일 완성 • 딥러닝 워크샵 클릭 • 한대희 강사 클릭 • 딥러닝 참가 클릭 3 딥러닝 배우고 달리자
  • 5. Neuron – 신경세포 • 화학적/전기적 신호를 통해 정보를 처리하고 활성화되는 신경 세포 5
  • 6. 신경의 연결 - 신경망 • 인간 두뇌 – 1조 개의 Neuron들의 연결 6
  • 7. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Biological Neuron 7http://cs231n.github.io/neural-networks-1/ 수신부: 가지돌기(수상돌기) 발신(전달)부: 축삭
  • 8. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 수상돌기, 신경세포체, 축삭 8 https://ko.wikipedia.org/wiki/%EC%B6%95%EC%82%AD
  • 9. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 시냅스 : 뉴런 2개의 연결 부위 9 https://en.wikipedia.org/wiki/Synapse
  • 10. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Neuron 신호전달 흉내내기 • X0 - 뉴런 A의 출력 • W0 – 뉴런 A와 B의 연결 강도 • B0 – 뉴런 B내부 bias • Activation function – 뉴런 B의 firing rate 10
  • 11. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Sigmoid 11
  • 12. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Layers, Nodes, Edges 12 x1 x2 x3 y1 y2 y3 Wi Wibi bi bi input hidden output
  • 13. Artificial NN - 계산 • Node: Neuron • Edge: Neuron간의 연결강도 - Weights • input에 weight을 곱하고, 전체를 합하고, 활성화 함수를 통해 출력값 결정 13
  • 14. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 실제값(학습데이터)와 모델의 산출값의 차이 최소화 14 NN 모델 X: 실제 입력 데이타 YREAL: 실제 출력 데이터 (target) YPR: 학습 후 NN의 출력값 (predicted) 오차, cost, loss
  • 15. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 오차 - mean squared error (MSE) 15
  • 16. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 참고: 통계학 용어 • Truth == Yreal : 실제 데이터 • Estimate == Ymodel: 모델의 예 측값(predict) 16 https://en.wikipedia.org/wiki/Linear_regression
  • 17. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 참고: 통계학 용어 • Error (오차) • MSE (Mean Squared Error) 17 https://en.wikipedia.org/wiki/Estimator
  • 18. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Approximation Theory - 수학 18 In mathematics, approximation theory is concerned with how functions can best be approximated with simpler functions, and with quantitatively characterizing the errors introduced thereby.
  • 19. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Universal Approximation Theorem – Neural Network • NN(MLP)내부의 노드의 활성화 함수인 sigmoid 함수의 조합으 로 모든 함수(continuous function)를 근사화할 수 있음을 증명 함 – George Cybenko (1989) • 특정 활성화 함수보다는 feedforward 구조 자체의 특성에 의해 universal approximator되는것을 증명함 -Kurt Hornik (1991) 19 https://en.wikipedia.org/wiki/Universal_approximation_th eorem
  • 21. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 딥러닝(NN)의 학습 기본 원리 21
  • 22. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Training == Optimization • Loss function값을 최소화하는 optimization 과정 • Loss function은 각 layer의 weights, bias 연산의 조합 • Loss function을 최소화하기 위한 gradient 계산 • 데이터가 n차수임 • gradient == vector of partial derivatives 22
  • 23. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Back-propogation, Derivatives, Gradient Descent • We use derivatives to iteratively make our way the minimum point using gradient descent. 23
  • 24. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 데이터는 Vector, Matrix 형태 • 딥러닝(머신러닝)은 학습데이터 vector, matrix 와의 오차를 최 소화하는 과정이다. 24
  • 25. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Loss는 Weights의 함수. 25 Loss J(W) 를 최소화하는 W를 찾자
  • 26. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Optimization • 개미(ball)가 가장 낮은 지점을 찾아가는 것. 26
  • 27. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Gradient (단순화한 버전) • Calculate slope at current position • If slope is negative, move right • If slope is positive, move left • (Repeat until slope == 0) 27
  • 28. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Gradient (기울기 이용하는 버전) Naive Gradient Descent: • Calculate "slope" at current ”w" position • Change w by the negative of the slope. • w ß w - slope • (Repeat until slope == 0) 28
  • 29. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Optimization: W update 과정 29 W ß W – StepSize * Gradient(W) * J(W)
  • 30. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 30
  • 31. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 31
  • 32. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Global optima, Local optima 32
  • 33. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Gradient Descent (경사하강법) 단점 • relatively slow close to the minimum • Local minima 빠지기 쉽다 33
  • 34. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Gradient Descent 종류 • Standard (Batch) gradient descent • 학습데이터 전체에 대해 gradient descent 계산 • Stochastic gradient descent (SGD) • 학습데이터 한개에 대해 gradient descent 수행 (one by one) • Mini-batch gradient descent • 학습데이터 N개에 대해 gradient descent 수행 • N: mini-batch 개수. 50~256 정도 34 http://ruder.io/optimizing-gradient- descent/index.html#stochasticgradientdescent
  • 35. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, SGD (Stochastic Gradient Descent) • Fluctuations 발생하기 쉬움. 35
  • 36. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Stochastic Gradient Descent 36 http://ruder.io/optimizing-gradient- descent/index.html#stochasticgradientdescent • 단점: 정확한 minimum으로의 수렴이 어려울 수 있음. • 장점: local minima에서 jump해서 나올 수 있음.
  • 37. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Mini batch Gradient Descent 37 http://ruder.io/optimizing-gradient- descent/index.html#stochasticgradientdescent
  • 39. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Optimization: W update 과정 39 W ß W – StepSize * Gradient(W) * J(W)
  • 40. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Gradient Descent Optimization 종류들 • Momentum • Adagrad • Adadelta • RMSprop • Adam • AdaMax • Nadam 40 http://ruder.io/optimizing-gradient- descent/index.html#stochasticgradientdescent
  • 41. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Momentum • ‘관성’과 Gradient를 혼합하여 이동하는 방식 • W 변화량 == 과거에 이동하던 방향 + Gradient • SGD가 Oscillation 현상에서 벗어나도록 도 41 à
  • 42. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Momentum – 속도향상, Local Minima 탈출 42
  • 43. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Nesterov Accelerated Gradient (NAG) 43
  • 44. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Nesterov Accelerated Gradient (NAG) • Gradient 계산하는 지점을 달리함. • momentum step을 먼저 이동한 자리에서의 gradient 계 • Brake 역할 44
  • 45. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Adagrad(Adaptive Gradient) • 변수들을 update할 때 각각의 변수마다 step size를 다르게 설 정해서 이동하는 방식 • 지금까지 많이 변화했던 변수들은 step size를 작게 하자’ 45
  • 46. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Adagrad(Adaptive Gradient) • Neural Network의 parameter가 k개라고 할 때, • Gt는 k차원 벡터 • ‘time step t까지 각 변수가 이동한 gradient의 sum of squares’ 를 저장한다. • Gt의 루트값에 반비례한 크기로 이동을 진행 • Gt의 값들은 계속해서 증가 à 학습이 오래 진행될수로 거의 움 직이지 않게 되는 단점 46
  • 47. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, RMSProp • 딥러닝의 대가 제프리 힌톤이 제안 • Adagrad의 단점을 해결하기 위한 방법 • Gt 부분을 합이 아니라 지수평균으로 바꾸어서 대체한 방법 • Gt가 무한정 커지지는 않으면서 최근 변화량의 변수간 상대적 인 크기 차이는 유지 47
  • 48. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, AdaDelta (Adaptive Delta) • RMSProp과 유사하게 AdaGrad의 단점을 보완하기 위해 제안 • RMSProp과 동일하게 G를 구할 때 합을 구하는 대신 지수평균 을 구한다 • step size의 변화값의 제곱을 가지고 지수평균 값을 사용 48
  • 49. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, AdaDelta (Adaptive Delta) • Gradient Descent와 같은 first-order optimization 대신 Second-order optimization을 approximate 하기 위한 방법 • Newton’s method와 유사 효과 49
  • 50. Adam (Adaptive Moment Estimation) • RMSProp과 Momentum 방식을 합친 의미 50 보통 β1는 0.9, β2는 0.999, ϵ 는 10−8 정도의 값을 사용
  • 51. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Gradient Descent Optimization at Long Valley • SGD – 너무느려 내려가지 못함 51 원본 - https://imgur.com/a/Hqolp 정리 - http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient- Descent-Algorithm-Overview.html
  • 52. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Gradient Descent Optimization at Beale's Function • SGD – 해를 찾지 못함 52 원본 - https://imgur.com/a/Hqolp 정리 - http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient- Descent-Algorithm-Overview.html
  • 53. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Gradient Descent Optimization at Saddle Point • SGD – 해를 찾지 못함 53 원본 - https://imgur.com/a/Hqolp 정리 - http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient- Descent-Algorithm-Overview.html
  • 55. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 딥러닝에서의 입력/출력값의 표현 • 입력값, 출력값의 범위가 한정되는 것이 유리 • 문자는 숫자형태로 변환함 • ’서울’ à 1, ’부산’ à 2, … • Continuous Value: 0~1 범위, -1~1 범위 • Discrete Value: 0 or 1 55
  • 56. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Output Layer의 Node 출력값 방식 1 56 x1 x2 x3 최종결과: 1, 2, 3 (Dog, Cat, Horse) y
  • 57. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Output Layer의 Node 출력값 방식 2 57 x1 x2 x3 Yes/No (Dog)y1 y2 y3 Yes/No (Cat) Yes/No (Horse)
  • 58. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, one-hot encoding (학습 데이터의 표현 방법) 58 • NN output layer의 only one node만 hot(1)하도록 하는 형태
  • 59. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Output Layer의 Node 출력값의 해석 - 테스트시 59 x1 x2 x3 0.3 (Dog)y1 y2 y3 0.4 (Cat) 0.3 (Horse) 최종판단: Cat(2번방) raw 산출값 Decision 예) argmax
  • 60. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, one-hot encoding • 3이라는 값을 NN에서 표현하는 스타일 2가지 • 노드의 출력값이 3이 되도록. • 한 노드가 여러 종류의 값을 출력할 수 있는 스타일 • 3개의 노드로 표현. • 1번 노드, 2번 노드, 3번 노드 중 누가 불이 들어오냐? • 출력값을 0 or 1로 한정하고, 그 종류만큼 노드 갯수를 만드는 스타일 60
  • 61. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, one-hot encoding • 3이라는 값을 NN에서 표현하는 스타일 2가지 • 노드의 출력값이 3이 되도록. • 한 노드가 여러 종류의 값을 출력할 수 있는 스타일 • 3개의 노드로 표현. • 1번 노드, 2번 노드, 3번 노드 중 누가 불이 들어오냐? • 출력값을 0 or 1로 한정하고, 그 종류만큼 노드 갯수를 만드는 스타일 61
  • 63. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 63
  • 64. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Sigmoid 64
  • 65. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, tanh 65
  • 66. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, ReLU (Rectified Linear Unit) 66
  • 67. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Sigmoid vs ReLU 67
  • 68. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Variants of ReLU 68 https://github.com/BIGBALLON/Deep-learning-and-practices/tree/master/Lab4-NIN2
  • 69. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Leaky ReLU • 음의 영역을 다시 살린 것 69
  • 70. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Exponential Linear Units (ELU) 70
  • 71. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, SoftExponential 71
  • 72. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, SWISH activation 72
  • 73. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, SWISH activation 73
  • 74. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Softmax 가 필요한 상황 74 stanford cs http://cs231n.github.io/linear-classify/
  • 75. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Softmax 75 import numpy as np f = np.array([1, 2, 3]) p = np.exp(f) / np.sum(np.exp(f)) print(p) https://kakalabblog.wordpress.com/2017/04/03/softmax- %EC%A0%95%EB%A6%AC/ import math A = [0, 1, 2] sum_of_exp = sum([math.exp(x) for x in A]) SM = [math.exp(x)/sum_of_exp for x in A]
  • 76. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Softmax 76 https://kakalabblog.wordpress.com/2017/04/03/softmax- %EC%A0%95%EB%A6%AC/ softmax [1, 2, 3] [0.09, 0.25, 0.66] 합계 == 1.0
  • 77. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Softmax 77 import numpy as np A = np.array([1, 2, 3]) SM = np.exp(A) / np.sum(np.exp(A)) https://kakalabblog.wordpress.com/2017/04/03/softmax- %EC%A0%95%EB%A6%AC/ import math A = [0, 1, 2] sum_of_exp = sum([math.exp(x) for x in A]) SM = [math.exp(x)/sum_of_exp for x in A]
  • 78. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Cross Entropy 78 • Entropy - an optimal number of bits per transmission. The optimal number of bits is known as entropy. • Cross Entropy - the number of bits we'll need if we encode symbols from y using the wrong tool ŷ.
  • 79. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Cross Entropy Loss • loss function for logistic problem: cross entropy 의 평균 • y – real data • y’ – predicted data • logistic loss, log loss 79 https://en.wikipedia.org/wiki/Cross_entropy
  • 80. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, 로그 그래프 (cross entropy) • x < 1 이면 ln(x)은 음이다. 80
  • 82. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Underfitting, Overfitting (regression) 82
  • 83. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Underfitting, Overfitting (classification) 83 Classification 에서
  • 84. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Model Complexity vs Generalization 84
  • 86. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, Autoencoder • input X가 output Y와 같은 형태로 구성 • NN 내부에 데이터의 숨은 속성이 인코딩 • 비고) 압축 알고리즘, PCA 86
  • 87. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, semi-supervised • 의미1 : supervised + unsupervised • 의미2 : unsupervised 문제를 supervised형태로 변환하여 접근하는 방식 87
  • 88. 배포금지 J 외부자료외 저작권 보호 딥러닝스쿨 @ 슬로우캠퍼스, LSTM 학습데이터 구성 88 • 1초 데이터 구성: [속도, RPM, 브레이크, 위도]의 4차원 데이터 • 20초 단위의 윈도우를 입력 및 출력으로 하여 LSTM을 학습시킴 • 1,000초 동안의 운행데이터에서는 (1,000 – 20 + 1) 개의 데이터 묶음(window) 가능 1초 단위 DTG데이터들 i+1 초 i+19 초i 초 … i+2 초 i+20 초i+1 초 … ... n+2 초 n+20 초n+1 초 … Window Size: 20초 속도, RPM, 브레이크, 위도