本文主要是介绍Noise Conditional Score Networks 简单总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Noise Conditional Score Networks
Score
S c o r e = ∇ x l o g p ( x ) (1) Score = \nabla_xlog~{p(x)} \tag{1} Score=∇xlog p(x)(1)
Score 是论文中的一个定义,表示概率密度 p ( x ) p(x) p(x)的梯度,沿着概率密度的梯度向前走,会走到概率密度最高的点。
郎之万动力学采样
x ~ t = x ~ t − 1 + ϵ 2 ∇ x ~ log p ( x ~ t − 1 ) + ϵ z t (2) \tilde{x}_t = \tilde{x}_{t-1} + \frac{\epsilon}{2} \nabla_{\tilde{x}} \log p(\tilde{x}_{t-1}) + \sqrt{\epsilon} z_t \tag{2} x~t=x~t−1+2ϵ∇x~logp(x~t−1)+ϵzt(2)
z t z_t zt表示高斯噪声, ϵ \epsilon ϵ表示步长,这个公式表示沿着Score向前走,会走到概率密度最高的点,也就是真实的数据分布
Score learning
要想从公式(2)得到真实的数据分布,关键是要学习Score。
L = 1 2 E P data ( x ) [ ∥ s θ ( x ) − ∇ x log p ( x ) ∥ 2 2 ] (3) L = \frac{1}{2} \mathbb{E}_{P_{\text{data}}(x)} \left[\left\| s_{\theta}(x) - \nabla_{x} \log p(x) \right\|_2^2 \right] \tag{3} L=21EPdata(x)[∥sθ(x)−∇xlogp(x)∥22](3)
直接通过公式(3)学习存在1个问题:
数据密度分布存在低密度区域,对应的样本少, s θ ( x ) s_{\theta}(x) sθ(x)学习不充分,在这些样本点上不能得到足够准确的梯度分数。
通过在真实数据中引入微小的高斯噪声来模拟密度低的样本点,使 s θ ( x ) s_{\theta}(x) sθ(x)学习充分。刚开始的噪声大,后面的噪声小
Noise Conditional Score learning
L = 1 2 E P data ( x ) E x ~ ∼ N ( x ; σ 2 I ) [ ∥ s θ ( x ~ ; σ ) + x ~ − x σ 2 ∥ 2 2 ] (4) L = \frac{1}{2} \mathbb{E}_{P_{\text{data}}(x)} \mathbb{E}_{\tilde{x} \sim \mathcal{N}(x; \sigma^2 I)} \left[ \left\| s_{\theta}(\tilde{x}; \sigma) + \frac{\tilde{x} - x}{\sigma^2} \right\|_2^2 \right] \tag{4} L=21EPdata(x)Ex~∼N(x;σ2I)[ sθ(x~;σ)+σ2x~−x 22](4)
加噪的目的是让样本分布的空间扩大,前期加噪越强,分布空间越大。到后期,加噪小,几乎等于真实样本分布。Score也会越来越准确
这篇文章是一个简单总结,详细的推导 可以看这篇文章和这篇文章。
补充知识:
郎之万动力学[^1]用随机微分方程描述粒子的运动,粒子运动的方向由当前位置的能量密度函数的梯度来指导(粒子会朝着从能量密度高向密度低的地方运动)而且受到微弱的随机噪声的影响。通常表示为
x t + 1 = x t − ϵ ∇ E ( x t ) + 2 ϵ η t x_{t+1} = x_t -\epsilon \nabla E(x_t)+\sqrt{2\epsilon}\eta_t xt+1=xt−ϵ∇E(xt)+2ϵηt
x x x,表示分子的位置, E ( x ) E(x) E(x)表示分子的能量密度函数, ϵ \epsilon ϵ表示步长, η \eta η表示高斯噪声, t t t表示当前时刻。
参考:
[^1] 郎之万动力学
[^2] NCSN视频讲解
文章信息
发表时间:2019,发表地点:NuerPIS,作者:Song, Yang,机构:Stanford.
原文:Generative Modeling by Estimating Gradients of the Data Distribution
原发表网站引用模板:
@inproceedings{NEURIPS2019_3001ef25,author = {Song, Yang and Ermon, Stefano},booktitle = {Advances in Neural Information Processing Systems},editor = {H. Wallach and H. Larochelle and A. Beygelzimer and F. d\textquotesingle Alch\'{e}-Buc and E. Fox and R. Garnett},pages = {},publisher = {Curran Associates, Inc.},title = {Generative Modeling by Estimating Gradients of the Data Distribution},url = {https://proceedings.neurips.cc/paper_files/paper/2019/file/3001ef257407d5a371a96dcd947c7d93-Paper.pdf},volume = {32},year = {2019}
}
这篇关于Noise Conditional Score Networks 简单总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!