Backward Pass

traininggradientsbackpropagation

Backward pass는 loss에서 시작해 모델을 거꾸로 지나가며 gradient를 계산하는 과정이다.

Loss
Layer 3
Layer 2
Layer 1
Input

loss에서 시작

forward는 입력에서 출력으로 간다.

input -> layer 1 -> layer 2 -> layer 3 -> output -> loss

backward는 loss에서 시작해 반대 방향으로 간다.

loss -> layer 3 -> layer 2 -> layer 1

각 layer는 두 종류의 gradient를 계산한다.

parameter gradient: 이 layer의 weight를 어떻게 바꿀지
input gradient: 이전 layer로 어떤 gradient를 넘길지

예를 들어 Y = XW라면 backward에서는 다음 두 계산이 필요하다.

LW=XTLY\frac{\partial L}{\partial W} = X^T \frac{\partial L}{\partial Y} LX=LYWT\frac{\partial L}{\partial X} = \frac{\partial L}{\partial Y} W^T

여기서 중요한 점은 dL/dW를 계산하려면 forward 때 저장한 X가 필요하다는 것이다. 그래서 activations가 학습 메모리에서 중요해진다.

확인

  • backward pass는 어디에서 시작하는가?
  • layer 하나가 backward에서 계산하는 두 종류의 gradient는 무엇인가?
  • Y = XW에서 dL/dW를 계산할 때 왜 X가 필요한가?