본문 바로가기

728x90

DeepLearning Specialization(Andrew Ng)/Improving Deep Neural Networks

(10)
[Week 3] Programming Assignments 1. np.squeeze default로 아무것도 안쓰고 안에다가 array나 tensor를 넣으면 차원이 1인 것들을 다 날려준다. a = np.array([[1,2,3]]) a.shape => (1,3) print(np.squeeze(a)) => [1,2,3] print(np.squeeze(a).shape) => (3,) 2. Sess.run([optimizer, cost], feed_dict = ...) 여러개의 연산을 run시킬 수 있고, 이 때 뒤에부터 연산한다. cost -> optimizer
[Week 3] 4. Introduction to programming frameworks Tensorflow - placeholder는 변수 x를 선언하고 나중에 train할 때 feed를 통해 x에 값을 넣어준다. - session.run()을 할 때 안에 들어가는 계산에 상수가 사용된다면 그냥 그대로 계산되겠지만, placeholder가 포함되어 있는 경우, feed_dict를 통해서 x에 값을 넣어줘야함. - session 작업을 할 때, with를 쓰는 경우가 많은데 이를 이용하면 error exception에 도움이 된다.
[Week 3] 3. Multi-class classification Multi-class classification 1. Softmax Regression 2. Training a softmax classifier 1. Soft max Regression 별건 아니고 Logistic Regression의 일반화 버젼이라고 이해하면 된다. Logistic Regression이 C(class) = 2 일 때의 경우라고 한다면, Muliti-class classification은 C가 3이상인 모든 경우를 일컫는다. Logistic Regression에서는 단지 sigmoid 함수에 입력값을 넣으면 끝났지만, 이번에는 class의 개수가 여러개이므로 단순히 그렇게 계산되어서는 안된다. 캡쳐에서 확인할 수 있듯이 입력값이 class 개수만큼의 벡터로 나오므로, 우리가 산출해야할..
[Week 3] 2. Batch Normalization Batch Normalization 1. Normalizing activations in a network 2. Fitting Batch Norm into a neural network 3. Why does Batch Norm work? 4. Batch Norm at test time 1. Normalizing activations in a network 1) 기본개념 Normalization이 필요한 이유에 대해서는 Opimization 강의노트에 자세히 기술했으니 참고 바란다. 학습 속도를 높이기 위해 feature들을 Normalization하는 작업은 꼭 필요한데, 이를 통해 feature들의 scale을 맞춰주어 gradient descent 의 속도를 물리적으로 높일 수 있기 때문이다. 이건 ..
[Week 3] 1. Hyperparameter tuning Hyperparameter tuning 1. Tuning process 2. Using a appropriate scale to pick parameter 3. Hyperparameter tuningin practice : Panda vs. Cavier 1. Tuning process 정갈하게 바둑판 모양으로 hyperparameter를 선택해서 하는 것보다 산발적으로 random하게 뽑는 것이 더 좋다. 이유는 여러개의 hyperparameter 중에 뭐가 중요한지 모르며, random으로 할 경우 더 많은 값을 시도해볼 수 있기 때문이다. random하게 선택하고 성능을 체크하면 특정 부분에서 성능이 좋아짐을 확인할 수 있는데, 그 부분의 hyperparameter 조합을 더 밀도있게 적용시켜보는 '..
[Week 2] Programming Assignments 과제를 하며 momentum 에 대해 다시 고민해보았다. W[l]은 층별로 모두 다른 parameter이며 이를 iteration과 헷갈리면 안된다. 즉, Vdw[l] = beta * Vdw[l-1] + (1-beta)dw[l] 가 아니고 Vdw[l] := beta * Vdw[l] + (1-beta)dw[l] 이다. 이것은 코딩형식이므로 런던 온도의 예시와 같게 만들어준다면, Vdw[l](1) = beta * Vdw[l](0) + (1-beta)dw[l] => update( W[l] := W[l] - a*VdW[l]) Vdw[l](2) = beta * Vdw[l](1) + (1-beta)dw[l] => update Vdw[l](3) = beta * Vdw[l](2) + (1-beta)dw[l] => up..
[Week 2] 1. Optimization Algorithms 1. Mini-batch gradient descent 2. Understanding Mini-batch gradient descent 3. Exponentially weighted averages 4. Understanding exponentially weighted averages 5. Bias correction in exponentially weighted averages 6. Gradient Descent with momentum 7. RMS prop 8. Adam optimization algorithm 9. Learning rate decay 10. The problem of local optima 1. Mini-batch gradient descent 1) 목적 mini-batch 를 하는..
[Week 1] Programming Assignments Week 1 과제를 수행하면서 참고할 점 1. W를 크게 설정하면 마지막 activation 함수(sigmoid라 하면) 결과값이 0 혹은 1로 귀결될 가능성이 높다. 그러면 Loss 함수의 특성상(Logistic Regression의 Loss 함수) cost가 무자비하게 높아질 수 있고, 그로 인해 최적의 W와 b 값을 찾기 위한 시간이 오래 걸린다. 따라서 , W의 분산을 작게 설정하여 좀 더 activation 함수의 결과값이 0과 가깝게 되도록 만들어 update를 빠르게 한다.
[Week 1] 3. Setting up your Optimization problem Setting up your Optimization problem 1. Normalizing Inputs 2. Vanishing & Exploding Gradients 3. Weight Initialization for network 4. Numerical approximation for gradients 5. Gradient Checking 1. Normalizing Inputs 1) Normalization 을 하는 이유 Normalization을 하지 않아도 NN은 W와 b를 J를 최소화 하는 방향으로 update할 것이다. 다만, 위와 같이 Weight(b포함) 의 그래프가 Normalization했을 경우에 비하여 짜부되어 물리적으로 계산 효율이 떨어지는 것. hleecaster.com/ml-n..
[Week 1] 2. Regularizing your neural network Regularizing your neural network 1. Regularization 2. Why regularization reduces overfitting? 3. Dropout Regularization 4. Understanding Dropout 5. Other Regularization 1. Regularization 앞서 살펴본 바에 따르면, Big Network(많은 layer와 많은 unit을 가지는) 를 Big Data로 학습시킬 수 있음에 따라 Bias, Variance 문제를 해결할 수 있지만, 더 많은 데이터를 확보할 수 없을 때 Regularization이 Variance를 줄이는 데 도움이 된다. 1) Logistic Regression L2 방식은 유클리드 거리를 이용하는..

728x90