출력층의 바이어스 b2에 대한 기울기 db2를 계산하는 과정은 신경망의 역전파(backpropagation)에서 중요한 역할을 한다. 이 기울기는 바이어스가 손실에 얼마나 기여했는지를 측정하여, 이를 바탕으로 바이어스를 업데이트하는 데 사용된다.

바이어스의 역할

바이어스는 각 뉴런의 입력에 추가되는 상수입니다. 바이어스는 뉴런이 활성화 함수에 의해 출력을 생성할 때, 그 임계값을 조정하는 역할을 한다.

역전파 단계에서 바이어스 기울기 계산은 다음과 같다.

$$

db2 = \frac{1}{m} \cdot \sum dZ2

$$

바이어스는 입력값과 곱해지는 가중치와는 달리, 직접 더해지는 상수. 따라서 바이어스의 기울기를 계산할 때는 단순히 출력층 오차 $dZ2$를 더한 값을 사용하게 된다.

dZ2는 각 샘플에 대한 출력층의 오차. (shape: m x num_classes)

바이어스는 모든 샘플에 동일하게 적용되기 때문에, dZ2의 각 샘플에 대한 오차를 모두 더하여 바이어스가 손실에 어떻게 기여했는지를 측정할 수 있다.

이를 통해 바이어스의 기울기를 계산할 수 있다.

m은 미니 배치의 크기가 달라도 바이어스의 기울기가 일관되게 계산되도록 만들어준다.

keepdims=True는 결과가 원래 차원을 유지하도록 하여, db2의 형태가 바이어스 b2와 일치하도록 합니다.

기울기의 의미

바이어스 기울기 db2는 바이어스 b2를 어떻게 업데이트할지를 결정하는 데 사용됩니다.

이 기울기 값이 양수라면, 바이어스를 감소시켜야 하고, 음수라면 바이어스를 증가시켜야한다.

이는 바이어스가 손실을 줄이는 방향으로 조정되도록 돕는다.

전체적인 흐름

바이어스 b2의 기울기 db2는 경사하강법 등의 최적화 알고리즘에 의해 사용되어 바이어스를 업데이트한다. 이 과정은 반복적으로 수행되며, 모델이 더 나은 예측을 하도록 학습하게 된다.