I'm reading through Bergstra et al "Theano: new features and speed improvements" [2012] and do not understand the meaning of "symbolic" in this context (versus for instance a symbolic link to a directory) :
Using Theano’s symbolically-defined implementations within a Python loop prevents symbolic differentiation through the iterative process, and prevents certain graph optimizations from being applied. Completely unrolling the loop into a symbolic chain often leads to an unmanageably large graph and does not allow for “while”-style loops with a variable number of iterations.
Symbolic in this context refers to symbolic math.
This means that you can perform mathematical programming using symbols, instead of needing variables that require numeric values, for example
y = x**2 + 5*x + 7
For the above to be valid in non-symbolic math, the variable x
would need to have a numerical value, and the result of the right-hand side would be assigned to y
, which would then have a numerical value.
Conversely in symbolic math, the variables x
and y
could be symbols so you could then do something like (in psuedocode)
diff(y, x) # meaning differentiate y with respect to x
and it would result in
dy/dx = 2*x +5