花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)
文章目录
- 0. 前言
- 1. 对数似然梯度
- 1.1 朴素 MCMC 算法
- 1.2 对比散度算法 CD
- 1.3 随机最大似然 SML
- 2. 伪似然
- 3. 得分匹配 SM
- 4. 比率匹配 RM
- 5. 去噪得分匹配
- 6. 噪声对比估计 NCE
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
花书+吴恩达深度学习(二三)结构化概率模型(贝叶斯网络、马尔可夫网络)
花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)
花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)
花书+吴恩达深度学习(二六)近似推断(EM, 变分推断)
0. 前言
在基于概率的模型中,都需要计算如下概率分布:
p(x;θ)=1Z(θ)p~(x;θ)p(x;\theta)=\frac{1}{Z(\theta)}\tilde{p}(x;\theta) p(x;θ)=Z(θ)1p~(x;θ)
对于一些不得不计算p(x)p(x)p(x)的模型,本章将介绍一些方法。
1. 对数似然梯度
通过最大似然学习无向模型的困难在于配分函数依赖于参数:
∇θlogp(x;θ)=∇θlogp~(x;θ)−∇θlogZ(θ)\nabla_\theta \log p(x;\theta)=\nabla_\theta \log \tilde{p}(x;\theta)-\nabla_\theta \log Z(\theta) ∇θlogp(x;θ)=∇θlogp~(x;θ)−∇θlogZ(θ)
当满足一些特定条件时,有:
∇θlogZ=Ex∼p(x)∇θlogp~(x)\nabla_\theta \log Z=\mathbb{E}_{x\sim p(x)}\nabla_\theta \log \tilde{p}(x) ∇θlogZ=Ex∼p(x)∇θlogp~(x)
这将问题分为了正相和负相。在正相中,我们增大从数据中采样得到的logp~(x)\log \tilde{p}(x)logp~(x)。在负相中,我们降低从模型分布中采样的logp~(x)\log \tilde{p}(x)logp~(x)。
1.1 朴素 MCMC 算法
算法如下图所示(图源:深度学习):
内循环中磨合马尔可夫链的计算代价过高,导致这个过程在实际中是不可行的。
1.2 对比散度算法 CD
算法如下图所示(图源:深度学习):
初始时,数据分布并不接近模型分布,因此负相并不是非常准确,但是正相可以准确的增加数据的模型概率,经过一段时间后,模型分布会接近数据分布,负相开始变得准确。
CD未能定性的实现真实负相的原因是,它不能抑制远离真实训练样本的高概率区域,这些区域在模型上具有高概率,但是在数据生成上具有低概率,称为虚假模态。
基本上,除非kkk非常大,模型分布中远离数据分布的峰值不会被使用训练数据初始化的马尔可夫链访问到。
1.3 随机最大似然 SML
又称为持续性对比散度 PCD,算法如下图所示(图源:深度学习):
基本思想是,只要随机梯度算法得到的步长很小,那么前一步骤的模型将类似于当前步骤的模型。因此,来自先前模型分布的样本将非常接近来自当前模型分布的客观样本,用这些样本初始化的马尔可夫链将不需要花费很多时间来完成混合。
2. 伪似然
蒙特卡罗近似配分函数及其梯度需要直接处理配分函数。而无向模型中很容易计算概率的比率:
p(x)p(y)=1Zp~(x)1Zp~(y)=p~(x)p~(y)\frac{p(x)}{p(y)}=\frac{\frac{1}{Z}\tilde{p}(x)}{\frac{1}{Z}\tilde{p}(y)}=\frac{\tilde{p}(x)}{\tilde{p}(y)} p(y)p(x)=Z1p~(y)Z1p~(x)=p~(y)p~(x)
假设我们将xxx分为abca\ b\ ca b c,其中aaa包含我们想要的条件分布的变量,bbb包含我们想要的条件化变量,ccc包含除此之外的变量:
p(a∣b)=p(a,b)p(b)=p(a,b)∑a,cp(a,b,c)=p~(a,b)∑a,cp~(a,b,c)p(a\mid b)=\frac{p(a,b)}{p(b)}=\frac{p(a,b)}{\sum_{a,c}p(a,b,c)}=\frac{\tilde{p}(a,b)}{\sum_{a,c}\tilde{p}(a,b,c)} p(a∣b)=p(b)p(a,b)=∑a,cp(a,b,c)p(a,b)=∑a,cp~(a,b,c)p~(a,b)
不幸的是,为了计算对数似然,我们需要边缘化很多变量。如果我们将ccc移到bbb中减少计算代价,就产生了伪似然:
∑i=1nlogp(xi∣x−i)\sum_{i=1}^n\log p(x_i\mid x_{-i}) i=1∑nlogp(xi∣x−i)
如果每个随机变量有kkk个不同的值,那么计算p~(x)\tilde{p}(x)p~(x)需要k×nk\times nk×n次估计,而计算配分函数需要knk^nkn次估计。
伪似然的弱点是,它不能与仅在p~(x)\tilde{p}(x)p~(x)上提供下界的其他近似一起使用。
虽然伪似然估计没有显式的最小化logZ\log ZlogZ,但我们仍认为它具有类似负相的效果。
3. 得分匹配 SM
对数密度关于参数的导数∇xlogp(x)\nabla_x \log p(x)∇xlogp(x)被称为得分。
策略是:最小化模型对数密度和数据对数密度关于输入的导数之间的平方差期望:
L(x;θ)=12∥∇xlogpmodel(x;θ)−∇xlogpdata(x)∥22J(θ)=12Epdata(x)L(x;θ)θ∗=minθJ(θ)L(x;\theta)=\frac{1}{2}\left\|\nabla_x\log p_{model}(x;\theta)- \nabla_x\log p_{data}(x)\right\|_2^2\\ J(\theta)=\frac{1}{2}\mathbb{E}_{p_{data}(x)}L(x;\theta)\\ \theta^*=\min_\theta\ J(\theta) L(x;θ)=21∥∇xlogpmodel(x;θ)−∇xlogpdata(x)∥22J(θ)=21Epdata(x)L(x;θ)θ∗=θmin J(θ)
但是,计算数据分布的得分需要知道生成训练数据的真实分布,所以等价于最小化下式:
L~(x,θ)=∑j=1n(∂2∂xj2logpmodel(x;θ)+12(∂∂xjlogpmodel(x;θ))2)\tilde{L}(x,\theta)=\sum_{j=1}^n(\frac{\partial^2}{\partial x_j^2}\log p_{model}(x;\theta)+\frac{1}{2}(\frac{\partial}{\partial x_j}\log p_{model}(x;\theta))^2) L~(x,θ)=j=1∑n(∂xj2∂2logpmodel(x;θ)+21(∂xj∂logpmodel(x;θ))2)
类似于伪似然,得分匹配只有在我们能够直接估计logp~(x)\log \tilde{p}(x)logp~(x)及其导数的时候才有效。
广义得分匹配 GSM(generalized score matching)在许多样本观测概率为0的高维离散空间中不起作用。
4. 比率匹配 RM
比率匹配特别适用于二值数据,通过最小化以下目标函数在样本上的均值:
L(x,θ)=∑j=1n(11+pmodel(x;θ)pmodel(f(x),j;θ))2L(x,\theta)=\sum_{j=1}^n(\frac{1}{1+\frac{p_{model}(x;\theta)}{p_{model}(f(x),j;\theta)}})^2 L(x,θ)=j=1∑n(1+pmodel(f(x),j;θ)pmodel(x;θ)1)2
其中,f(x,j)f(x,j)f(x,j)返回jjj处位值取反的xxx。
5. 去噪得分匹配
可以拟合以下分布来正则化得分匹配:
psmoothed(x)=∫pdata(y)q(x∣y)dyp_{smoothed}(x)=\int p_{data}(y)q(x\mid y)dy psmoothed(x)=∫pdata(y)q(x∣y)dy
其中,分布q(x∣y)q(x\mid y)q(x∣y)是一个损坏过程,通常在形成xxx的过程中会向yyy中添加少量噪声。
去噪得分匹配有用,因为通常我们不能获取真实的pdatap_{data}pdata,而只能得到其样本确定的经验分布。
6. 噪声对比估计 NCE
噪声对比估计(noise-contrastive estimation)中,模型估计的概率分布表示为:
logpmodel(x)=logp~model(x;θ)+c\log p_{model}(x)=\log \tilde{p}_{model}(x;\theta)+c logpmodel(x)=logp~model(x;θ)+c
其中,ccc是−logZ(θ)-\log Z(\theta)−logZ(θ)的近似,NCE将ccc视为另一参数。
NCE将估计p(x)p(x)p(x)的无监督学习转换为学习一个概率二元分类器。
构造一个联合xxx和新二值变量yyy的模型:
pjoint(y=1)=12pjoint(x∣y=1)=pmodel(x)pjoint(x∣y=0)=pnoise(x)p_{joint}(y=1)=\frac{1}{2}\\ p_{joint}(x\mid y=1)=p_{model}(x)\\ p_{joint}(x\mid y=0)=p_{noise}(x) pjoint(y=1)=21pjoint(x∣y=1)=pmodel(x)pjoint(x∣y=0)=pnoise(x)
其中,开关变量决定是从数据还是从噪声分布中抽取xxx。
我们应用最大似然学习拟合以下的监督学习问题:
θ,c=argmaxθ,cEx,y∼ptrainlogpjoint(y∣x)pjoint(y=1∣x)=σ(logpmodel(x)−logpnoise(x))\theta ,c=\arg \max_{\theta,c}\mathbb{E}_{x,y\sim p_{train}}\log p_{joint}(y\mid x)\\ p_{joint}(y=1\mid x)=\sigma(\log p_{model}(x)-\log p_{noise}(x)) θ,c=argθ,cmaxEx,y∼ptrainlogpjoint(y∣x)pjoint(y=1∣x)=σ(logpmodel(x)−logpnoise(x))
NCE能够非常成功的应用于随机变量较少的问题,但随机变量有很多取值时,也很有效。
噪声对比估计是基于良好的生成模型应该能够区分数据和噪声的想法。
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)相关推荐
- 花书+吴恩达深度学习(五)正则化方法(防止过拟合)
目录 0. 前言 1. 参数范数惩罚 2. Dropout 随机失活 3. 提前终止 4. 数据集增强 5. 参数共享 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+ ...
- 花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)
目录 0. 前言 1. 牛顿法 2. 共轭梯度法(CG) 3. BFGS 4. L-BFGS 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(五)正则化 ...
- 花书+吴恩达深度学习(八)优化方法之 Batch normalization
目录 0. 前言 1. Batch normalization 训练 2. Batch normalization 测试 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...
- 花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)
目录 0. 前言 1. 指数加权平均(exponentially weighted averages) 2. Momentum 动量 3. Nesterov 动量 4. AdaGrad 5. RMSP ...
- 花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)
目录 0. 前言 1. Batch gradient descent(BGD) 2. Stochastic gradient descent(SGD) 3. Mini-batch gradient d ...
- 花书+吴恩达深度学习(二九)生成随机网络 GSN
文章目录 0. 前言 1. 生成随机网络 GSN 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习(二七)深度生成模型之玻尔兹曼机及其变体(RBM, DB ...
- 花书+吴恩达深度学习(二六)近似推断(EM, 变分推断)
文章目录 0. 前言 1. 将推断视为优化问题 1.1 期望最大化 EM 1.2 最大后验推断 MAP 1.3 稀疏编码 2. 变分推断 2.1 离散型潜变量 2.2 连续性潜变量 如果这篇文章对你有 ...
- 花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)
文章目录 0. 前言 1. 重要采样 2. 马尔可夫链蒙特卡罗 MCMC 3. 不同峰值之间的混合挑战 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习( ...
- 花书+吴恩达深度学习(二二)自编码器(欠完备,DAE,CAE,PSD)
文章目录 0. 前言 1. 欠完备自编码器 2. 去噪自编码器 DAE 3. 收缩自编码器 CAE 4. 稀疏自编码器 5. 预测稀疏分解 PSD 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞 ...
最新文章
- 精选CVPR开源项目学习资源汇总
- OpenJDK 正式宣布AWT、2D、Swing等项目解散
- 023_JavaScript数字方法
- java基础----Runtime类的使用(一)
- 老鼠的求爱之旅 (DP)
- think php a方法,ThinkPHP之A方法实例讲解_PHP
- 火狐(FireFox)
- 前端知识点总结---面试专用
- 将安全信息应用到以下对象时发生错误 拒绝访问_手机资讯:拒绝「京东金融」事件再次发生|如何避免iPhone 应用私自获取照片...
- mysql查询库中所有的表名,mysql查询指定表中的所有字段名及其相关信息
- 自制系统垃圾清理BAT小工具
- c语言中文本作图,C语言绘图问题
- Excel单元格格式选择货币格式US$时变成US$¥
- 信息收集之——FOFA网站常用搜索语法
- 手机word文档docx密码忘了怎么办,忘记word文档docx密码怎么办?
- 多多云手机【语音引流】创新吸粉模式 -- 语音播放功能模块开发教程
- 二手房中介管理系统设计
- jQuery-获取/设置 属性(标准属性,自定义属性)和内容
- 每日一练-1-CAD
- R计算移动平均的方法
热门文章
- 解决Oracle的http://localhost:1158/em页面打不开的问题
- ”0元中标的商业逻辑“ -- 如何更好防范项目风险(北京软件造价评估技术创新联盟:李培圣)...
- 搜索引擎中用到的一些拆词方式解析
- 基于 Lerna 管理 packages 的 Monorepo 项目最佳实践
- Python学习---基础函数的学习
- PHP函数call_user_func和call_user_func_array详解
- 城市风云儿的装备体系
- 打开一个页面,并监听该页面的关闭事件
- global.css
- Diino - 具有自动数据备份功能的国外2G免费网络硬盘