2.9. 神经网络模型(无监督)#
2.9.1. 受限玻尔兹曼机#
受限玻尔兹曼机(RBM)是一种基于概率模型的无监督非线性特征学习器。当通过RBM或RBM层次结构提取的特征被输入到线性分类器(如线性SVM或感知器)时,通常能得到良好的结果。
该模型对输入的分布做出假设。目前,scikit-learn仅提供 BernoulliRBM
,它假设输入为二进制值或介于0和1之间的值,每个值编码特定特征被激活的概率。
RBM尝试使用特定的图形模型来最大化数据的可能性。所使用的参数学习算法(随机最大似然 )防止表示偏离输入数据太远,这使得它们能够捕捉有趣的规律性,但使得模型对于小数据集不太有用,并且通常不适用于密度估计。
该方法因使用独立RBM的权重初始化深度神经网络而流行起来。这种方法被称为无监督预训练。
示例
2.9.1.1. 图形模型和参数化#
RBM的图形模型是一个完全连接的二分图。
节点是随机变量,其状态取决于其他节点的状态。 它们连接到的节点。因此,该模型由连接的权重以及每个可见和隐藏单元的截距(偏差)项参数化,为了简化,图中省略了这些截距项。
能量函数衡量联合分配的质量:
在上面的公式中,\(\mathbf{b}\) 和 \(\mathbf{c}\) 分别是可见层和隐藏层的截距向量。模型的联合概率定义为能量的函数:
单词 restricted 指的是模型的二分结构,它禁止隐藏单元之间或可见单元之间的直接交互。这意味着假设了以下条件独立性:
二分结构允许使用高效的块吉布斯采样进行推理。
2.9.1.2. 伯努利受限玻尔兹曼机#
在 BernoulliRBM
中,所有单元都是二元随机单元。这意味着输入数据应该是二元的,或者是介于0和1之间的实值,表示可见单元开启或关闭的概率。这对于字符识别是一个很好的模型,关注的焦点是哪些像素是活跃的,哪些不是。对于自然场景的图像,由于背景、深度以及相邻像素倾向于取相同值的趋势,这个模型不再适用。
每个单元的条件概率分布由其接收到的输入的逻辑斯蒂激活函数给出:
其中 \(\sigma\) 是逻辑斯蒂函数:
2.9.1.3. 随机最大似然学习#
BernoulliRBM
中实现的训练算法被称为随机最大似然(SML)或持久对比散度(PCD)。直接优化最大似然是不可行的,因为数据似然的形式:
为了简化,上面的方程是为单个训练样本编写的。相对于权重的梯度由上述两个项形成。它们通常被称为正梯度和负梯度,因为它们各自的符号。在这个实现中,梯度是基于样本的小批量估计的。
在最大化对数似然中,正梯度使模型倾向于与观察到的训练数据兼容的隐藏状态。由于RBM的二分结构,它可以高效地计算。然而,负梯度是难以处理的。它的目标是降低模型偏好的联合状态的能量,因此使其忠实于数据。可以通过马尔可夫链蒙特卡罗使用块吉布斯采样来近似,通过迭代地采样给定另一个的 \(v\) 和 \(h\) ,直到链混合。以这种方式生成的样本有时被称为幻想粒子。这是低效的,并且很难确定马尔可夫链是否混合。
对比散度方法建议在少量迭代后停止链,\(k\) ,通常甚至1。这种方法快速且方差低,但样本远非模型分布。
持久对比散度解决了这个问题。与每次需要梯度时启动新链并仅执行一个吉布斯采样步骤不同,在PCD中,我们保留了一些链(幻想粒子),这些链在每次权重更新时更新。 \(k\) Gibbs步骤在每次权重更新后。这使得粒子能够更彻底地探索空间。
参考文献
“A fast learning algorithm for deep belief nets” , G. Hinton, S. Osindero, Y.-W. Teh, 2006
“Training Restricted Boltzmann Machines using Approximations to the Likelihood Gradient” , T. Tieleman, 2008