17.4 Gibbs 采样
目前为止我们已经了解了如何通过反复更新x←−x'∼T(x'|x)从一个分布q(x)中采样,然而我们还没有介绍过如何确定q(x)是否是一个有效的分布。本书中将会描述两种基本的方法。第一种方法是从已经学习到的分布pmodel中推导出T,下文描述了如何从基于能量的模型中采样。第二种方法是直接用参数描述T,然后学习这些参数,其平稳分布隐式地定义了我们所感兴趣的模型pmodel。我们将在第20.12节和第20.13节中讨论第二种方法的例子。
在深度学习中,我们通常使用马尔可夫链从定义为基于能量的模型的分布pmodel(x)中采样。在这种情况下,我们希望马尔可夫链的q(x)分布就是pmodel(x)。为了得到所期望的q(x)分布,我们必须选取合适的T(x'|x)。
Gibbs采样(Gibbs Sampling)是一种概念简单而又有效的方法。它构造一个从pmodel(x)中采样的马尔可夫链,其中在基于能量的模型中从T(x'|x)采样是通过选择一个变量xi,然后从pmodel中该点关于在无向图(定义了基于能量的模型结构)中邻接点的条件分布中采样。只要一些变量在给定相邻变量时是条件独立的,那么这些变量就可以被同时采样。正如在第16.7.1节中看到的RBM示例一样,RBM中所有的隐藏单元可以被同时采样,因为在给定所有可见单元的条件下它们相互条件独立。同样地,所有的可见单元也可以被同时采样,因为在给定所有隐藏单元的情况下它们相互条件独立。以这种方式同时更新许多变量的Gibbs采样通常被称为块吉布斯采样(block Gibbs Sampling)。
设计从pmodel中采样的马尔可夫链还存在其他备选方法。比如说,Metropolis-Hastings算法在其他领域中广泛使用。不过在深度学习的无向模型中,我们主要使用Gibbs采样,很少使用其他方法。改进采样技巧也是一个潜在的研究热点。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论