1. Deep learning Overview
Kang, Min-Guk
1사진: https://medium.com/@startuphackers/building-a-deep-learning-neural-network-startup-7032932e09c
2. Contents
2
1. Machine learning의 정의 3
2. Machine learning의 분류 4 ~ 8
3. Machine learning의 역사 9
4. Perceptron 10 ~ 16
5. Universal Approximation Theorem 17
6. Neural Network는 Interpolation인가 fitting인가? 18
7. Loss함수에 대한 고찰 19 ~ 25
8. Backpropagation에 대한 수학적 증명 26
9. Stochastic Gradient Descent 27
10. Gradient Vanishing을 해결한 방법 28 ~ 30
11. Xavier initializer(input과 output의 Variance를 비슷하게 만듬) 31
12. CNN의 다양한 기술들 32 ~ 34
13. Overfitting을 대략적으로 확인하는 방법 35
14. Overfitting을 해결한 방법 36
15. Regression과 Classification의 차이 37
16. 기타(filter의 인수분해, Parameter 수 계산하기, Convolution size 계산하기, learning_rate 정하기, Search 방법론 ) 38 ~ 42
17. 저의 정리 자료 소개 43
3. 3
Machine learning is a field of computer science that gives computer systems the ability to “learn” with data,
Without being explicitly programmed
Q. 그러면 Deep learning과 Machine learning의 차이점은 뭐에요??
사진: https://medium.com/swlh/ill-tell-you-why-deep-learning-is-so-popular-and-in-demand-5aca72628780
http://www.slideshare.net/SfeirGroup/first-step-deep-learning-by-jiqiong-qiu-devfest-2016
아래의 사진으로 요약가능!
1. Machine learning의 정의
4. 4사진: David Barber의 Machine Learning 분류
2. Machine learning의 분류
Machine learning은 크게 3가지로 분류된다.
1. Supervised learning(지도 학습)
2. Unsupervised learning(비지도 학습)
3. Reinforcement learning(강화 학습)
※ 사람마다 보는 관점이 다르다. David Barber는
Semi_supervised learning을 더 중요시 생각한 것 같다.
5. 5
2. Machine learning의 분류
1. Supervised learning(지도 학습)
대표적인 지도 학습 알고리즘으로는
Artificial Neural network, Bayesian statistics, Decision Tree, Gaussian process regression, SVM,
Random Forests등이 있으며, 데이터와 그에 따른 라벨 값을 알고 학습을 하는 것을 의미한다.
6. 6
2. Machine learning의 분류
2. Unsupervised learning(비지도 학습)
지도학습의 경우, 사람이 일일이 라벨 값을 지정해 줘야하는 것에 반해, 비지도 학습은 그러한 과정이 필요 없다.
주로 분류(Clustering)문제나 차원 축소(Dimensionality reduction)에 사용되어 지며, 대표적인 예로는
Variational AutoEncoder, Generative Adversarial Networks 등이 있다.
Variational AutoEncoder를 이용한 차원 축소
7. 7
2. Machine learning의 분류
3. Reinforcement learning(강화 학습)
어떤 행위에 대한 보상을 정의해주고, 보상의 값을 최대화 하도록 학습을 시켜주는 방법으로, 이를 활용한
대표적인 예로는 알파고, 컬링 머신 등이 있다.
사진: https://medium.com/udacity/deep-learning-nanodegree-foundation-program-syllabus-in-depth-2eb19d014533
8. 8
2. Machine learning의 분류 – Deep Architecture Genealogy
사진: https://github.com/hunkim/deep_architecture_genealogy
9. 3. Machine learning의 역사
9
(1943) McCulloch, Pitts의
간단한 신경망 계발
(1957) Rosenblatt의 Perceptron
용어 및 알고리즘 개발
(1969) Minsky가 XOR에 문제는
단일 Perceptron으로 해결 못한다는
것을 증명/ 침묵기 시작
긴 침묵기
(1973) Grossberg의 RNN 개발
(1979) Vapnik의 SVM 개발
(1986) Rumelhart와 Hinton의
Backpropagation Algorithm 발표!
(1995) Lecun과 Bengio의
CNN 발표!
하지만 Gradient Vanishing
문제가 생김
(2006,2007) Hinton과 Bengio가
2편의 논문으로 Gradient Vanishing
문제를 어느 정도 해결함
(2012) Alex Net의 발표
(2014) Ian J. Goodfellow의
Generative Adversarial Networks
발표
황금기
11. 4. Perceptron – Activation Function에 대한 고찰
11
우리가 두가지 선택의 기로에 서있다고 가정하자.
우리는 의사결정을 내릴 때 내가 가지고 있는 정보를 참조하는데, 이 정보를 이용해서 결정을 할 때 그 기준은
명백하면 좋다.
이 말을 머신러닝 관점에서 생각을 해보면, Perceptron이 정보의 양을 결정해 줄 때는 Activation Function의 Decision
Boundary가 평소에는 완만하다가 Boundary 근처에 갈 때는 급하게 움직이는게 좋다.
따라서 과거에는 Sigmoid함수를 Activation Function으로 사용했다.
13. 4. Perceptron – Activation Function에 대한 고찰
Sigmoid Function의 장단점
장점
1. Decision Boundary 근처에서 빠르게 변한다.
2. 결과가 0~1사이의 값으로 정해진다. 확률적으로 해석가능
3. 미분 가능하다. der(sigmoid) = sigmoid(1-sigmoid)
단점
1. Zero Centered가 아니다. https://stats.stackexchange.com/questions/237169/why-are-non-zero-centered-activation-functions-a-problem-in-backpropagation
2. Gradient Vanishing이 생긴다. Backpropagation 하는 과정에서 sigmoid(1-sigmoid)가 계속 곱해짐
3. 결과 값이 Saturated 하다. Kill the gradients, so training speed is very slow!
13
14. 4. Perceptron – Activation Function에 대한 고찰
tanh의 장단점
장점
1. Decision Boundary 근처에서 빠르게 변한다.
2. 결과 값이 -1~1이다. Generative model의 output layer에 많이 사용.
3. Zero Centered이다. 학습이 양방향(+,-)으로 다 일어날 수 있다.
단점
1. Gradient Vanishing이 생긴다.
2. 결과 값이 Sigmoid 보다 더 Saturated 하다. Kill the gradients, so training speed is very slow!
14
15. 4. Perceptron – Activation Function에 대한 고찰
Sigmoid Function, tanh의 대체 함수 Relu
장점
1. 비선형이다.
2. 미분의 결과가 간단하다(0~1) Gradient Vanishing 문제가 덜 하다, 학습 속도가 빠르다.
3. 생물학적으로 sigmoid보다 더 적합하다고 한다.
단점
1. Zero Centered가 아니다. 학습이 한 방향으로만 일어난다.
2. Dead Relu가 생긴다. Relu의 결과가 0이면 Gradient update가 더 이상 일어나지 않는다(NN의 약(10~20%)).
이를 해결하기 위해 elu(VAE에서 사용) 또는 leaky relu(DC GAN에서 사용)가 나옴.
15
16. 4. Perceptron – Activation Function에 대한 고찰
16사진: http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture6.pdf
17. 5. Universal Approximation Theorem
17참조: https://en.m.wikipedia.org/wiki/Universal_approximation_theorem
In the Mathematical theory of ANN, the Universal approximation theorem states that a feed forward
Network with a single hidden layer containing a finite number of neurons, can approximate continuous
Functions on compact subsets of ℝ 𝑛
, under mild assumptions on the activation function.
위의 이론은 G. cybenko가 1989년에 sigmoidal activation function을 가지고 증명하였다.
하지만, 현실에서는 Infinite number of neurons를 구현할 수 없으므로 우리는 다음과 같은 방법으로 이를 해결하고자 한다.
1. 층을 깊게 쌓는다.
2. CNN, RNN과 같은 특수한 Model을 만든다.
18. 6. Neural Network는 Interpolation인가 fitting인가?
18사진: http://paulbourke.net/miscellaneous/interpolation/
https://m.blog.naver.com/PostView.nhn?blogId=mykepzzang&logNo=220222414618&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
Fitting
Interpolation
Fitting이다. NN은 target점과의 거리를 줄이는게 목표이긴 하지만 target 점을 확실히 지나지는 않기때문에
(100% Overfitting) interpolation이라고 할 수는 없다.
20. 7. Loss함수에 대한 고찰
20참고 자료: http://solarisailab.com/archives/2237
1. MSE = 𝑦 𝑖
1
2𝑛
(𝑦𝑖 − 𝑦𝑖)2 & CE = −
1
𝑛 𝑦 𝑖
[ 𝑦𝑖 log 𝑦𝑖 + 1 − 𝑦𝑖 log 1 − 𝑦𝑖 ] 의 학습 속도
가정: 네트워크의 맨 끝 단에 위치한 W의 Gradients를 구했음.
Activation Function이 sigmoid일 경우, Mean square Error의 Gradient 값을 계산해보면 다음과 같다.
𝜕𝐿
𝜕𝑊
=
1
𝑛
𝑦 𝑖
(𝑦𝑖 − 𝑦𝑖) ×
𝜕𝑦𝑖
𝜕𝑊
=
1
𝑛
𝑦 𝑖
(𝑦𝑖 − 𝑦𝑖) × 𝑦𝑖(1 − 𝑦𝑖) × 𝑥
Activation Function이 sigmoid 일 경우, Cross entropy의 Gradient 값은 다음과 같다.
𝜕𝐿
𝜕𝑊
= −
1
𝑛
𝑦 𝑖
𝑦𝑖
1
𝑦𝑖
+ 1 − 𝑦𝑖
1
1 − 𝑦𝑖
×
𝜕𝑦𝑖
𝜕𝑊
= −
1
𝑛
𝑦 𝑖
𝑦𝑖
1
𝑦𝑖
+ 1 − 𝑦𝑖
1
1 − 𝑦𝑖
× 𝑦𝑖 1 − 𝑦𝑖 = −
1
𝑛
𝑦 𝑖
𝑦𝑖 − 𝑦𝑖 × 𝑥
∴ MSE보다 Cross Entropy가 불필요한 미분항이 없기 때문에 학습속도가 더 빠르다.
21. 7. Loss함수에 대한 고찰
Cross Entropy에 대한 고찰_1
Y = -[0.2log(x) + 0.8log(1-x)]의 그래프 Y = -[0.4log(x) + 0.6log(1-x)]의 그래프
21
22. 7. Loss함수에 대한 고찰
Cross Entropy에 대한 고찰_1
눈치 채셨나요?
앞의 두 그래프를 보면 알 수 있듯이, -Yln(X) –(1-Y)ln(1-X)는 Y=X일 때 최소값을 가지게 됩니다.
따라서 element wise 연산을 하는 Cross Entropy를 최소화 시킨다는 말은
“결과로 나온 각 element들이 ground truth(label)과 같아지도록 학습을 한다”와 똑같은 의미를 가지게 됩니다.
22
23. 7. Loss함수에 대한 고찰
Cross Entropy에 대한 고찰_2
그러면 CE의 최소값은 무엇인가요?? Cross Entropy의 식을 살펴보자!
𝐻 𝑦, 𝑦 = 𝐻 𝑦 + 𝐷 𝐾𝐿( 𝑦| 𝑦 𝑤ℎ𝑒𝑟𝑒 𝐻( 𝑦)는 섀넌 엔트로피, 𝐷 𝐾𝐿( 𝑦, | 𝑦 = kullback − Leibler divergence
𝐻 𝑦𝑖 = − 𝑃( 𝑦𝑖) × log(𝑃 𝑦𝑖 ) 으로 우리는 라벨 값을 알고 있으므로 이 값은 고정된 값이다.
𝐷 𝐾𝐿( 𝑦𝑖| 𝑦𝑖 = 𝑃 𝑦𝑖 𝑙𝑜𝑔(
𝑃 𝑦 𝑖
𝑃 𝑦 𝑖
) 으로 그 값은 항상 ≥ 0이며 두 확률분포가 같아지면 0의 값을 가진다.
∴ Cross Entropy의 최소 값은 Target value의 섀넌 엔트로피 값이다.
23
24. 7. Loss함수에 대한 고찰
Neural Network의 형태와 loss 함수
24
자료 출처:
https://www.facebook.com/groups/TensorFlowKR/permalink/496009234073473/?hc_location=u
fi
다운로드: https://mega.nz/#!tBo3zAKR!yE6tZ0g-GyUyizDf7uglDk2_ahP-zj5trVZSLW3GAjw
(Hwalsuk Lee님 슬라이드 자료에서 따왔습니다.)
25. 7. Loss함수에 대한 고찰
Neural Network의 형태와 loss 함수
이전 슬라이드의 첫번째 사진을 보면 알 수 있듯이 Loss함수를 MSE로 하면 Neural Network를 Gaussian distribution으로
근사시키는 것이다.
이전 슬라이드의 두번째 사진을 보면 알 수 있듯이 Loss함수를 CE로 하면 Neural Network를 Bernoulli distribution으로
근사시키는 것이다.
25
26. 8. Backpropagation에 대한 수학적 증명
https://www.slideshare.net/MingukKang/backpropagation-85544666를 참조
26
27. 9. Stochastic Gradient Descent
27
SGD란 Training Data 모두를 모델에 넣은 후 loss값을 구하여 Gradient Descent를 하는 것이 아니라,
Mini-Batch(32,64,128을 많이 사용, Stochastic 하다)를 이용하여 loss값을 구하고 이를 이용해 Gradient Descent를
하여 Global minimum이 아닌 Local minimum을 찾아주는 방법이다.
이는 Training data에 overfit한 global optimum을 찾아도 별 소용이 없기에 적당한 local optimum을 찾아 주는 방식으로,
일반적으로 Mini batch의 사이즈가 클수록 학습 속도가 빠르고 성능은 떨어진다(Gradient Update가 자주 일어나지 않음).
※ Batch_size가 크면 Generalization 성능이 떨어진다는 것은 거의 정설에 가까움.
(참조: https://www.youtube.com/watch?v=jFpO-E4RPhQ&feature=youtu.be)
28. 10. Gradient Vanishing을 해결한 방법
1. Initialize well
힌튼이 2006년 발표한 “A fast learning Algorithm for deep belief nets”에서 시작
(자세한 내용은 다음 링크 참조: https://www.slideshare.net/MingukKang/restricted-boltzmann-machine-87195518)
이 방법을 이용하여 initialization을 하면 상당히 비효율 적이기에 현재는 Xavier initializer, He initializer를 사용.
2. Relu
Backpropagation를 할 때 Gradient에 sigmoid의 미분값(0~1)이 계속 곱해져 Gradient의 값이 작아지던 현상을 해결
But, x<0인 부분으로 인해 생기는 Dead Relu 때문에 문제가 됨
(이 때 Xavier 대신 He initializer를 사용하면 Dead Relu가 덜 생긴다.)
(비 선형이면서 x>0인 부분에서 미분 값이 간단한 Elu, Leaky Relu 등이 등장함.)
28Xavier_init He_init http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture6.pdf
29. 10. Gradient Vanishing을 해결한 방법
3. Batch Normalization
MLP or Convolutional layer의 결과로 나오는 값을 정규화(normalization)시킨 다음 학습이 가능한 parameters 𝛾, 𝛽를
도입하여 다음과 같은 연산을 하였다.
𝑥 =
𝑥 − 𝜇
𝜎
, 𝑦 𝑝𝑟𝑒_𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛 = 𝛾 𝑥 + 𝛽
설명: 학습 시 현재 layer의 입력은 모든 이전 layer의 파라미터 변화에 영향을 받게 되며, 망이 깊어짐에 따라 이전 layer의
작은 파라미터 변화가 증폭되어 뒷단에 큰 영향을 미치게 되는데 이를 Covariate Shift라고 한다.
Internal Covariance Shift라는 현상은 Network의 각 층이나 Activation마다 input의 distribution이 달라지는 현상을 말하는데
이 현상을 막기위해 정규화를 해야 한다. 하지만, 정규화를 하기 위해서는 covariance matrix의 계산과 invers의 계산이
필요하고, 정규화 과정에서 앞 layer의 bias의 역할은 무시되므로 이를 위의 Batch Normalization으로 해결하였다.
※ 일반적으로 Batch Normalization layer 이후에 Activation layer가 나온다.
29내용 출처: https://shuuki4.wordpress.com/2016/01/13/batch-normalization-설명-및-구현/
30. 10. Gradient Vanishing을 해결한 방법
4. Residual network
30사진: https://arxiv.org/abs/1512.03385
장점
1. Skip connection에 의해 Gradient vanishing이 일어나지 않음
(참조: https://kangbk0120.github.io/articles/2018-01/identity-mapping-in-deep-resnet)
2. Skip connection이 Gradient highway 역할을 하여 학습 속도가
빨라진다.
31. 11. Xavier initializer(input과 output의 Variance를 비슷하게 만듬)
31
𝑌 = 𝑊𝑖 𝑋𝑖 라고 하면 Var(𝑊𝑖 𝑋𝑖)는 다음과 같다. (참조: https://en.wikipedia.org/wiki/Variance#Product_of_independent_variables)
Var(𝑊𝑖 𝑋𝑖) = 𝔼 𝑋𝑖
2
𝑉𝑎𝑟 𝑊𝑖 + 𝔼 𝑊𝑖
2
𝑉𝑎𝑟 𝑋𝑖 + 𝑉𝑎𝑟 𝑊𝑖 𝑉𝑎𝑟 𝑋𝑖
≈ 𝑉𝑎𝑟 𝑊𝑖 𝑉𝑎𝑟 𝑋𝑖 ∵ 데이터 𝑥𝑖 , 가중치 𝑤𝑖의 기대값을 0으로 가정
∴ 𝑉𝑎𝑟 𝑌 ≈ 𝑉𝑎𝑟 𝑊𝑖 𝑋𝑖 ≈ 𝑛𝑉𝑎𝑟 𝑊𝑖 𝑉𝑎𝑟 𝑋𝑖 ∵ 𝑥𝑖, 𝑤𝑖 가 서로 독립적이고, 균등한 분포를 가지고 있다고 가정
우리는 Input의 Variance와 output의 variance를 똑같게 하는 것이 목표이기에 𝑉𝑎𝑟 𝑊𝑖 =
1
𝑛 𝑖𝑛
이여야 한다.
마찬가지로 Backpropagation을 할 때 Error signal의 Variance도 똑같이 하고 싶으므로(맞는지 잘 모르겠습니다.)
𝑉𝑎𝑟 𝑊𝑖 =
1
𝑛 𝑜𝑢𝑡
이다.
Xavier initializer는 이 두 variance의 산술평균을 사용해 초기화를 해준다.
따라서 𝑥𝑎𝑣𝑖𝑒𝑟 𝑖𝑛𝑖𝑡𝑖𝑎𝑙𝑖𝑧𝑒𝑟의 𝑉𝑎𝑟 𝑊𝑖 =
2
𝑛 𝑖𝑛+𝑛 𝑜𝑢𝑡
, 𝑚𝑒𝑎𝑛 = 0 이다.
참조: http://andyljones.tumblr.com/post/110998971763/an-explanation-of-xavier-initialization
32. 12. CNN의 다양한 기술들
32
1. Padding
https://xrds.acm.org/blog/2016/06/convolutional-neural-networks-cnns-illustrated-explanation/
Padding특징
장점
1. 컨볼루션 연산 후 이미지의 크기를 유지할 수 있다.
2. 테두리 정보를 지켜 나가며 학습을 할 수 있다.
(https://www.facebook.com/groups/TensorFlowKR/permalink/612566285751100/)
단점
1. 테두리의 0값이 안쪽으로 밀려들어가면서, Spatial
information을 훼손할 수도 있다고 의심됨
2. Kapathy가 padding에 대해 부정적임
33. 12. CNN의 다양한 기술들
33
2. Max Pooling
https://computersciencewiki.org/index.php/Max-pooling_/_Pooling
Max Pooling의 특징
장점
1. 컨볼루션 연산 후 이미지의 크기를 유지할 수 있다.
2. Parameter 수가 줄어 학습이 빨라진다.
3. Receptive Field를 키워 더 큰 Feature들을 볼 수 있다.
4. 위치에 대한 Invariance를 유지시켜준다.
5. 2x2 stride Convolution보다 연산의 관점에서는 효율적이다.
단점
1. Argmax에 해당하는 부분만 Backpropagation이 되어
bias가 생길 수 있음.
2. 생성모델에서는 Pooling의 큰 정보손실 때문에 불리함.
Strides를 2로한 Convolution 사용
34. 12. CNN의 다양한 기술들
34
2. Global Average Pooling(GAP)
http://nmhkahn.github.io/Casestudy-CNN
GAP의 특징
장점
1. 원본 image size와 관련없이 분류문제를 해결할 수 있다.
2. Parameter 수를 줄여 계산이 빨라진다.
3. Classification을 할 때 spatial information을 사용할 수 있다.
(기존의 방법은 MLP를 할 때 Spatial information을 잃어버리기 때문)
단점
35. 13. Overfitting을 대략적으로 확인하는 방법
35참조: http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture6.pdf
May be underfitting
36. 14. Overfitting을 해결한 방법
36사진: https://medium.com/@amarbudhiraja/https-medium-com-amarbudhiraja-learning-less-to-learn-better-dropout-in-deep-machine-learning-
74334da4bfc5
1.Ensemble, Regularization, Dropout
① Ensemble: 한 사람이 판단하는 것보다는 여러 사람이 판단하는게 좋다!
② Regularization
A = [0.1, 0.5, 0.3, 0.1]라고 하면 L1 Regularization을 사용하면 [1, 0, 0, 0]이 되고,
L2 Regularization을 사용하면 [0.25, 0.25, 0.25, 0.25]가 된다.
Data의 Features에 지배적인 특징이 결과에 큰 영향을 미친다면 L1,
지배적인 Features가 없고 모든 Features들이 골고루 결과에 영향을 준다면 L2 Regularization이 좋다.
③ Dropout: sub network Ensemble이라고 생각하면 된다. 특정 하나의 Weights가 결과에 지배적이게 되는 것을 막는다.
37. 15. Regression과 Classification의 차이
37
Regression은 특정 값을 예측하는 것이고, Classification은 label을 예측하는 것이다.
하지만, MNIST 데이터를 Classification을 할 때, logistic function을 사용하고, 일반적으로 logistic function은 regression에
많이 사용된다. 그러면 위의 문제는 Classification 문제일까? Regression 문제일까??
Classification 문제이다.
일반적으로 위의 분류를 logistic regression classification이라고 한다.
이는 output value([0.1, 0.2, 0.1, 0.5, …0.1])의 값을 CE를 통해 target value([0, 0, 0, 1, …0])으로 근사 시키는 regression을
통해, 최종 output value([0.01, 0.02, 0.02, 0.90, …])를 구하고, 이를 이용하여 Classification(label =4)한다는 것을 의미한다.
38. 16. 기타(filter의 인수분해)
38사진: https://www.topbots.com/a-brief-history-of-neural-network-architectures/
Google의 Inception network에서는 5x5 Convolution 연산을
3x3 두개로 대체했는데 위의 두개가 같은 것일까??
반은 맞고, 반은 틀리다.
Receptive field의 관점에서 보면 위의 말은 맞는 것이다.
(오른쪽 사진 참조)
하지만, Parameter의 관점에서 보면 둘은 다른 것이다.
3x3 두개의 경우 parameter 개수는 18개로 5x5의 parameter 개수인
25개보다 7개 적기에 학습에 소요되는 시간은 적다.
하지만, parameter의 수가 작다는 것은 표현력이 그만큼 떨어진다는
것을 이해하고 있어야한다.
39. 16. 기타(filter의 인수분해)
39사진: https://www.topbots.com/a-brief-history-of-neural-network-architectures/
※ 나중에 Inception network에서는 7x7을 3x3/ 3개로 분해,
5x5를 3x3/ 2개로 분해 하는 것 외에도 3x3을 1x3, 3x1로
인수분해 하여 사용했다.
40. 16. 기타(Parameter 수 계산하기, Convolution size 계산하기)
40
Q1. Input volume: 32x32x3
10, 5x5x3 filters with stride 1, pad 2이면 parameter의 개수는 몇 개인가?
5*5*3*10(number of filters) + 10(bias, number of filters) = 760
Q2. input layer의 size가 [None,1024], output layer의 사이즈가 [None,10]인 MLP의 Parameter의 개수는 몇 개인가?
1024*10 +10 = 10240 +10 = 10250
Q3. [None,28,28,1]크기의 이미지를 [5,5,1,20]크기의 weights, strides = 2, pad = 1로 Convolution 연산을
했을 시 결과 값의 크기는??
Image_size_new = (Image_size – filter_size)/stride + 1 = (28+2 – 5)/1 + 1 = 26
∴ [None, 26, 26 20]
42. 16. 기타(Search 방법론)
42
이전 슬라이드의 그림과 같이 learning rate를
Grid(일정한 간격으로 나눔) search를 해도 되지만
, 2가지 이상의 Hyper parameter를 조사할 때는
Random Layout 방법을 사용하는 것이 더 좋다.
옆의 그림에서 볼 수 있듯 더욱 다양한 영역을
조사가능
사진: http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture6.pdf
43. 17. 저의 정리 자료 소개
43
1. 비전공자인 제가 공부한 방법 및 유용한 사이트 정리
(https://www.facebook.com/groups/TensorFlowKR/permalink/608999666107762/)
2. Backpropagation
(https://www.facebook.com/groups/TensorFlowKR/permalink/581582685516127/)
3. Restricted Boltzmann machine
(https://www.facebook.com/groups/TensorFlowKR/permalink/597477030593359/)
4. Batch_normalization, Xavier_initializer
(https://github.com/MINGUKKANG/mnist_tensorflow)
5. Variational AutoEncoder
(https://www.facebook.com/groups/TensorFlowKR/permalink/608541436153585/)
(Code: https://github.com/MINGUKKANG/VAE_tensorflow)
6. GAN, DCGAN(code)
(https://www.facebook.com/groups/TensorFlowKR/permalink/611681889172873/)
(Code: https://github.com/MINGUKKANG/DCGAN_tensorflow)