Noise-contrastive estimation简介

Noise-contrastive estimation(NCE)是一种估计统计模型参数的方法。
基本思想是用非线性逻辑回归(nonlinear logistic regression)区分观测数据和一些人为产生的噪声数据,在区分的时候学习统计模型的参数。
作者证明该方法的估计量是一个一致(收敛)估计量,并分析了渐近方差。
特别地,该方法可以直接用于非归一化模型的参数估计,即概率密度函数积分不为1的模型。归一化常数可以像任何其他参数一样进行估计。

NCE的估计量

X = ( x 1 , … , x T ) X=(\mathbf{x}_1, \ldots, \mathbf{x}_T) X=(x1,,xT)表示观测数据,我们用分布 p m ( ⋅ ; θ ) p_m(\cdot; \theta) pm(;θ)去拟合。 Y = ( y 1 , … , y T ) Y=(\mathbf{y}_1, \ldots, \mathbf{y}_T) Y=(y1,,yT)表示任意的噪声数据,其符合分布 p n ( ⋅ ) p_n(\cdot) pn()。估计量 θ ^ T \hat{\theta}_T θ^T被定义为最大化下面目标函数的 θ \theta θ
J T ( θ ) = 1 2 T ∑ t ln ⁡ [ h ( x t ; θ ) ] + ln ⁡ [ 1 − h ( y t ; θ ) ] (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(θ)=2T1tln[h(xt;θ)]+ln[1h(yt;θ)](1)其中
h ( u ; θ ) = 1 1 + exp ⁡ [ − G ( u ; θ ) ] G ( u ; θ ) = ln ⁡ p m ( u ; θ ) − ln ⁡ p n ( 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 ) = 1 1 + 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=1 uX,C=1 u ∈ Y , C = 0 \mathbf u \in Y,C=0 uY,C=0,那么条件概率是 P ( u ∣ C = 1 ; θ ) = p m ( u ; θ ) P ( u ∣ C = 0 ) = p n ( u ) P(\mathbf u | C=1; \theta)=p_m(\mathbf u; \theta) \\ P(\mathbf u | C=0)=p_n(\mathbf u) P(uC=1;θ)=pm(u;θ)P(uC=0)=pn(u)样本来自两个分布的概率相同,即 P ( C = 1 ) = P ( C = 0 ) = 1 2 P(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 ) = p m ( u ; θ ) p m ( u ; θ ) + p n ( 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(uC=1;θ)P(C=1)+P(uC=0)P(C=0)P(uC=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;θ)=1P(C=1∣u;θ)=1h(u;θ)

噪声分布的选择

噪声分布应该尽可能的和数据分布相似,否则的话分类问题太过于简单,算法学习不到符合真实数据分布的参数。
可以先学习一个基础的模型去拟合数据分布,再将这个基础模型作为噪声分布。

参考

AISTATS 2010《Noise-contrastive estimation: A new estimation principle for unnormalized statistical models》

猜你喜欢

转载自blog.csdn.net/icylling/article/details/129019962