深度学习:CD算法学习笔记

时间:2022-12-14 13:19:23

参考资料

Oliver Woodford:Notes on Contrastive Divergence



CD(Contrastive Divergence)算法由Geoffrey Hinton提出,用于求ML(Maximum-Likelihood)问题的近似解。


问题描述


假设模型为深度学习:CD算法学习笔记深度学习:CD算法学习笔记为模型参数,则深度学习:CD算法学习笔记的概率可以表示为

深度学习:CD算法学习笔记.(1)其中 深度学习:CD算法学习笔记是归一化函数,因为概率和等于1。
假设训练集是 深度学习:CD算法学习笔记,根据最大似然原则,要使得训练集的联合概率最大,即最大化
深度学习:CD算法学习笔记.(2) 若对上式取负对数,则问题就相当于最小化能量
深度学习:CD算法学习笔记(3)这就是ML问题的描述,下面以几个例子说明如何求解。


ML问题求解


  • 假如模型为单高斯分布,即深度学习:CD算法学习笔记,则深度学习:CD算法学习笔记. 显然,此时深度学习:CD算法学习笔记。分别对(3)求深度学习:CD算法学习笔记深度学习:CD算法学习笔记求偏导,由导数等于零可以求出解析解,概率统计或者统计信号的书都会有详细的求解。
  • 若模型为多个高斯分布的和(混合高斯模型),即深度学习:CD算法学习笔记. 此时,深度学习:CD算法学习笔记. 同样可以通过求偏导得出解析解,但是模型参数之间是互相依赖的(偏导中包含了其他参数),并不能简单地通过导数等于零解出参数。这时候可以用GD(Gradient Descent)和Line Search找到局部最小点。
  • 若模型为多个高斯分布的乘积,即深度学习:CD算法学习笔记. 此时深度学习:CD算法学习笔记不再是常数(取几个特殊指即可知)。因此能量值只能通过积分计算,然后再通过GD寻找最小值。但对于高维的数据或者参数空间来说,计算这个积分显然是相当耗时的。CD算法的作用就在于此,即使对于无法准确计算的能量函数,CD也可以提供有效的梯度计算方法,用于求解模型参数。


    CD算法原理


    对能量函数(3)求偏导

    深度学习:CD算法学习笔记
    其中,最后一项即为给定 深度学习:CD算法学习笔记的期望值,该项显然是可以直接求出的,因为 深度学习:CD算法学习笔记是给定的训练集。而第一项可以进一步展开,

    深度学习:CD算法学习笔记
    即分布 深度学习:CD算法学习笔记的期望值。但该分布的样本无法直接获取,因为 深度学习:CD算法学习笔记无法直接计算,但可以通过MCMC(Markov Chain Monte Carlo)采样,把训练集的样本转换为指定的分布。关于MCMC和Gibbs Sampling可参阅统计之都的文章, LDA-math-MCMC 和 Gibbs Sampling.
    假设 深度学习:CD算法学习笔记是MCMC的第 深度学习:CD算法学习笔记步转换, 深度学习:CD算法学习笔记是输入训练集,则 深度学习:CD算法学习笔记 即为所需分布 深度学习:CD算法学习笔记. 综上所述,即可得

    深度学习:CD算法学习笔记
    实际使用中MCMC并不需要无限步,因为随着不断迭代,输入数据的分布与目标分布会越来越接近。Hinton进一步指出,即使每次只做一步MCMC,ML问题同样可以收敛。因此,使用Gradient Descent,每一次迭代,参数更新为

    深度学习:CD算法学习笔记
    其中, 深度学习:CD算法学习笔记是GD的步长。