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 |
댓글