To keep track of them I would need to adjust the custom automatic differentiation system to propagate gradients from evaluation to constant nodes, read and them off the constant nodes when computing the gradient of the request PSP.
This problem can be largely avoided by writing request PSPs to place any potentially continuous-valued input objects into the environment and refer to them by synthetic names; then the expression itself is discrete and has no derivative, and derivatives do propagate through lookups to environments of ESRs.
However, not all extant requesters obey this convention
This convention will not work for eval. Gradients through eval are potentially useful for "inverse interpretation" types of structure learning projects, though they can work around it by writing their own metacircular evaluators.
To keep track of them I would need to adjust the custom automatic differentiation system to propagate gradients from evaluation to constant nodes, read and them off the constant nodes when computing the gradient of the request PSP.
eval
. Gradients througheval
are potentially useful for "inverse interpretation" types of structure learning projects, though they can work around it by writing their own metacircular evaluators.