1. Gradient Descent for Neural Networks
- 두 개의 hidden layers가 존재하는 neural network에 대해 gradient descent의 parameters는 네 개이다.
w1, b1, w2, b2. - 이를 cost function의 매개변수로 넣고 이 값들을 최적화하여 cost의 값을 최소화하는 것이 최종 목표이다.
- 값을 업데이트 하는 과정은 cost function을 각 변수로 편미분하여 구한 미분계수를 빼는 방식으로 진행한다.
이 반복은 적절한 값이 찾아질 때까지 계속된다.
Formulas for computing derivatives
- forward/back propagation 의 공식이 나열되어있다.
forward propagation은 앞에서 다룬 내용을 그대로 정리한 것이고,
back propagation은 optional lecture에서 다룬다. - keepdims = True 는 numpy에서 sum함수를 사용했을 때 차원이 줄어들어 (n,)과 같은 사이즈가 되지 않도록 해준다.
2. Backpropagation Intuition (Optional)
- logistic regression에서 chain rule을 이용한 derivative를 구하는 과정을 복습하자.
여기서는 input x가 활성화함수 sigmoid를 거쳐 y hat = a가 되었지만,
neural network에서는 input x가 hidden layer로 전달된다.
즉, 2 layer neural network라면 위 과정을 두 번 반복해야 하는 것이다. - logistic regression의 미분 계산은 이전 포스팅에서 복습할 수 있다.
https://chanmuzi.tistory.com/90?category=1003457
- neural network의 gradient를 구하는 식은 위처럼 확장된다.
결과가 나타내는 각 차원에 주의해야 하는데 직접 식을 써보면서 이해를 해야할 것 같다.
가장 신경쓰이는 것은 언제 transpose를 취하고 취하지 말아야할지에 대한 것이다.
Summary of gradient descent
- neural network에서와 마찬가지로 여러 example들에 대해 한꺼번에 계산할 수 있도록 vectorization을 해야 한다.
그 결과는 대문자 기호를 사용함으로 표현할 수 있다.
3. Random Initialization
What happens if you initialize weights to zero?
- 가중치를 0으로 초기화하면 hidden layer에 여러 개의 node가 있다고 하더라도 각 노드가 같은 function을 수행하는 것으로 인식된다.
슬라이드 맨 우측 하단에 W[1] 을 보면 각 row가 같은 식으로 구성된다는 의미다.
이를 symmetric problem이라고 부른다. - 따라서 우리는 가중치를 0이 아닌 random한 값으로 initialize해줘야 한다.
Random initialization
- 가중치 w에 random값을 부여하기 위헤 numpy의 함수를 사용할 수 있다.
이때 w의 size에 유의하도록 하자. - 편향 b는 symmetric problem을 갖지 않으므로 0으로 초기화해도 상관없다.
- 가중치에 0.01을 곱하는 것은 아주 작은 값으로 initialize하기 위함이다.
활성화함수로 sigmoid나 tanh를 사용하는 경우 그 값이 크거나 작으면 gradient는 0에 수렴한다.
따라서 의미있는 학습이 진행되기 어려우므로 작은 값을 넣어줄 수 있도록 0.01을 곱한다.
만약 neural network에 sigmoid나 tanh와 같은 함수를 사용하지 않는 경우에는 이보다 더 큰 값으로 initialize를 유도해도 상관 없다.
출처: Coursera, Neural Networks and Deep Learning, DeepLearning.AI
'Neural Networks and Deep Learning > 3주차' 카테고리의 다른 글
Quiz & Programming Assignment (0) | 2022.10.08 |
---|---|
Shallow Neural Network(2) (1) | 2022.10.08 |
Shallow Neural Network(1) (1) | 2022.10.08 |