-
강의의 예시 f(x, y, z) = (x + y) * z를 통해 역전파의 모든 단계를 자세히 살펴보겠습니다.
-
상황: 입력값 x = -2, y = 5, z = -4
-
1단계: 순방향 전파 (Forward Pass)
- 먼저 입력값부터 최종 출력까지 모든 값을 계산하여 그래프에 기록합니다.
q = x + y => q = -2 + 5 = 3
f = q * z => f = 3 * (-4) = -12
-
2단계: 역방향 전파 (Backward Pass)
- 최종 출력
f에서부터 거꾸로 계산을 시작합니다.
- 출발점: 최종 출력 f가 자기 자신에게 미치는 영향, 즉 ∂f∂f는
1입니다. 이것이 맨 처음의 상류 그래디언트(Upstream Gradient)가 됩니다.
f 노드에서 q와 z로:
- 지역 그래디언트 (Local Gradient) 계산:
f = q * z를 각 변수로 미분합니다.
- ∂q∂f=z=−4
- ∂z∂f=q=3
- 하류 그래디언트 (Downstream Gradient) 계산:
상류 그래디언트 × 지역 그래디언트 공식을 적용합니다.
z로 가는 그래디언트: ∂z∂f=∂f∂f⋅∂z∂f=1⋅3=3
q로 가는 그래디언트: ∂q∂f=∂f∂f⋅∂q∂f=1⋅(−4)=−4
- 이제
-4라는 값이 q 노드로 흘러가는 새로운 상류 그래디언트가 됩니다.
q 노드에서 x와 y로:
- 지역 그래디언트 (Local Gradient) 계산:
q = x + y를 각 변수로 미분합니다.
- ∂x∂q=1
- ∂y∂q=1
- 하류 그래디언트 (Downstream Gradient) 계산:
f에서 흘러온 상류 그래디언트 -4를 사용합니다.
y로 가는 그래디언트: ∂y∂f=∂q∂f⋅∂y∂q=(−4)⋅1=−4
x로 가는 그래디언트: ∂x∂f=∂q∂f⋅∂x∂q=(−4)⋅1=−4
- 최종 결과: 최종 출력
f에 대한 모든 입력 변수의 영향력, 즉 그래디언트(∂x∂f,∂y∂f,∂z∂f)를 모두 구했습니다. 이 값들을 이용해 x, y, z를 업데이트하면 손실 f를 줄일 수 있습니다.