近期重新学习了一下Diffusion相关的基础知识,读到Generative Modeling by Estimating Gradients of the Data Distribution这篇论文时注意到之前忽略的一个证明细节,具体问题可以见封面的图片。网上存在的一些证明,譬如在各个维度分别运算再求和,形式上不太统一、不太简洁。闲来无事当调度一下自己的数学思维,基于个人习惯写了一份证明。之前学过一段时间力学,对于向量尤其是导数运算习惯用爱因斯坦求和记号,我认为形式比较美观,且不容易犯错。
Score Matching的原始目标是最小化模型分数 sθ(x) 与真实分数 s(x)=∇xlogp(x) 之间的均方误差(MSE):
21Ep(x)[∥sθ(x)−s(x)∥22]
其中,p(x)=pdata(x)。之前学过一些力学,我习惯使用爱因斯坦求和约定,姑且不在意上下标位置(方便运算),展开上述公式如下:
21Ep[sθ,isθ,i−2sθ,isi+sisi]=21Ep[∥sθ∥22]−Ep[sθ,isi]+21Ep[∥s∥22]
最后一项是关于 θ 的常数,可忽略。
交叉项为
Ep[sθ,isi]=∫p(x)sθ,i(x)(∂ilogp(x))dx=∫sθ,i∂ipdx,
其中 si=∂ilogp=(∂ip)/p,故 p⋅si=∂ip。
构建一个向量场 F(x)=p(x)sθ(x),其散度为 ∇⋅F=∂iFi=∂i(psθ,i)。
根据乘积法则(product rule),
∂i(psθ,i)=p∂isθ,i+sθ,i∂ip.
因此,整个空间的积分形式为
∫Rd∇⋅F(x)dx=∫Rdp∂isθ,idx+∫Rdsθ,i∂ipdx.
高斯公式告诉我们,∫∇⋅Fdx 等于边界积分 ∫∂ΩF⋅ndS。
概率密度函数积分为1,可以认为在无穷远衰减足够快。虽然单纯从数学角度讲,无穷远处可以存在有理数个点取值不为0,L2积分仍然是0;但在我们的问题中,我们有理由认为样本的分布不存在这种情况。sθ(x) 的增长不超过线性,边界项为零:
∫Rd∇⋅F(x)dx=0.
于是,
∫sθ,i∂ipdx=−∫p∂isθ,idx=−∫ptr(∇xsθ(x))dx,
其中 tr(∇xsθ)=tr(∂isθ,j)=∂isθ,i。因此,交叉项为
Ep[sθ,isi]=−Ep[tr(∇xsθ)].
代回损失函数(忽略常数),得优化目标,
Ep[21∥sθ(x)∥22+tr(∇xsθ(x))].
这个等价形式无需知道真实的 s(x)。