Unfolding an Computational Graph

Computational graph formalizes the set of computations that are involved in mapping inputs and parameters to outputs and the loss. We can unfold an recursive or recurrent computation to a chain of events. Unfolding results in sharing parameters across a deep network structure.

Lets consider a dynamic system:

s(t)=f(s(st);θ)
  • s(t) is the state of the system

This system is recurrent since the definition of state s at time t refers back to the same definition at time t1. For a finite time step τ we can unfold by applying the definition τ1 times:

Example τ=3 $s(3)=f(s(2);θ)s(3)=f(f(s(1);θ);θ)$

Unfolding is only repeatedly applying the definition until it does not involve recurrence.