Neural Networks Overview
2주차에서 1층으로 이루어진 neural network의 구조와 back propagation(da,dw,db)을 계산하는 방법을 알아보았다.
이번 단원에서는 2층 신경망에 대해서 알아볼 것이고, 그림은 forward propagation 과정을 나타냈다. backward propagation으로 (da[2]),dz[2],dW[2],db[2],(da[1]),dz[1],dW[1],db[1]을 어떻게 나타내는 지도 볼 것이다.
Neural Network Representation
neural network는 입력층인 input layer, 출력층인 output layer, 그리고 그 두 층을 제외한 중간의 모든 층인 hidden layer로 구성된다. 0층부터 a[0](=x), a[1],...로 표현할 수 있다. a[l]n은 l번째 layer의 n번째 node라는 뜻이다.
Computing a Neural Network's Output
1번째 층의 각 노드들의 값은 위처럼 표시할 수 있는데, 이를 vectorization으로 한번에 표시할 수 있다.
Vectorizing Across Multiple Examples
위는 하나의 example에 대해서만 vectorization 한 것이고, 여기선 여러 example에 대해 한번에 vectorization을 하겠다.
z[1],a[1],z[2],a[2]로 소문자로 표현되던 벡터들을 Z[1],A[1],Z[2],A[2]로 각 example들을 가로로 쌓아서 행렬 형태로 만들었다.
Explanation for Vectorized Implementation
Active Functions
Why do we need non-linear activation functions?
activation function으로 linear function을 사용하면 은닉층이 있는데도 은닉층의 효과가 나타나지 않음
예를 들어, 은닉층이 세 개 있어서 세 번의 활성화 함수를 쓴다고 할 때 h(x)=cx이면 z=h(h(h(x)))=c'x의 꼴이 되기 때문
활성화 함수로 linear function 또는 identity function(g(z)=z)을 사용하는 거의 유일한 경우
예측하려는 y가 모든 실수를 가질 때
(logistic regression에서는 y값이 0또는 1만 가지기 때문에 yhat도 0에서 1까지의 값만을 가지게 해야 하는데, linear regression에서는 y가 실수 전체의 값을 가질 수 있다.)
Derivatives of Active functions
Gradient Descent for Neural Networks
Random Initialization
W와 b의 초기값을 설정할 때 W=np.zeros(( , ))으로 하면 안된다. (b는 모든 값을 0으로 설정해도 괜찮음.
'딥러닝 > DeepLearning.ai' 카테고리의 다른 글
4주차. Deep Neural Networks (0) | 2021.02.07 |
---|---|
3주차. Programming assignment (0) | 2021.02.05 |
2주차. Programming: Logistic Regression with Neural Network mindset (0) | 2021.02.03 |
2주차. Vectorization (0) | 2021.02.03 |
2주차. Logistic Regression as a Neural Network (0) | 2021.02.02 |