第十八章 直面配分函数 Confronting the Partition Function

中文
英文
2020-4-8 深度学习笔记18 - 直面配分函数 1 ( 配分函数概念,对数似然梯度)
2020-4-9 深度学习笔记18 - 直面配分函数 2 ( 随机最大似然和对比散度-概率和似然)
2020-4-10 深度学习笔记18 - 直面配分函数 3 ( 伪似然–绕开配分函数)
2020-4-11 深度学习笔记18 - 直面配分函数 4 ( 得分匹配SM和比率匹配RM–绕开配分函数)

去噪得分匹配Denoising Score Matching

某些情况下,我们希望拟合以下分布来正则化得分匹配 ,而不是拟合真实分布 p data p_{\text{data}} pdata​。
p s m o o t h e d ( x ) = ∫ p d a t a ( y ) q ( x ∣ y ) d y p_{smoothed}(x)=∫p_{data}(y)q(x∣y)dy psmoothed​(x)=∫pdata​(y)q(x∣y)dy
其中,分布 q ( x ∣ y ) q(x \mid y) q(x∣y)是一个损坏过程,通常在形成 x x x的过程中会向 y y y中添加少量噪声。

去噪得分匹配非常有用,因为在实践中,通常我们不能获取真实的 p data p_{\text{data}} pdata​,而只能得到其样本确定的经验分布。

噪声对比估计Noise-Contrastive Estimation,NCE

Most techniques for estimating models with intractable partition functions do not provide an estimate of the partition function.
具有难求解的配分函数的大多数模型估计都没有估计配分函数。

  • 随机最大似然SML和对比散度算法CD只估计对数配分函数的梯度,而不是估计配分函数本身。
  • 得分匹配和伪似然避免了和配分函数相关的计算。

噪声对比估计(noise-contrastive estimation,NCE)采取了一种不同的策略。

在这种方法中,模型估计的概率分布被明确表示为
log ⁡ p model ( x ) = log ⁡ p ~ model ( x ; θ ) + c \log p_{\text{model}} (x) = \log \tilde{p}{\text{model}} (x; \theta) + c logpmodel​(x)=logp~​model(x;θ)+c
其中 c c c是 − log ⁡ Z ( θ ) -\log Z(\theta) −logZ(θ)的近似。 NCE过程将 c c c视为另一参数,使用相同的算法同时估计 θ \theta θ和 c c c,而不是仅仅估计 θ \theta θ。

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

具体地说,我们引入第二个分布,噪声分布 p noise ( x ) p_{\text{noise}}(x) pnoise​(x)。 噪声分布应该易于估计和从中采样。 我们现在可以构造一个联合 x x x和新二值变量 y y y的模型。 在新的联合模型中,我们指定
p j o i n t ( y = 1 ) = 1 2 , p_{joint}(y=1)=\frac12, pjoint​(y=1)=21​,
p j o i n t ( x ∣ y = 1 ) = p m o d e l ( x ) , p_{joint}(x∣y=1)=p_{model}(x), pjoint​(x∣y=1)=pmodel​(x),
和 p j o i n t ( x ∣ y = 0 ) = p n o i s e ( x ) p_{joint}(x∣y=0)=p_{noise}(x) pjoint​(x∣y=0)=pnoise​(x)
y y y是一个决定我们从模型还是从噪声分布中生成 x x x的开关变量。

现在我们可以应用标准的最大似然学习拟合 p joint p_{\text{joint}} pjoint​到 p train p_{\text{train}} ptrain​的,\textbf{监督},学习问题:

分布 p joint p_{\text{joint}} pjoint​本质上是将逻辑回归模型应用于模型和噪声分布之间的对数概率之差:
p j o i n t ( y = 1 ∣ x ) = σ ( l o g p m o d e l ( x ) − l o g p n o i s e ( x ) ) p_{joint}(y=1∣x)=σ(log{p_{model}}(x)−log{p_{noise}}(x)) pjoint​(y=1∣x)=σ(logpmodel​(x)−logpnoise​(x))

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

NCE能够非常成功地应用于随机变量较少的问题,但即使随机变量有很多可以取的值时,它也很有效。 例如,它已经成功地应用于给定单词上下文建模单词的条件分布。 虽然单词可以采样自一个很大的词汇表,但是只能采样一个单词。

