본문 바로가기
Deep Learning

1.2 Shallow Neural Networks

by yu901 2023. 2. 14.

hidden layer가 있는 얕은 신경망에대해 알아보자.

 

 

이전 포스팅의 분류기와 달리 layer와 node가 여러개 있다. 

\(l\)번째 layer는 \(a^{[l]}\), \(l\)번째 layer의 \(k\)번째 node를 \(a^{[l]}_k\)로 표현한다.

 

그림에서 Input layer는 \(a^{[0]}=X\), hidden layer는 \(a^{[1]}\), output layer는 \(a^{[2]}=\hat{y}\)으로 표현하고, 이런 신경망을 2 layer Neural Network라고 한다.(input layer는 카운트에서 제외된다.)


 

각 노드에서는 \(z=w^Tx+b, a=\sigma(z)\) 계산이 수행된다. \(a^{[1]}\)에서의 계산을 풀어보면 다음과 같다.

\(z^{[1]}_1 = w^{[1]T}_1 x+b^{[1]}_1, a^{[1]}_1 = \sigma(z^{[1]}_1)\)

\(z^{[1]}_2 = w^{[1]T}_2 x+b^{[1]}_2, a^{[1]}_2 = \sigma(z^{[1]}_2)\)

\(z^{[1]}_3 = w^{[1]T}_3 x+b^{[1]}_3, a^{[1]}_3 = \sigma(z^{[1]}_3)\)

\(z^{[1]}_4 = w^{[1]T}_4 x+b^{[1]}_4, a^{[1]}_4 = \sigma(z^{[1]}_4)\)

 

위 계산은 행렬 곱으로 표현할 수 있다.

 


 

\(m\)개의 example이 있는 경우, \(i\)번째 column이 \(x^{(i)}\)인 \(X \in \mathbb{R}^{n_x \times m}\)를 사용하여 다음과 같이 계산된다.

\(W^{[1]} \in \mathbb{R}^{n^{[1]} \times n^{[0]}}\), \(b^{[1]} \in \mathbb{R}^{n^{[1]} \times 1}\), \(W^{[2]} \in \mathbb{R}^{n^{[2]} \times n^{[1]}}\), \(b^{[2]} \in \mathbb{R}^{n^{[2]} \times 1}\)

 


 

지금까지는 activation function으로 sigmoid를 사용해왔다. sigmoid는 이진분류기의 출력층에 사용하기 적합한 activation function이고, 그 외에는 다른 activation function 사용을 추천한다. activation function 종류로는 sigmoid, tanh, ReLU, leaky ReLU 등이 있다.

 

hidden layer에 사용하는 activation function을 \(g(z)\)로 표현하면 foward propagation은 다음과 같아진다. 

 


 

데이터  \(x\) 한 개에 대한 \(dW^{[2]}, db^{[2]}, dW^{[1]},db^{[1]}\)은 다음과 같이 계산할 수 있다.


 

\(m\)개의 데이터에 대한 back propagation은 다음과 같다.

 

 

\(db^{[l]}\) = np.sum(\(dZ^{[l]}\), axis=1, keepdims=True) 

\(dZ^{[l]}\) shape는 \((n^{[l]}, m)\), \(db^{[l]}\) shape는 \((n^{[l]}, 1)\)이다. 즉, \(db^{[l]}\)는 \(dZ^{[l]}\)의 각 행을 평균계산한 것이다.

axis=1은 열방향으로 계산함을 의미하여 각 행의 sum을 구하고, keepdims=True는 sum결과 차원을 줄이지 않고 2차원으로 유지함을 의미한다.

 

\(dZ^{[1]}= W^{[2]T}dZ^{[2]}*g^{[1]\prime}(Z^{[1]})\)

에서 \(*\)는 element wise product로 같은 행, 열에 위치한 원소별 곱이다.

 


 

'Deep Learning' 카테고리의 다른 글

2.3 Hyperparameter Tuning, Batch Normalization  (0) 2023.03.27
2.2 Optimization Algorithms  (0) 2023.03.14
2.1 Practical Aspects of Deep Learning  (0) 2023.02.28
1.3 Deep Neural Networks  (0) 2023.02.21
1.1 Neural Networks Basics  (1) 2023.02.07

댓글