乐读窝

深度学习

乐读窝 > 文学理论 > 深度学习

20.6 卷积玻尔兹曼机

书籍名:《深度学习》    作者:伊恩.古德费洛



如第9章所示,超高维度输入(如图像)会对机器学习模型的计算、内存和统计要求造成很大的压力。通过使用小核的离散卷积来替换矩阵乘法是解决具有空间平移不变性或时间结构的输入问题的标准方式。Desjardins  and  Bengio(2008)表明这种方法应用于RBM时效果很好。

深度卷积网络通常需要池化操作,使得每个连续层的空间大小减小。前馈卷积网络通常使用池化函数,例如池化元素的最大值。目前尚不清楚如何将其推广到基于能量的模型的设定中。我们可以在n个二值检测器单元d上引入二值池化单元p,强制p=maxidi,并且当违反约束时将能量函数设置为∞。因为它需要评估2n个不同的能量设置来计算归一化常数,这种方式不能很好地扩展。对于小的3×3池化区域,每个池化单元需要评估29=512个能量函数!

Lee  et  al.(2009)针对这个问题,开发了一个称为概率最大池化(probabilistic  max  pooling)的解决方案(不要与“随机池化”混淆,“随机池化”是用于隐含地构建卷积前馈网络集成的技术)。概率最大池化背后的策略是约束检测器单元,使得一次最多只有一个可以处于活动状态。这意味着仅存在n+1个总状态(n个检测器单元中某一个状态为开和一个对应于所有检测器单元关闭的附加状态)。当且仅当检测器单元中的一个开启时,池化单元打开。所有单元的状态关闭时,能量被分配为0。我们可以认为这是在用包含n+1个状态的单个变量来描述模型,或者等价地具有n+1个变量的模型,除了n+1个联合分配的变量之外的能量赋为∞。

虽然高效的概率最大池化确实能强迫检测器单元互斥,这在某些情景下可能是有用的正则化约束,而在其他情景下是对模型容量有害的限制。它也不支持重叠池化区域。从前馈卷积网络获得最佳性能通常需要重叠的池化区域,因此这种约束可能大大降低了卷积玻尔兹曼机的性能。

Lee  et  al.(2009)证明概率最大池化可以用于构建卷积深度玻尔兹曼机(3)。该模型能够执行诸如填补输入缺失部分的操作。虽然这种模型在理论上有吸引力,让它在实践中工作是具有挑战性的,作为分类器通常不如通过监督训练的传统卷积网络。

许多卷积模型对于许多不同空间大小的输入同样有效。对于玻尔兹曼机,由于各种原因很难改变输入尺寸。配分函数随着输入大小的改变而改变。此外,许多卷积网络按与输入大小成比例地缩放池化区域来实现尺寸不变性,但缩放玻尔兹曼机池化区域是不优雅的。传统的卷积神经网络可以使用固定数量的池化单元,并且动态地增加它们池化区域的大小,以此获得可变大小输入的固定尺寸的表示。对于玻尔兹曼机,大型池化区域的计算成本比朴素方法高很多。Lee  et  al.(2009)的方法使得每个检测器单元在相同的池化区域中互斥,解决了计算问题,但仍然不允许大小可变的池化区域。例如,假设我们在学习边缘检测器时,检测器单元上具有2×2的概率最大池化,这强制约束在每个2×2的区域中只能出现这些边中的一条。如果我们随后在每个方向上将输入图像的大小增加50%,则期望边缘的数量会相应地增加。相反,如果我们在每个方向上将池化区域的大小增加50%到3×3,则互斥性约束现在指定这些边中的每一个在3×3区域中仅可以出现一次。当我们以这种方式增长模型的输入图像时,模型会生成密度较小的边。当然,这些问题只有在模型必须使用可变数量的池化,以便产出固定大小的输出向量时才会出现。只要模型的输出是可以与输入图像成比例缩放的特征图,使用概率最大池化的模型仍然可以接受可变大小的输入图像。

图像边界处的像素也带来一些困难,由于玻尔兹曼机中的连接是对称的事实而加剧。如果我们不隐式地补零输入,则将会导致比可见单元更少的隐藏单元,并且图像边界处的可见单元将不能被良好地建模,因为它们位于较少隐藏单元的接受场中。然而,如果我们隐式地补零输入,则边界处的隐藏单元将由较少的输入像素驱动,并且可能在需要时无法激活。