  Within many machine learning algorithms, a fundamental problem concerns
efficient calculation of an unbiased gradient wrt parameters $\gammav$ for
expectation-based objectives $\Ebb_{q_{\gammav} (\yv)} [f(\yv)]$. Most existing
methods either (i) suffer from high variance, seeking help from (often)
complicated variance-reduction techniques; or (ii) they only apply to
reparameterizable continuous random variables and employ a reparameterization
trick. To address these limitations, we propose a General and One-sample (GO)
gradient that (i) applies to many distributions associated with
non-reparameterizable continuous or discrete random variables, and (ii) has the
same low-variance as the reparameterization trick. We find that the GO gradient
often works well in practice based on only one Monte Carlo sample (although one
can of course use more samples if desired). Alongside the GO gradient, we
develop a means of propagating the chain rule through distributions, yielding
statistical back-propagation, coupling neural networks to common random
variables.
