Learning
토픽 32 / 172·딥러닝

역전파 (Backpropagation)

역전파 (Backpropagation)

신경망 학습에서 출력층의 오차를 입력층 방향으로 전파하며 연쇄법칙을 사용해 각 가중치의 기울기를 계산하여 경사하강법으로 파라미터를 업데이트하는 핵심 알고리즘

목적: 손실함수 최소화, 가중치·편향 최적화

절차

계산 과정 예시 (2층 네트워크)

  • 순전파: x → z₁=W₁x+b₁ → a₁=ReLU(z₁) → z₂=W₂a₁+b₂ → ŷ=σ(z₂) → L=Loss(y,ŷ)
  • 역전파: ∂L/∂W₂ = ∂L/∂ŷ · ∂ŷ/∂z₂ · ∂z₂/∂W₂ = δ₂·a₁ᵀ → ∂L/∂W₁ = δ₂·W₂ · ReLU'(z₁) · xᵀ
  • 핵심: 각 층의 오차 신호(δ)를 이전 층으로 전파하며 가중치별 기울기 계산

핵심개념

  • 연쇄법칙(Chain Rule): 합성함수 미분, ∂f(g(x))/∂x = ∂f/∂g · ∂g/∂x. 다층 네트워크에서 각 층의 기울기를 곱셈으로 연결
  • 경사하강법(Gradient Descent): 기울기 반대방향으로 파라미터 이동. 변형: SGD(확률적, 미니배치 단위), Momentum(관성), Adam(적응적 학습률)
  • 학습률(Learning Rate): 업데이트 크기 결정. 너무 크면 발산, 너무 작으면 수렴 느림. Learning Rate Scheduler로 동적 조절
  • 계산 그래프(Computational Graph): 연산을 DAG로 표현하여 자동 미분(Autograd) 구현. PyTorch/TensorFlow가 내부적으로 사용

도전과제: 기울기소실(Sigmoid·Tanh, 층이 깊을수록 기울기→0), 기울기폭발(RNN, 기울기→∞), 계산비용(파라미터 수에 비례)

해결방안: ReLU활성화(기울기=1 유지), Batch Normalization(내부 공변량 이동 방지), Gradient Clipping(기울기 상한 제한), 잔차연결(ResNet, 기울기 직접 전달 경로), 적절한 가중치 초기화(Xavier/He)

적용사례: 모든 신경망 학습(CNN·RNN·Transformer)

비교: 순전파(입력→출력 예측, 추론 시에도 사용) vs 역전파(출력→입력 학습, 학습 시에만 사용)

연관: 신경망, 경사하강법, 활성화함수, 손실함수, 기울기소실