신경망의 데이터 처리 원리 및 순전파·역전파 구조 심층 분석

admin
2026. 7. 22.
7 조회
신경망의 데이터 처리 원리 및 순전파·역전파 구조 심층 분석

신경망의 핵심 원리는 정보를 순방향으로 흘려보내 예측을 만들고(순전파), 오차를 역방향으로 흘려보내 가중치를 수정하는(역전파) 두 단계의 반복입니다. 하나씩 깊이 있게 살펴보겠습니다.

1. 신경망의 기본 데이터 처리 구조

신경망의 각 뉴런(노드)은 다음 두 단계를 거칩니다.

① 가중합(Weighted Sum) $$z = \sum_{i} w_i x_i + b = \mathbf{w}^T \mathbf{x} + b$$

입력 $x_i$에 가중치 $w_i$를 곱해 더하고, 편향(bias) $b$를 더합니다. 이는 선형 변환으로, 입력 공간을 회전·스케일·이동시키는 역할을 합니다.

② 활성화 함수(Activation Function) $$a = \sigma(z)$$

선형 변환만 반복하면 아무리 층을 쌓아도 결국 하나의 선형 함수와 동일해지므로, 비선형성을 주입해야 복잡한 패턴(곡선 경계, XOR 같은 비선형 분류 등)을 학습할 수 있습니다. 대표적으로:

  • ReLU: $\max(0, z)$ — 계산이 단순하고 기울기 소실이 적어 은닉층에서 널리 사용
  • Sigmoid: $1/(1+e^{-z})$ — 출력을 0~1로 압축, 이진 분류 출력층에 사용
  • Softmax: 다중 클래스 확률 분포 출력에 사용
  • Tanh, GELU, Swish 등 변형들

이 과정이 층(layer)마다 반복되며, 층을 거칠수록 더 추상적인 특징(edge → texture → shape → object 같은 계층적 표현)을 학습하게 됩니다.

2. 순전파(Forward Propagation)

입력 $\mathbf{x}$가 입력층부터 출력층까지 차례로 흘러가며 각 층의 출력을 계산하는 과정입니다.

$$\mathbf{z}^{[l]} = W^{[l]} \mathbf{a}^{[l-1]} + \mathbf{b}^{[l]}, \quad \mathbf{a}^{[l]} = \sigma^{[l]}(\mathbf{z}^{[l]})$$

마지막 층의 출력 $\hat{y}$가 예측값이 되고, 이를 실제값 $y$와 비교해 손실 함수 $L(\hat{y}, y)$로 오차를 정량화합니다 (회귀는 MSE, 분류는 Cross-Entropy 등).

3. 역전파(Backpropagation)

손실을 줄이려면 각 가중치가 손실에 얼마나 기여했는지, 즉 기울기(gradient) $\partial L/\partial w$를 알아야 합니다. 역전파는 **연쇄 법칙(Chain Rule)**을 이용해 출력층에서 입력층 방향으로 이 기울기를 효율적으로 계산합니다.

핵심 아이디어는, 층 $l$의 오차 신호(델타) $\delta^{[l]}$을 다음 층의 델타로부터 재귀적으로 구하는 것입니다.

$$\delta^{[l]} = \left( (W^{[l+1]})^T \delta^{[l+1]} \right) \odot \sigma'^{[l]}(z^{[l]})$$

이렇게 구한 델타로 가중치와 편향의 기울기를 계산합니다.

$$\frac{\partial L}{\partial W^{[l]}} = \delta^{[l]} (\mathbf{a}^{[l-1]})^T, \quad \frac{\partial L}{\partial b^{[l]}} = \delta^{[l]}$$

마지막으로 경사하강법(Gradient Descent)으로 가중치를 업데이트합니다.

$$W^{[l]} \leftarrow W^{[l]} - \eta \frac{\partial L}{\partial W^{[l]}}$$

($\eta$는 학습률). 이 순전파→손실계산→역전파→업데이트 사이클을 미니배치 단위로 수백~수만 번 반복하며 신경망이 학습됩니다.

4. 왜 이 구조가 효과적인가

연쇄 법칙의 효율성: 각 파라미터마다 기울기를 독립적으로 수치 미분하면 파라미터 수만큼 순전파를 반복해야 하지만(연산량 폭증), 역전파는 델타를 재사용하며 단 한 번의 역방향 패스로 모든 파라미터의 기울기를 구합니다. 이것이 대규모 신경망 학습이 실용적으로 가능한 핵심 이유입니다.

기울기 소실/폭주 문제: 층이 깊어질수록 $\delta^{[l]}$ 계산에서 $\sigma'(z)$가 여러 번 곱해집니다. Sigmoid처럼 도함수 최댓값이 작은 함수(0.25)를 쓰면 층을 거칠수록 기울기가 지수적으로 작아져 학습이 멈추는 기울기 소실이 발생합니다. 이를 완화하기 위해 ReLU 계열 활성화, 배치 정규화(Batch Normalization), 잔차 연결(Residual Connection, ResNet의 skip connection), 적절한 가중치 초기화(Xavier, He 초기화) 등이 도입되었습니다.

최적화 알고리즘: 순수 경사하강법 대신 실제로는 모멘텀(Momentum), Adam, RMSProp 같은 적응적 최적화기가 널리 쓰입니다. 이들은 과거 기울기 정보를 누적해 진동을 줄이고 수렴 속도를 높입니다.

계산 그래프 관점: 현대 프레임워크(PyTorch, TensorFlow)는 순전파 시 자동으로 계산 그래프를 구성하고, 역전파 시 이 그래프를 역순으로 순회하며 자동 미분(Autograd)을 수행합니다. 즉 개발자가 직접 미분 공식을 유도할 필요 없이, 각 연산의 지역적 미분 규칙만 정의되어 있으면 전체 네트워크의 기울기가 자동 계산됩니다.

궁금한 세부 주제(예: CNN/RNN/Transformer의 순전파 차이, 특정 활성화 함수의 미분 유도, Adam 옵티마이저 수식 등)가 있으면 더 깊이 들어가 볼 수 있습니다.