본문 바로가기

딥러닝/DeepLearning.ai

3주차. Shallow Neural Network

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으로 설정해도 괜찮음.