Working Backwards

Computational Graphs


계산 그래프(computational graph)는 값과 연산을 노드와 연결로 나타내 계산의 의존 관계를 보인다. 순전파는 입력에서 출력으로 값을 계산해 저장하고, 역전파는 출력에서 입력 방향으로 미분값을 전달한다.

순전파의 저장z, h, s처럼 중간값을 저장해 역전파에서 다시 쓴다.
경로의 미분한 경로 위의 연산 미분을 곱한다.
여러 경로의 합같은 값이 두 연산에 쓰이면 두 경로의 미분값을 더한다.

순전파는 손실까지의 모든 중간값을 차례로 계산해 저장한다

입력 x₁, x₂와 정답 y를 바꾸면 z, h, s, L이 입력 쪽부터 다시 계산된다. 가중치는 h₁ = ReLU(x₁ + x₂), h₂ = ReLU(x₁ + x₂ − 1), s = h₁ − 4h₂ − 0.5다.

상자 하나가 값과 그 값을 만든 연산이다. 왼쪽에서 오른쪽이 순전파 순서이고, 초록 상자는 역전파에서 다시 쓰려고 저장하는 중간값이다.

같은 값이 두 연산에 쓰이면 두 경로의 미분을 더한다

u를 바꾸면 L = a(u) + b(u)의 두 경로 a(u) = u², b(u) = 3u에서 각각 돌아오는 미분값과 그 합 dL/du가 바뀐다.

갈라진 경로u에서 a와 b를 거쳐 L로
원 안의 수는 순전파 값, 빨간 점선과 빨간 수는 역전파에서 L에서 u 쪽으로 돌아오는 미분값이다.