the objective function one needs to optimize can be written as an expectation, $F(\theta)=\mathbb{E}[f(\theta;\xi)]$, over some random variable $\xi\in\mathbb{R}^{r}$ whose distribution is independent of the parameter vector $\theta\in\Theta\subset\mathbb{R}^{p}$. Under very mild regularity conditions, the true gradient of $F(\theta)$ is also an expectation, obtained as $g(\theta)\coloneqq\nabla F(\theta)=\mathbb{E}[\nabla f(\theta;\xi)]$. When the computational cost of $g(\theta)$ is massive, SGD makes use of the stochastic gradient, denoted by $\tilde{g}(\theta)$, to update the parameter vector. It has been well studied that by appropriately choosing the step sizes, SGD has good convergence properties [@robbins1951stochastic]. As an important special case, SGD is frequently used in the scenario where $F(\theta)$ is an average over the data points, $F(\theta)=n^{-1}\sum_{i=1}^{n}f(\theta;X_{i})$. If data $X_{1},\ldots,X_{n}$ are assumed to be independent and identically distributed, then an unbiased stochastic gradient can be trivially obtained as $\tilde{g}(\theta)=\nabla f(\theta;X_{I})$, where $I$ follows a uniform distribution on $\{1,2,\ldots,n\}$.

However, there are a much broader class of problems where $\xi$ follows a general probability distribution $\pi(\xi)$. Unlike the previous simple scenario, in many cases an unbiased stochastic gradient cannot be easily obtained due to the complexity of $\pi(\xi)$. If $\pi(\xi)$ is beyond the scope of standard distribution families, then some general-purpose sampling techniques such as Markov chain Monte 