Computational graphs

- 어떤 함수든지 표현 가능
- 각 노드는 연산 단계를 나타냄
- backpropagation 이라고 부르는 기술을 사용할 수 있게 함
Backpropagation
- backpropagation : gradient를 얻기 위해 computational graph 내부의 모든 변수에 대해 chain rule을 재귀적으로 사용
- 함수 f의 출력에 대한 어떤 변수의 gradient를 찾기 원함
- 항상 함수 f 를 이용해서 computational graph로 나타냄
- 중간 변수에 이름 부여
- Chain rule에 의해 computational graph의 가장 끝부터 gradient를 계산
EX1)

$\dfrac{\partial f}{\partial y} = \dfrac{\partial f}{\partial q}\dfrac{\partial q}{\partial y} ,\ \ \dfrac{\partial f}{\partial x} = \dfrac{\partial f}{\partial q}\dfrac{\partial q}{\partial x}$

- 각 노드는 local 입력을 받고 다음 노드로 출력값을 보냄
- 우리가 계산한 local gradient도 존재 → 이는 들어오는 입력에 대한 출력의 gradient
- 각 노드에 도달하면 출력과 관련한 노드의 gradient가 입력과 가까운 노드로 전파
EX2)