分数匹配算法(Score Matching)的目标函数“散度+模”计算量大,两种解决方法, 分层分数匹配和降噪分数匹配

分数匹配算法(Score Matching)的目标函数“散度+模”计算量大,两种解决方法, 分层分数匹配和降噪分数匹配 tr()虽然可以计算 但是计算成本时非常高的尤其是在变量 x 很高维或者神经网络层次很深的时候 通常是无法接受的。针对这个情况一般有两种解决方法 分层分数匹配Sliced score matching和降噪分数匹配Denoising score matching。好的这是您提供的文本的 Markdown 版本。分层分数匹配 (Sliced Score Matching)分层匹配使用一个随机投影矩阵可以近似计算tr(∇ₓ s_θ(x))改变后的目标函数为(4.1.57)EpvEpdata(x)[vT∇xsθ(x)v12∥sθ(x)∥22] \mathbb{E}_{p_v} \mathbb{E}_{p_{data}(x)} \left[ v^T \nabla_x s_{\theta}(x) v \frac{1}{2} \| s_{\theta}(x) \|_2^2 \right]Epv​​Epdata​(x)​[vT∇x​sθ​(x)v21​∥sθ​(x)∥22​]其中pvp_vpv​是一个简单的随机向量即可比如多元正态分布。其中vT∇xsθ(x)vv^T \nabla_x s_{\theta}(x) vvT∇x​sθ​(x)v可以直接利用正向模式的自动微分计算但是仍然要四倍的计算量。降噪分数匹配 (Denoising Score Matching)另一种解决分数匹配的方法是降噪分数匹配 (Denoising Score Matching)它是分数匹配算法的一个变种它可以完全避开tr(∇ₓ s_θ(x))的计算。首先在观测数据xxx上添加一些预先设定好的噪声数据得到了新的数据x~\tilde{x}x~这相当于构建了一条件概率分布qσ(x~∣x)q_{\sigma}(\tilde{x}|x)qσ​(x~∣x)根据边际化方法边缘分布qσ(x~)q_{\sigma}(\tilde{x})qσ​(x~)的计算方法为(4.1.58)qσ(x~)≜∫qσ(x~∣x)pdata(x)dx q_{\sigma}(\tilde{x}) \triangleq \int q_{\sigma}(\tilde{x}|x) p_{data}(x) dxqσ​(x~)≜∫qσ​(x~∣x)pdata​(x)dx然后把分数匹配算法应用在这个加噪后的数据分布上(4.1.59)12Eqσ(x~∣x)[∥sθ(x~)−∇x~log⁡qσ(x~∣x)∥22]12Eqσ(x~∣x)pdata(x)[∥sθ(x~)−∇x~log⁡qσ(x~∣x)∥22] \begin{aligned} \frac{1}{2} \mathbb{E}_{q_{\sigma}(\tilde{x}|x)} [ \| s_{\theta}(\tilde{x}) - \nabla_{\tilde{x}} \log q_{\sigma}(\tilde{x}|x) \|_2^2 ] \\ \frac{1}{2} \mathbb{E}_{q_{\sigma}(\tilde{x}|x)p_{data}(x)} [ \| s_{\theta}(\tilde{x}) - \nabla_{\tilde{x}} \log q_{\sigma}(\tilde{x}|x) \|_2^2 ] \end{aligned}21​Eqσ​(x~∣x)​[∥sθ​(x~)−∇x~​logqσ​(x~∣x)∥22​]21​Eqσ​(x~∣x)pdata​(x)​[∥sθ​(x~)−∇x~​logqσ​(x~∣x)∥22​]​这么做的一个前提是如果添加的噪声足够小那么qσ(x~)≈pdata(x)q_{\sigma}(\tilde{x}) \approx p_{data}(x)qσ​(x~)≈pdata​(x)成立此时有∇x~log⁡qσ(x~)≈∇xlog⁡pdata(x)\nabla_{\tilde{x}} \log q_{\sigma}(\tilde{x}) \approx \nabla_x \log p_{data}(x)∇x~​logqσ​(x~)≈∇x​logpdata​(x)成立这时我们可以用分数匹配算法估计出qσ(x~)q_{\sigma}(\tilde{x})qσ​(x~)的分数∇x~log⁡qσ(x~)\nabla_{\tilde{x}} \log q_{\sigma}(\tilde{x})∇x~​logqσ​(x~)并用它近似表示原数据分布pdata(x)p_{data}(x)pdata​(x)的分数。