Noise-contrastive estimation(NCE)是一种估计统计模型参数的方法。
基本思想是用非线性逻辑回归(nonlinear logistic regression)区分观测数据和一些人为产生的噪声数据,在区分的时候学习统计模型的参数。
作者证明该方法的估计量是一个一致(收敛)估计量,并分析了渐近方差。
特别地,该方法可以直接用于非归一化模型的参数估计,即概率密度函数积分不为1的模型。归一化常数可以像任何其他参数一样进行估计。
NCE的估计量
用X=(x1,…,xT)X=(\mathbf{x}_1, \ldots, \mathbf{x}_T)X=(x1,…,xT)表示观测数据,我们用分布pm(⋅;θ)p_m(\cdot; \theta)pm(⋅;θ)去拟合。Y=(y1,…,yT)Y=(\mathbf{y}_1, \ldots, \mathbf{y}_T)Y=(y1,…,yT)表示任意的噪声数据,其符合分布pn(⋅)p_n(\cdot)pn(⋅)。估计量θ^T\hat{\theta}_Tθ^T被定义为最大化下面目标函数的θ\thetaθ:
JT(θ)=12T∑tln[h(xt;θ)]+ln[1−h(yt;θ)](1)
J_T(\theta) = \frac{1}{2T} \sum_t \ln[h(\mathbf x_t;\theta)] + \ln[1-h(\mathbf y_t;\theta)] \tag{1}
JT(θ)=2T1t∑ln[h(xt;θ)]+ln[1−h(yt;θ)](1)其中
h(u;θ)=11+exp[−G(u;θ)]G(u;θ)=lnpm(u;θ)−lnpn(u)
h(\mathbf u;\theta) = \frac{1}{1+\exp[-G(\mathbf u; \theta)]}\\
G(\mathbf u; \theta) = \ln p_m(\mathbf u; \theta) - \ln p_n(\mathbf u)
h(u;θ)=1+exp[−G(u;θ)]1G(u;θ)=lnpm(u;θ)−lnpn(u)
logistic regression的函数是r(x)=11+exp(−x)r(x) = \frac{1}{1+\exp(-x)}r(x)=1+exp(−x)1,那么h(u;θ)=r(G(u;θ))h(\mathbf u;\theta) = r(G(\mathbf u; \theta))h(u;θ)=r(G(u;θ))。
公式(1)是区分数据来自X或者噪声Y的logistic regression的log-likelihood。
NCE的思想就是,通过区分数据和噪声,可以学习到数据的分布。
作者证明了估计量θ^T\hat{\theta}_Tθ^T的一致性:
和监督学习的关系
考虑二分类的问题,假设u∈X,C=1\mathbf u \in X,C=1u∈X,C=1和u∈Y,C=0\mathbf u \in Y,C=0u∈Y,C=0,那么条件概率是P(u∣C=1;θ)=pm(u;θ)P(u∣C=0)=pn(u)
P(\mathbf u | C=1; \theta)=p_m(\mathbf u; \theta) \\
P(\mathbf u | C=0)=p_n(\mathbf u)
P(u∣C=1;θ)=pm(u;θ)P(u∣C=0)=pn(u)样本来自两个分布的概率相同,即P(C=1)=P(C=0)=12P(C=1)=P(C=0)=\frac{1}{2}P(C=1)=P(C=0)=21,那么后验概率是
P(C=1∣u;θ)=P(u,C=1;θ)P(u)=P(u∣C=1;θ)P(C=1)P(u∣C=1;θ)P(C=1)+P(u∣C=0)P(C=0)=pm(u;θ)pm(u;θ)+pn(u)=h(u;θ)
P(C=1 | \mathbf u; \theta)=\frac{P(\mathbf u, C=1; \theta)}{P(\mathbf u)} = \frac{P(\mathbf u | C=1; \theta)P(C=1)}{P(\mathbf u | C=1; \theta)P(C=1) + P(\mathbf u | C=0)P(C=0)} = \frac{p_m(\mathbf u; \theta)}{p_m(\mathbf u; \theta) + p_n(\mathbf u)} \\
=h(\mathbf u;\theta)P(C=1∣u;θ)=P(u)P(u,C=1;θ)=P(u∣C=1;θ)P(C=1)+P(u∣C=0)P(C=0)P(u∣C=1;θ)P(C=1)=pm(u;θ)+pn(u)pm(u;θ)=h(u;θ)P(C=0∣u;θ)=1−P(C=1∣u;θ)=1−h(u;θ)
P(C=0 | \mathbf u; \theta)=1-P(C=1 | \mathbf u; \theta)=1-h(\mathbf u;\theta)
P(C=0∣u;θ)=1−P(C=1∣u;θ)=1−h(u;θ)
噪声分布的选择
噪声分布应该尽可能的和数据分布相似,否则的话分类问题太过于简单,算法学习不到符合真实数据分布的参数。
可以先学习一个基础的模型去拟合数据分布,再将这个基础模型作为噪声分布。
参考
AISTATS 2010《Noise-contrastive estimation: A new estimation principle for unnormalized statistical models》