受限玻尔兹曼机(RBM)是用于深学习深概率模型的积木的一个典型的例子。RBM本身不是一个深刻的模型,但可以用作构建其他深层模型的构建块。事实上,RBM是无向概率图形模型,由一层观察变量和一层隐藏变量组成,可以用于学习输入的表示。在本节中,我们将介绍如何使用RBM来构建更多更深层次的模型。
让我们考虑两个例子来看看RBM的用例。RBM主要以因子分析的二进制版本进行操作。让我们说我们有一家餐厅,要求我们的客户以0到5的比例对食物进行评级。在传统的方法中,我们将尝试根据变量的隐藏因素来解释每个食品和客户。例如,意大利面和烤宽面条的食物与意大利因素有很强的联系。另一方面,注重成果的管理工作采用不同的方法。而不是要求每个客户对食品进行连续评级,他们只是简单地提到它们是否喜欢,然后RBM将尝试推断各种潜在因素,这有助于解释每个客户的食物选择的激活。
另一个例子可能是根据人们喜欢的类型来猜测某人的电影选择。说X先生提供了他给出的一套电影的五个二进制偏好。成果管理制的工作将是根据隐藏的单位激活他的喜好。所以,在这种情况下,这五个电影将发送消息给所有的隐藏单元,要求他们自己更新。然后,根据给予该人的一些偏好,RBM将以高概率激活隐藏单元。
RBM是一个浅层的两层神经网络,用作构建深层模型的构建块。RBM的第一层称为观察层或可见层,第二层称为潜层或隐层。它是一个二分图,在观察层中的任何变量之间或潜在层中的任何单元之间不允许互连。如图5.3所示,层间没有层间通信。由于这种限制,该模型被称为限制玻尔兹曼机器。每个节点用于处理输入的计算,并通过对是否传送该输入进行随机(随机确定)决策来参与输出。
二分图是一个图,其中顶点可以分成两个不相交的集合,使得每个边缘将一个集合的顶点连接到另一个集合。但是,同一集合的顶点之间没有连接。顶点集通常称为图形的一部分。
RBM两层背后的主要直觉是有一些可见的随机变量(例如来自不同客户的食品评论)和一些潜在变量(如美食,客户国籍或其他内部因素),以及任务RBM的训练是找出这两组变量如何互相连接的概率。
为了在数学上制定RBM的能量函数,我们用由矢量v共同表示由一组nv二进制变量组成的观测层。的隐藏或潜层ñħ二进制随机变量被表示为ħ。
与波尔兹曼机器类似,RBM也是一种基于能量的模型,其中联合概率分布由其能量函数确定:
图5.3:图显示了一个简单的RBM。该模型是一个对称的二分图,其中每个隐藏节点连接到每个可见节点。隐藏单位表示为hi和可见单位为vi
具有二进制可见和潜在单位的RBM的能量函数如下:
这里,a,b和w是无约束的,可学习的,实值参数。从前面的图5.3可以看出,模型被分为两组变量v和h。单元之间的相互作用由矩阵W描述。
所以,我们现在知道RBM的基本架构,在本节中,我们将讨论这个模型的基本工作流程。RBM被馈送一个应该学习的数据集。模型的每个可见节点从数据集的项目接收低级特征。例如,对于灰度图像,最低级别项目将是图像的一个像素值,可见节点将接收该像素值。因此,如果图像数据集具有n个像素,则处理它们的神经网络还必须在可见层上拥有n个输入节点:
图5.4:一个输入路径的RBM计算图
现在,我们通过两层网络传播一个像素值p。在隐层的第一个节点,p乘以一个权重w,并加到该偏差上。然后将最终结果馈送到生成节点输出的激活函数。给定输入像素p,该操作产生结果,其可以被称为通过该节点的信号的强度。图5.4显示了单个输入RBM所涉及的计算的可视化表示。
RBM的每个可见节点与单独的权重相关联。来自各个单位的输入在一个隐藏的节点组合。来自输入的每个p(像素)乘以与其相关联的单独的权重。产品总结并加入偏见。该结果通过激活函数传递以生成节点的输出。以下图5.5显示了对RBM可见层的多个输入所涉及的计算的可视化表示:
图5.5:具有多个输入和一个隐藏单元的RBM的计算图
前面的图5.5显示了如何使用与每个可见节点相关联的权重来计算隐藏节点的最终结果。
图5.6:图显示了RBM的多个可见单位和隐藏单位所涉及的计算
如前所述,RBM类似于二分图。此外,机器的结构基本上类似于对称的二分图,因为从所有可见节点接收的输入正被传递到RBM的所有潜在节点。
对于每个隐藏节点,每个输入p乘以其相应的权重w。因此,对于单个输入p和m个隐藏单元,输入将具有与其相关联的m个权重。在图5.6中,输入p将具有三个权重,总共共有12个权重:来自可见层的四个输入节点和下一层中的三个隐藏节点。两层之间相关联的所有权重形成矩阵,其中行等于可见节点,列等于隐藏单位。在上图中,第二层的每个隐藏节点接受四个输入乘以它们各自的权重。然后产品的最终总和再次加入偏见。然后将该结果通过激活算法传递,以为每个隐藏层产生一个输出。图5.6表示在这种情况下发生的总体计算。
使用堆叠的RBM,它将形成更深层的神经网络,其中第一隐藏层的输出将被传递到下一个隐藏层作为输入。这将通过与用于达到所需分类层的隐藏层一样多的传播。在下一节中,我们将介绍如何使用RBM作为深层神经网络。