11.5 순전파(Forward Propagation) 연산

11.5 순전파(Forward Propagation) 연산

순전파(forward propagation)는 인공 신경망의 입력으로부터 출력까지 신호가 층을 따라 순차적으로 전파되는 계산 절차이다. 학습 단계에서는 손실 함수를 평가하기 위하여 순전파가 수행되며, 추론 단계에서는 모형의 예측을 산출하기 위하여 수행된다. 이 절에서는 순전파의 학술적 정의, 단계별 절차, 행렬 표현, 계산 복잡도, 구현상의 고려 사항을 학습 순서에 따라 기술한다.

1. 학술적 정의

순전파는 입력 벡터 \mathbf{x} \in \mathbb{R}^{d_0}에 대하여 다층 신경망의 각 층의 출력을 차례로 계산하여 최종 출력 \hat{\mathbf{y}} \in \mathbb{R}^{d_L}을 산출하는 연산이다. L개의 층으로 구성된 다층 퍼셉트론에서는 다음과 같이 정의된다.

\mathbf{a}^{(0)} = \mathbf{x}
\mathbf{z}^{(\ell)} = W^{(\ell)} \mathbf{a}^{(\ell - 1)} + \mathbf{b}^{(\ell)}, \quad \ell = 1, 2, \dots, L
\mathbf{a}^{(\ell)} = \varphi^{(\ell)}(\mathbf{z}^{(\ell)}), \quad \ell = 1, 2, \dots, L
\hat{\mathbf{y}} = \mathbf{a}^{(L)}

여기서 W^{(\ell)}\ell번째 층의 가중치 행렬, \mathbf{b}^{(\ell)}은 편향 벡터, \varphi^{(\ell)}은 활성화 함수이다.

2. 단계별 절차

순전파는 다음의 단계로 수행된다.

  1. 입력 벡터의 입력층 할당: \mathbf{a}^{(0)} \leftarrow \mathbf{x}
  2. 첫 번째 은닉층의 가중 합과 활성화: \mathbf{z}^{(1)} = W^{(1)} \mathbf{a}^{(0)} + \mathbf{b}^{(1)}, \mathbf{a}^{(1)} = \varphi^{(1)}(\mathbf{z}^{(1)})
  3. 후속 은닉층의 가중 합과 활성화: 동일한 절차를 \ell = 2, \dots, L - 1에 대하여 반복
  4. 출력층의 가중 합과 활성화: \mathbf{z}^{(L)} = W^{(L)} \mathbf{a}^{(L - 1)} + \mathbf{b}^{(L)}, \hat{\mathbf{y}} = \varphi^{(L)}(\mathbf{z}^{(L)})

각 층의 출력은 다음 층의 입력으로 사용되며, 학습 단계에서는 역전파를 위하여 중간 결과인 \mathbf{z}^{(\ell)}\mathbf{a}^{(\ell)}을 저장한다.

3. 미니배치의 행렬 표현

학습과 추론에서는 일반적으로 다수의 입력을 묶어 미니배치(mini-batch)로 처리한다. 배치 크기가 N일 때 입력은 행렬 X \in \mathbb{R}^{N \times d_0}로 표현된다. \ell번째 층의 순전파는 다음과 같이 일반화된다.

Z^{(\ell)} = A^{(\ell - 1)} (W^{(\ell)})^\top + \mathbf{1}_N (\mathbf{b}^{(\ell)})^\top
A^{(\ell)} = \varphi^{(\ell)}(Z^{(\ell)})

여기서 \mathbf{1}_N은 모든 성분이 1인 길이 N의 열 벡터이다. 행렬 표현은 GPU와 같은 병렬 연산 장치에서 효율적으로 처리되며, 학술적으로 BLAS Level 3 연산(행렬 곱)으로 구현된다.

4. 계산 복잡도

\ell번째 층의 순전파의 산술 연산 횟수는 가중치 행렬의 곱이 지배적이며, 다음과 같다.

O(N d_\ell d_{\ell - 1})

전체 신경망의 순전파 복잡도는 모든 층의 합 \sum_{\ell=1}^{L} N d_\ell d_{\ell - 1}이다. 이 복잡도는 신경망의 너비와 깊이에 비례하며, 합성곱 신경망과 같은 특수화된 구조에서는 추가로 합성곱의 커널 크기와 입력의 공간 차원에 의존한다.

11.5.5 활성화 함수의 선택과 출력의 형태

출력층의 활성화 함수는 과제의 종류에 따라 선택된다.

  • 회귀 과제: 항등 함수 \varphi(z) = z
  • 이진 분류 과제: 시그모이드 함수 \varphi(z) = 1 / (1 + e^{-z})
  • 다중 분류 과제: 소프트맥스 함수 \varphi(\mathbf{z})_i = e^{z_i} / \sum_{j} e^{z_j}

이 선택은 손실 함수의 정의와 직접적으로 결합되며, 학술적으로는 출력 분포의 모형화의 일환으로 다루어진다.

11.5.6 구현상의 고려 사항

순전파의 구현에서는 다음의 학술적·실용적 고려 사항이 있다.

  • 수치 안정성: 소프트맥스 함수의 계산에서는 입력 벡터에서 최대 값을 빼는 안정화 기법이 사용된다.
  • 부동 소수점 정밀도: 학습 단계에서는 단정밀도(FP32) 또는 혼합 정밀도(FP16/BF16)가 일반적으로 사용된다.
  • 메모리 관리: 학습 단계에서는 역전파에 필요한 중간 결과를 저장해야 하므로 메모리 사용량이 크다. 활성화 재계산(activation recomputation)과 같은 기법으로 메모리 사용량을 절감할 수 있다.
  • 결정성: 일부 GPU 연산은 비결정적 합산 순서를 가지므로, 재현성을 보장하기 위하여 결정적 연산 모드의 사용이 권고된다.

11.5.7 출처 및 버전 정보

  • Rumelhart, D. E., Hinton, G. E., Williams, R. J., Learning representations by back-propagating errors, Nature, 1986
  • Bishop, C. M., Pattern Recognition and Machine Learning, Springer, 2006
  • Goodfellow, I., Bengio, Y., Courville, A., Deep Learning, MIT Press, 2016
  • Murphy, K. P., Probabilistic Machine Learning: An Introduction, MIT Press, 2022
  • LAPACK Users’ Guide, Third Edition, Society for Industrial and Applied Mathematics, 1999