首页 > 其他分享 >面对配分函数 - 噪扰对比估计(NCE)篇

面对配分函数 - 噪扰对比估计(NCE)篇

时间:2024-10-19 13:53:19浏览次数:3  
标签:noise text 噪扰 配分函数 textbf joint model NCE

序言

配分函数(也叫归一化因子)在概率分布和统计模型的计算中扮演着至关重要的角色。然而,在许多实际应用中,特别是自然语言处理和图像处理领域,配分函数的计算往往异常复杂且难以直接实现。为了解决这一难题,噪音对比估计( Noise Contrastive Estimation,NCE \text{Noise Contrastive Estimation,NCE} Noise Contrastive Estimation,NCE)应运而生。NCE是一种巧妙的统计模型估计方法,它能够在无法直接计算配分函数的情况下,估算出概率分布的参数。

噪扰对比估计(NCE)

  • 具有难求解的配分函数的大多数模型估计都没有估计配分函数。 SML \text{SML} SML和 CD \text{CD} CD只估计对数配分函数的梯度,而不是估计配分函数本身。 得分匹配和伪似然避免了和配分函数相关的计算。

  • 噪扰对比估计( noise-contrastive estimation, NCE \text{noise-contrastive estimation, NCE} noise-contrastive estimation, NCE) ( Gutmann and Hyvarinen, 2010 \text{Gutmann and Hyvarinen, 2010} Gutmann and Hyvarinen, 2010) 采取了一种不同的策略。在这种方法中,模型估计的概率分布被明确表示为:
    log ⁡ p model ( x ) = log ⁡ p ~ model ( x ; θ ) + c \log p_{\text{model}}(\textbf{x})=\log\tilde{p}_{\text{model}}(\textbf{x};\boldsymbol{\theta})+c logpmodel​(x)=logp~​model​(x;θ)+c — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1

  • 其中 c c c 是 − log ⁡ Z ( θ ) − \log Z(\boldsymbol{\theta}) −logZ(θ) 的近似。不仅仅估计 θ \boldsymbol{\theta} θ, 噪扰对比估计过程将 c c c 视为另一参数,使用相同的算法同时估计 θ \boldsymbol{\theta} θ 和 c c c。因此,所得到的 log ⁡ p model ( x ) \log p_{\text{model}}(\textbf{x}) logpmodel​(x) 可能不完全对应有效的概率分布,但随着 c c c 估计的改进,它将变得越来越接近 有效 值 注 1 有效值^{注1} 有效值注1

  • 这种方法不可能使用最大似然作为估计的标准。最大似然标准可以设置 c c c 为任意大的值,而不是设置 c c c 以创建一个有效的概率分布。

  • NCE \text{NCE} NCE将估计 p ( x ) p(\textbf{x}) p(x) 的无监督学习问题转化为学习一个概率二元分类器,其中一个类别对应模型生成的数据。该监督学习问题中的最大似然学习定义了原始问题的渐近一致估计。

  • 具体来说,我们引入第二个分布, 噪扰分布 ( noise distribution \text{noise distribution} noise distribution) p noise ( x ) p_{\text{noise}}(\textbf{x}) pnoise​(x)。 噪扰分布应该易于估计和从中取样。我们现在可以构造一个联合 x \textbf{x} x 和新二元变量 y y y 的模型。在新的联合模型中,我们指定:
    p joint ( y = 1 ) = 1 2 p_{\text{joint}}(y=1)=\displaystyle\frac{1}{2} pjoint​(y=1)=21​ — 公式2 \quad\textbf{---\footnotesize{公式2}} —公式2
    p joint ( x ∣ y = 1 ) = p model ( x ) p_{\text{joint}}(\textbf{x}\mid y=1)=p_{\text{model}}(\textbf{x}) pjoint​(x∣y=1)=pmodel​(x) — 公式3 \quad\textbf{---\footnotesize{公式3}} —公式3

    p joint ( x ∣ y = 0 ) = p noise ( x ) p_{\text{joint}}(\textbf{x}\mid y=0)=p_{\text{noise}}(\textbf{x}) pjoint​(x∣y=0)=pnoise​(x) — 公式4 \quad\textbf{---\footnotesize{公式4}} —公式4

  • 换言之, y y y 是一个决定我们从模型还是从噪扰分布中生成 x \textbf{x} x 的开关变量。

  • 我们可以在训练数据上构造一个类似的联合模型。

    • 在这种情况下,开关变量决定是从数据还是从噪扰分布中抽取 x \textbf{x} x。
    • 形式地, p train ( y = 1 ) = 1 2 p_{\text{train}}(y = 1) =\displaystyle\frac{1}{2} ptrain​(y=1)=21​, p train ( x ∣ y = 1 ) = p data ( x ) p_{\text{train}}(\textbf{x} \mid y = 1) =p_{\text{data}}(\textbf{x}) ptrain​(x∣y=1)=pdata​(x),和 p train ( x ∣ y = 0 ) = p noise ( x ) p_{\text{train}}(\textbf{x} \mid y = 0) = p_{\text{noise}}(\textbf{x}) ptrain​(x∣y=0)=pnoise​(x)。