当NCE应用于具有许多随机变量的问题时,其效率会变得较低。

噪声分布 p noise p_{\text{noise}} pnoise​必须是易于估计和采样的约束可能是过于严格的限制。

NCE是基于良好生成模型应该能够区分数据和噪声的想法。

估计配分函数

估计配分函数可能会很重要,当我们希望计算数据的归一化似然时,我们会需要它。 在评估模型,监控训练性能,和比较模型时,这通常是很重要的。

一种估计配分函数的简单方法是使用蒙特卡罗方法,例如简单重要采样。

两个解决高维空间复杂分布上估计配分函数的方法: 退火重要采样和桥式采样。

2020-4-12 深度学习笔记18 - 直面配分函数 5 ( 去噪得分匹配,噪声对比估计NCE--绕开配分函数,估计配分函数)相关推荐

  1. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  2. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  3. 深度学习笔记(18) 迁移学习

    深度学习笔记(18) 迁移学习 1. 迁移学习理念 2. 图像识别的迁移学习 3. 语音识别的迁移学习 4. 使用迁移学习的场合 1. 迁移学习理念 深度学习中最强大的理念之一就是: 神经网络可以从一 ...

  4. 深度学习笔记(12) Batch归一化网络

    深度学习笔记(12) Batch归一化网络 1. Batch归一化 2. 激活值归一化 3. 特殊情况不归一化 4. mini-batch上的Batch归一化 1. Batch归一化 Batch归一化 ...

  5. HALCON 21.11:深度学习笔记---语义分割/边缘提取(12)

    HALCON 21.11:深度学习笔记---语义分割/边缘提取(12) HALCON 21.11.0.0中,实现了深度学习方法. 本章介绍了如何使用基于深度学习的语义分割,包括训练和推理阶段. 通过语 ...

  6. HALCON 20.11:深度学习笔记(12)---语义分割

    HALCON 20.11:深度学习笔记(12)--- 语义分割 HALCON 20.11.0.0中,实现了深度学习方法. 本章解释了如何使用基于深度学习的语义分割,包括训练和推理阶段. 通过语义分割, ...

  7. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  8. 《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)

    <繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ...

  9. 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)

    今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门.(作者:黄海广) 0.导语 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在g ...

最新文章

  1. 兔子的区间密码-最大异或对
  2. c++学习笔记之静态成员函数
  3. SAP S/4HANA里修改了Business Partner后的调试入口
  4. ubuntu18.04下安装Anaconda及numpy、matplotlib
  5. oracle12c之 控制pdb中sga 与 pga 内存使用
  6. HDU 3486 Interviewe RMQ
  7. insert into user mysql root_跳过授权表登录后使用insert into创建root权限用户
  8. linux 系统命令之wget和yum和apt-get区别
  9. Java — java.lang.NullPointerException - 如何处理空指针异常
  10. QTcpSocket使用发现的问题
  11. java创建窗口_java如何创建一个窗口出来
  12. 【渗透测试实战】—社会工程学利用详解
  13. 攻防世界WEB题练习
  14. VUCA时代:软件架构解决复杂性之道
  15. 微软十五道面试题 答案
  16. 学计算机有什么好处和坏处,学习电脑有什么好处和坏处,电脑好处和坏处有哪些?...
  17. 将网络url图片链接转换为File类型对象
  18. SAP学习第一篇——SAP模块介绍
  19. Markdownpad2错误This view has crashed问题解决记录
  20. CRE6959TL70V055

热门文章

  1. Day_04 传智健康项目-预约管理-套餐管理
  2. sa-token使用
  3. 什么是乙二醇二乙酸酯(EGDA)?
  4. 这就是为什么选择C语言不用python的原因
  5. 如何将多个excel表格合并成一个_如何将两个pdf文件合并成一个
  6. cmd ping 一台计算机名,windows CMD命令查看局域网内所有主机名及IP
  7. 70行代码实现同花顺,通达信,麦语言大部分技术指标公式
  8. 嵌入式开发-各种干货
  9. 坏小子军团Stary造了一块电动滑板,想帮你用最低的代价去耍(zhuang)酷(bi)
  10. 解决二义性问题解决 java_C++中常见的两种二义性问题及其解决方式