Score matching [1]} is a useful method for learning non-normalized statistical models. Given an unknown distribution \(p_{\mathbf {x}^{\ast }}\)  of vectors \(\mathbf {x}^{\ast }\in \mathbb {R}^d\) , it allows the model to directly estimate the score function \(\bigtriangledown _{\mathbf {x}}\log p_{\mathbf {x}^{\ast }}(\mathbf {x})\)  (denoted as \(\mathbf {s}_{\mathbf {x}^{\ast }}(\mathbf {x})\) ) at any point \(\mathbf {x}\) 
with i.i.d. samples of \(p_{\mathbf {x}^{\ast }}\) .
SGMs aim to generate samples from \(p_{\mathbf {x}^{\ast }}\)  via score matching.
After score matching, SGMs generate a sample from \(p_{\mathbf {x}^{\ast }}\) 
by simulating a Langevin dynamics at \(T\)  steps in a reverse order:
\(\mathbf {x}_{t-1} = \mathbf {x}_t + \frac{\epsilon _t}{2}\mathbf {s}_{\mathbf {x}^{\ast }}(\mathbf {x}_t)+\sqrt{\epsilon _t}\mathbf {z}_t, \; t=T,\dots ,1\) 