注1: NCE \text{NCE} NCE也适用于具有易于处理的,不需要引入额外参数 c c c 的配分函数的问题。它已经是最令人感兴趣的,估计具有复杂配分函数模型的方法。


  • 现在我们可以应用标准的最大似然学习拟合 p joint p_{\text{joint}} pjoint​ 到 p train p_{\text{train}} ptrain​ 的监督学习问题:
    θ , c = arg max ⁡ θ , c E x , y ∼   p train log ⁡ p joint ( y ∣ x ) \boldsymbol{\theta},c=\argmax\limits_{\boldsymbol{\theta},c} \mathbb{E}_{\textbf{x},\text{y}\sim\ p_{\text{train}}} \log p_{\text{joint}}(y\mid\textbf{x}) θ,c=θ,cargmax​Ex,y∼ ptrain​​logpjoint​(y∣x) — 公式5 \quad\textbf{---\footnotesize{公式5}} —公式5

  • 分布 p joint p_{\text{joint}} pjoint​ 本质上是将逻辑回归模型应用于模型和噪扰分布之间的对数概率之差:
    { p joint ( y = 1 ∣ x ) = p model ( x ) p model ( x ) + p noise ( x ) — 公式6 = 1 1 + p noise ( x ) p model ( x ) — 公式7 = 1 1 + e log ⁡ p noise ( x ) p model ( x ) — 公式8 = σ ( − log ⁡ p noise ( x ) p model ( x ) ) — 公式9 = σ ( log ⁡ p model ( x ) − log ⁡ p noise ( x ) ) — 公式10 \begin{cases} \begin{aligned} p_{\text{joint}}(y=1\mid\textbf{x})&=\frac{p_{\text{model}}(\textbf{x})}{p_{\text{model}}(\textbf{x})+p_{\text{noise}}(\textbf{x})} &\quad\textbf{---\footnotesize{公式6}}\\\\ &=\frac{1}{1+\displaystyle\frac{p_{\text{noise}}(\textbf{x})}{p_{\text{model}}(\textbf{x})}} &\quad\textbf{---\footnotesize{公式7}}\\\\ &=\displaystyle\frac{1}{1+ e^{\log \displaystyle\frac{p_{\text{noise}}(\textbf{x})}{p_{\text{model}}(\textbf{x})}}} &\quad\textbf{---\footnotesize{公式8}}\\\\ &=\sigma\left(-\log \displaystyle\frac{p_{\text{noise}}(\textbf{x})}{p_{\text{model}}(\textbf{x})}\right) &\quad\textbf{---\footnotesize{公式9}}\\\\ &=\sigma\left( \log p_{\text{model}}(\textbf{x})-\log p_{\text{noise}}(\textbf{x}) \right) &\quad\textbf{---\footnotesize{公式10}} \end{aligned} \end{cases} ⎩ ⎧​pjoint​(y=1∣x)​=pmodel​(x)+pnoise​(x)pmodel​(x)​=1+pmodel​(x)pnoise​(x)​1​=1+elogpmodel​(x)pnoise​(x)​1​=σ(−logpmodel​(x)pnoise​(x)​)=σ(logpmodel​(x)−logpnoise​(x))​—公式6—公式7—公式8—公式9—公式10​​

  • 因此,只要 log ⁡ p ~ model \log \tilde{p}_{\text{model}} logp~​model​ 易于反向传播,并且如上所述, p noise p_{\text{noise}} pnoise​ 应易于估计(以便评估 p joint p_{\text{joint}} pjoint​)和抽样(以生成训练数据),那么 NCE \text{NCE} NCE就易于使用。

  • NCE \text{NCE} NCE能够非常成功地应用于随机变量较少的问题,即使这些随机变量取到很大的值,它也很有效。

    • 例如,它已经成功地应用于给定单词上下文建模单词的条件分布 ( Mnih and Kavukcuoglu, 2013 \text{Mnih and Kavukcuoglu, 2013} Mnih and Kavukcuoglu, 2013)。
    • 虽然单词可以采样自一个很大的词汇表,但是只能采样一个单词。
  • 当 NCE \text{NCE} NCE应用于具有许多随机变量的问题时,其效率会变得较低。

    • 当逻辑回归分类器发现某个变量的取值不大可能时,它会拒绝这个噪扰样本。
    • 这意味着在 p model p_{\text{model}} pmodel​学习了基本的边缘统计之后,学习速率会大大减慢。
    • 想象一个使用非结构化高斯噪扰作为 p noise p_{\text{noise}} pnoise​ 来学习面部图像的模型。
    • 如果 p model p_{\text{model}} pmodel​ 学习了眼睛,而没有学习任何其他面部特征,如嘴,它会拒绝几乎所有的非结构化噪扰样本。
  • p noise p_{\text{noise}} pnoise​必须是易于估计和采样的约束可能是过度的限制。当 p noise p_{\text{noise}} pnoise​ 比较简单时,大多数采样可能与数据有着明显不同,而不会迫使 p model p_{\text{model}} pmodel​ 进行显著改进。

  • 类似于得分匹配和伪似然,如果 p p p 只有下界,那么 NCE \text{NCE} NCE不会有效。

    • 这样的下界能够用于构建 p joint ( y = 1 ∣ x ) p_{\text{joint}}(y = 1 \mid \textbf{x}) pjoint​(y=1∣x) 的下界,但是它只能用于构建 p joint ( y = 0 ∣ x ) p_{\text{joint}}(y = 0 \mid \textbf{x}) pjoint​(y=0∣x)(出现在一般的 NCE \text{NCE} NCE对象中)的上界。
    • 同样地, p noise p_{\text{noise}} pnoise​ 的下界也没有用,因为它只提供了 p joint ( y = 1 ∣ x ) p_{\text{joint}}(y = 1 \mid \textbf{x}) pjoint​(y=1∣x) 的上界。
  • 当在每个梯度步骤之前,模型分布被复制来定义新的噪扰分布时, NCE \text{NCE} NCE定义了一个被称为自对比估计的过程,其梯度期望等价于最大似然的梯度期望 ( Goodfellow, 2014 \text{Goodfellow, 2014} Goodfellow, 2014)。特殊情况的 NCE \text{NCE} NCE( 噪扰采样由模型生成)表明最大似然可以被解释为使模型不断学习以将现实与自身发展的信念区分的过程,而噪扰对比估计通过让模型区分现实和固定的基准( 噪扰模型),降低了计算成本。

  • 在训练样本和生成样本(使用模型能量函数定义分类器)之间进行分类以得到模型的梯度的方法,已经在更早的时候以各种形式提出来 ( Welling et al., 2003b; Bengio, 2009 \text{Welling et al., 2003b; Bengio, 2009} Welling et al., 2003b; Bengio, 2009)。

  • 噪扰对比估计是基于良好生成模型应该能够区分数据和噪扰的想法。一个密切相关的想法是,良好的生成模型能够生成分类器没法将其与数据区分的采样。这个想法诞生了生成式对抗网络。

总结

噪音对比估计( NCE \text{NCE} NCE)作为一种创新的统计模型估计方法,为解决配分函数难以计算的问题提供了有效的策略。通过将多分类问题转化为二分类问题, NCE \text{NCE} NCE不仅简化了计算过程,还提高了模型的训练效率。在自然语言处理和图像处理等复杂任务中, NCE \text{NCE} NCE展现了其出色的性能和广泛的应用前景。

具体而言, NCE \text{NCE} NCE通过对比真实数据和噪声样本,学习一个分类器以区分两者,从而实现对数据分布的有效估计。这种方法避免了直接计算配分函数的困难,转而通过优化二分类问题的损失函数来间接估算概率分布的参数。在实际应用中, NCE \text{NCE} NCE不仅降低了计算量,还提高了模型的泛化能力。

综上所述,噪音对比估计为配分函数的计算提供了一种新的思路和方法,它在解决复杂计算问题和提高模型性能方面具有显著的优势。随着研究的深入和应用的拓展, NCE \text{NCE} NCE有望在更多领域发挥重要作用,推动机器学习和统计模型的发展。

往期内容回顾

面对配分函数 - 引言篇

标签:noise,text,噪扰,配分函数,textbf,joint,model,NCE
From: https://blog.csdn.net/benny_zhou2004/article/details/142963803

相关文章

  • 牛马阅读(知识+重点翻译) Advanced Deep-Learning Techniques for Salient and Category
    ABSTRACT目标检测,包括目标检测(OD)、显著目标检测(SOD)和特定类别的目标检测(COD),是计算机视觉界最基本但最具挑战性的问题之一。在过去的几十年中,研究人员已经做出了巨大的努力来解决这个问题,因为它在其他计算机视觉任务(如活动或事件识别、基于内容的图像检索和场景理解)中得......
  • Easily Conceal Sensitive Information in Your Images
    EasilyConcealSensitiveInformationinYourImagesSyncfusionEssentialStudioASP.NETMVC2024Volume3enablesdeveloperstoredactimagesbyblurringorpixelatingsensitivesections.SyncfusionEssentialStudioASP.NETMVC,availableaspa......
  • 【并查集+dfs】codeforces 1833 E. Round Dance
    题意输入一个正整数\(T(1\leqT\leq10^4)\),表示接下来输入\(T\)组测试用例,对于每一个测试用例:第一行,输入一个正整数\(n(2\leqn\leq2*10^5)\)第二行,输入\(n\)个正整数\(a_i(1\leqa_i\leqn)\),表示节点\(i\)到节点\(a_i\)存在一条有向边,保证无自环这\(n......
  • 【PostgreSQL】如何安装和配置PgBouncer以提高PostgreSQL的并发处理能力?
    安装和配置PgBouncer以提高PostgreSQL的并发处理能力是一个多步骤的过程。PgBouncer作为连接池器,可以有效地管理到PostgreSQL服务器的连接,从而减少每个新连接所需的开销,并且能够更高效地利用资源。下面是详细的步骤说明,包括如何在Debian/Ubuntu系统上安装PgBouncer以及如何......
  • SS241017C. 距离(distance)
    SS241017C.距离(distance)题意给你一棵无根树,边有边权。每次操作向集合\(S\)里插入一个点对\((a,b)\)或询问一个点对\((x,y)\)。对于询问求\(\min_{(a,b)\inS}\{dis(a,x)+dis(b,y)\}\)。solution先考虑单点插入查询的情况。相当于存在插入关键点操作,每次询问一个点距......
  • c# winform在线升级clickonce
     说明:在线升级前提1,一个可以访问在线的地址,2,发布前要在项目属性发布里配置好相关设置一,可以在IIS上布署一个可以访问的地址 二,发布前配置  应用程序文件项目下的相关文件右键属性,生成操作选择内容才会在发布后都生成出来。  系统必备组件 选择你的程序......
  • 《A Heart like Fragrance, Endless Yearning》
    Sinceancienttimes,whohasaheartlikefragrantashers?Thatheartislikeabloomingflowerinspring,fulloffragrance,tendernessandvivacity.Inthelongriveroftime,itblossomsalonewithuniquebrilliance.Nobodyknowswhocantrulyunderst......
  • GPUInstance
    关于GPUInstance1.用于渲染加速的硬件特性.gpu硬件支持的一种特性,使用少量的渲染调用(DrawCall)渲染同一网格的多个副本.也就是说在渲染时,他只需要提交一个网格副本,一个材质球,然后在把这些模型对象中不同的属性(比如:位置,大小,旋转,颜色等)提取出来放到一个数组中.这是最......
  • TowardsDataScience-博客中文翻译-2022-五十二-
    TowardsDataScience博客中文翻译2022(五十二)原文:TowardsDataScience协议:CCBY-NC-SA4.0一维信号的迁移学习原文:https://towardsdatascience.com/transfer-learning-with-a-one-dimensional-signal-76a0d543e9aa加上数据洞察力图片作者。目录——简介——信号统计......
  • TowardsDataScience-博客中文翻译-2022-二十九-
    TowardsDataScience博客中文翻译2022(二十九)原文:TowardsDataScience协议:CCBY-NC-SA4.0如何使用计算机视觉读取酒瓶上的标签?(第一部分)原文:https://towardsdatascience.com/how-to-read-a-label-on-a-wine-bottle-using-computer-vision-part-1-25447f97a761欢迎阅读本......