深度学习:CD算法学习笔记
2013-10-02 19:29
447 查看
参考资料
Oliver Woodford:Notes on Contrastive DivergenceCD(Contrastive Divergence)算法由Geoffrey Hinton提出,用于求ML(Maximum-Likelihood)问题的近似解。
问题描述
假设模型为,
为模型参数,则
的概率可以表示为
.(1)
其中
是归一化函数,因为概率和等于1。
假设训练集是
,根据最大似然原则,要使得训练集的联合概率最大,即最大化
.
(2)
若对上式取负对数,则问题就相当于最小化能量
(3)
这就是ML问题的描述,下面以几个例子说明如何求解。
ML问题求解
假如模型为单高斯分布,即,则
.
显然,此时
。分别对(3)求
和
求偏导,由导数等于零可以求出解析解,概率统计或者统计信号的书都会有详细的求解。
若模型为多个高斯分布的和(混合高斯模型),即
. 此时,
.
同样可以通过求偏导得出解析解,但是模型参数之间是互相依赖的(偏导中包含了其他参数),并不能简单地通过导数等于零解出参数。这时候可以用GD(Gradient Descent)和Line Search找到局部最小点。
若模型为多个高斯分布的乘积,即
. 此时
不再是常数(取几个特殊指即可知)。因此能量值只能通过积分计算,然后再通过GD寻找最小值。但对于高维的数据或者参数空间来说,计算这个积分显然是相当耗时的。CD算法的作用就在于此,即使对于无法准确计算的能量函数,CD也可以提供有效的梯度计算方法,用于求解模型参数。
CD算法原理
对能量函数(3)求偏导其中,最后一项即为给定
的期望值,该项显然是可以直接求出的,因为
是给定的训练集。而第一项可以进一步展开,
即分布
的期望值。但该分布的样本无法直接获取,因为
无法直接计算,但可以通过MCMC(Markov
Chain Monte Carlo)采样,把训练集的样本转换为指定的分布。关于MCMC和Gibbs Sampling可参阅统计之都的文章,LDA-math-MCMC 和 Gibbs Sampling.
假设
是MCMC的第
步转换,
是输入训练集,则
即为所需分布
.
综上所述,即可得
实际使用中MCMC并不需要无限步,因为随着不断迭代,输入数据的分布与目标分布会越来越接近。Hinton进一步指出,即使每次只做一步MCMC,ML问题同样可以收敛。因此,使用Gradient Descent,每一次迭代,参数更新为
其中,
是GD的步长。
相关文章推荐
- 深度学习研究理解10:Very Deep Convolutional Networks for Large-Scale Image Recognition
- 分布式消息队列Kafka & RocketMQ 深度学习资料精选
- 深度学习实用层面
- TensorFlow 深度学习框架 (1)-- 神经网络与前向传播
- 深度学习十大顶级框架
- 【深度学习】【caffe实用工具4】笔记26 windows下使用Caffe中的源代码进行【训练】和【预测】
- WIN10深度学习环境搭建 Python3.6+Tensorflow+CUDA8.0+Anaconda3+keras
- TensorFlow 深度学习框架 (1)-- 神经网络与前向传播
- 深度学习与计算机视觉系列(2)_图像分类与KNN
- Deep Learning(深度学习)学习笔记整理系列之(七)
- 深度学习:python教程 实践(三)10章
- 【深度学习理论3】ALexNet模型的详解
- 零基础入门深度学习(3) - 神经网络和反向传播算法
- 谈谈深度学习中的 Batch_Size
- 深度学习框架Keras
- 深度学习笔记(2):caffe 加新层 Attention LSTM layer
- Dell-1080Ti 深度学习Win 10 + Ubuntu 16.04.02 双系统安装+anaconda2+tensorflow+opencv3.2+caffe
- 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning
- 深度学习有哪些好玩的且易于实现的论文?
- 基于深度学习框架theano的库-----Lasagne