본문 바로가기

AI

0518_BDA_오차역전파

728x90
  • 오차역전파 복습 과제
  • 학습 목표
  • 오차역전파 알고리즘의 핵심 원리를 이해한다.
  • 연쇄법칙을 기반으로 한 기울기 계산 방식을 수식과 함께 설명할 수 있다.
  • Affine 및 Softmax 계층의 역전파 수식을 직접 유도할 수 있다.
  • 오차역전파의 개요

오차역전파 (Backpropagation)

  • 인공신경망에서 출력층의 오차를 입력층 방향으로 역전달하며 각 가중치에 대한 손실 함수의 기울기를 계산하는 알고리즘
  • 연쇄법칙 (Chain Rule) 기반으로 작동하며, 경사하강법 (Gradient Descent) 등 최적화 알고리즘과 함께 사용됨

💡 목적: 손실 함수를 최소화하는 방향으로 가중치와 편향을 업데이트

 

  • 연쇄법칙 (Chain Rule) 정리

(1) 단변수 함수의 연쇄법칙

  • 함수 y = f(u), u = g(x) 라면 dy/dx = (dy/du) * (du/dx)

(2) 다변수 벡터 함수의 연쇄법칙 (Jacobian)

  • y = f(u), u = g(x) 일 때, ∂y/∂x = ∂y/∂u × ∂u/∂x
  • 역전파는 이 Jacobian을 층마다 연쇄적으로 곱하여 기울기를 계산함

 

  • 오차역전파 단계 요약
  1. 순전파 (Forward Propagation): z = Wx + b, a = f(z)
  2. 손실 계산 (Loss): L = -∑ t_i log y_i
  3. 출력층에서 기울기 계산: Softmax+CrossEntropy일 경우: ∂L/∂z = y - t
  4. 연쇄법칙을 적용해 역전파: 예) ∂L/∂W = ∂L/∂z × x^T

 

  • Affine 계층 역전파 수식 정리

순전파:

  • z = Wx + b, a = f(z)

역전파 (기울기 계산):

  • 출력 기울기: ∂L/∂z
  • 입력 기울기: ∂L/∂x = W^T × ∂L/∂z
  • 가중치 기울기: ∂L/∂W = ∂L/∂z × x^T
  • 편향 기울기: ∂L/∂b = ∂L/∂z

 

  • Softmax + Cross Entropy 조합

Softmax:

  • y_i = e^{z_i} / ∑_j e^{z_j}

Cross Entropy:

  • L = -∑_i t_i log y_i

 

  • 역전파 결합 결과:
  • ∂L/∂z = y - t

💡 예측확률 벡터 y에서 정답 벡터 t를 빼면 곧장 기울기를 얻을 수 있어 계산이 간단해짐

전체 역전파 구조

∂L/∂W^(l) = ∂L/∂a^(L) × ∂a^(L)/∂z^(L) × … × ∂z^(l)/∂W^(l)

각 계층에서의 기울기는 그 계층의 입력과 가중치에 따라 계산되며, 출력층에서 은닉층으로 역으로 이동하며 전파됨

 

  • 최종 오차역전파 구현

오차역전파에서 최종적으로 손실 함수에 대한 각 파라미터(W, b)의 기울기를 구하게 되며, 다음과 같이 정리됩니다.

  • 손실 함수: L = -∑ t_i log y_i (t는 정답 one-hot 벡터)
  • Softmax 함수와 Cross-Entropy가 결합된 경우: ∂L/∂z = y - t

이를 기반으로 각 계층의 가중치 W와 편향 b에 대해 아래와 같이 기울기를 계산합니다:

  • ∂L/∂W = (y - t) × x^T
  • ∂L/∂b = y - t

이러한 기울기는 경사하강법 등 최적화 알고리즘을 통해 아래와 같이 파라미터를 갱신하는 데 사용됩니다:

  • W ← W - η * ∂L/∂W
  • b ← b - η * ∂L/∂b

(η는 학습률 learning rate)

 

728x90