image.png

2층 신경망(2-layer neural network)의 역전파(backpropagation) 알고리즘은 모델의 출력을 실제 레이블과 비교하여 손실(loss)을 계산하고, 이 손실을 줄이기 위해 모델의 가중치와 바이어스를 업데이트하기 위해 기울기(gradient)를 계산하는 과정이다.

1. Forward Pass

입력 데이터가 신경망을 통해 순차적으로 전달되며, 각 층의 가중치와 바이어스를 적용한 후 활성화 함수를 통해 변환된다.

2층 신경망의 경우, 입력층 → 은닉층 → 출력층 순으로 계산이 이루어진다.

최종 출력층에서 예측값 Y_hat이 계산된다.

2. 손실 계산

손실 함수를 사용하여 모델의 예측 Y_hat과 실제 레이블 Y 간의 차이를 계산합니다.

일반적으로 분류 문제에서는 크로스 엔트로피 손실이 사용된다.

3. 출력층에서의 오차 계산 (Gradient at Output Layer)

출력층에서의 오차(예측값과 실제값의 차이)를 계산한다.

dZ2 자세히 살펴보기

dZ2 = Y_hat - Y

4. 출력층 가중치 및 바이어스의 기울기 계산

출력층의 오차 $dZ2$를 사용하여 출력층의 가중치 $W2$와 바이어스 $b2$에 대한 기울기를 계산한다.

가중치의 기울기(dW2)

dW2 = np.dot(A1.T, dZ2) / m

바이어스의 기울기(db2)

db2 = np.sum(dZ2, axis=0, keepdims=True) / m

5. 오차의 은닉층으로의 전파 (Backpropagate Error to Hidden Layer)