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}\) 分别是可见层和隐藏层的截距向量。模型的联合概率由能量定义
受限一词指的是模型的二分结构,它禁止隐藏单元之间或可见单元之间进行直接交互。这意味着假设以下条件独立性
二分结构允许使用高效的块 Gibbs 采样进行推理。
2.9.1.2. 伯努利受限玻尔兹曼机#
在 BernoulliRBM 中,所有单元都是伯努利随机单元。这意味着输入数据应为二进制或介于 0 和 1 之间的实数值,表示可见单元开启或关闭的概率。这对于字符识别是一个很好的模型,其中关注的是哪些像素处于活动状态,哪些没有。对于自然场景图像,它不再适用,因为背景、深度以及相邻像素趋向于采用相同值。
每个单元的条件概率分布由其接收的输入的逻辑 sigmoid 激活函数给出
其中 \(\sigma\) 是逻辑 sigmoid 函数
2.9.1.3. 随机最大似然学习#
BernoulliRBM 中实现的训练算法称为随机最大似然(SML)或持久对比散度(PCD)。直接优化最大似然是不可行的,因为数据似然的形式为
为简单起见,上面的等式是针对单个训练示例编写的。相对于权重的梯度由与上面相对应的两项组成。它们通常被称为正梯度和负梯度,因为它们的符号不同。在此实现中,梯度是根据小批量样本估计的。
在最大化对数似然时,正梯度使模型偏爱与观察到的训练数据兼容的隐藏状态。由于 RBM 的二分结构,它可以高效计算。然而,负梯度是难以处理的。它的目标是降低模型偏爱的联合状态的能量,从而使其忠实于数据。它可以通过使用块 Gibbs 采样的马尔可夫链蒙特卡洛进行近似,通过迭代地对 \(v\) 和 \(h\) 进行采样,给定另一个,直到链混合。以这种方式生成的样本有时被称为幻想粒子。这效率低下,并且难以确定马尔可夫链是否混合。
对比散度方法建议在少量迭代(\(k\),通常甚至是 1)后停止链。这种方法速度快且方差低,但样本离模型分布很远。
持久对比散度解决了这个问题。PCD 不会每次需要梯度时都启动新链并仅执行一次 Gibbs 采样步骤,而是保留一些链(幻想粒子),这些链在每次权重更新后更新 \(k\) 个 Gibbs 步骤。这使得粒子能够更彻底地探索空间。
References
“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