深度学习和图模型
我经常被问起“深度学习与图模型如何比较?”。这个问题没有答案——因为深度学习和图模型是正交的概念,它们可以(并已经)被组合起来使用了。
让我说得更加清楚一些:这两个模式并不是对立的,它们可以有效地组合起来。
当然,DBM(Deep Boltzmann Machine)是概率因子图的一种形式。但是这些概念用其他的一些方式也可以组合在一起。
例如,你可以想象一个因子图,这些因子本身包含一个DNN(Deep Neural Net)。最能说明这种情况的,就是动态因子图(Dynamic Factor Graph),在这样的图中,在时刻的状态向量, 是由之前的状态和输入,通过一个 DNN (可能使用了一个时态卷积网络)得到的。比如说当 因子为 ,其中 是一个 DNN。
这个例子简要说明了,在给定 和 下 的条件概率分布是一个以均值为 的高斯分布,协方差为单位元。
这种类型的动态因子图可以用来建模高维度的时间序列。当序列 被观测到时,我们可以通过最小化 因子的和(也常常被称为能量函数)来推断最可能的隐藏状态 的序列。
一旦最优的 被找到,我们可以更新网络 的参数来让能量变得更小。
更加高级的处理方式是可以用来学习高斯分布的协方差,或者来对 的序列进行边缘化,而不仅仅使用后验最大推断(仅仅考虑有最低能量的序列)。
这种深度因子的因子图在 ECML 2009 上提出,这也是我和我的学生 Piotr Mirowski(现在 Bell 实验室)。“Factor Graphs for Time Series Modeling”
相似的模型出现在使用 auto-encoder 的非监督预学习进行语言建模的论文中 “Dynamic Auto-Encoders for Semantic Indexing”
另外将深度学习和图模型组合起来的方式是通用结构化预测(structured prediction)。尽管这听起来是一个新的想法,但是其历史要追溯到90年代早期。Leon Bottou 和 Xavier Driancourt 使用一个序列在时态卷积网络上进行语音识别。他们同时训练这个卷积网络和灵活的词模型,在词的层次上,通过在时间相关的模块(这个可以看做是一种因子图,其中时间相关的函数是一个隐含变量)上进行梯度的后向传播进行。
在90年代早期,Leon、Yoshua Bengio 和 Patrick Haffner 设计了一个混合的语音识别系统,其中在词(或者句子)的层次使用一个辨别式的规则同时训练得到一个时态卷及网络和一个隐马尔科夫模型。
在多年以后,Leon、Yoshua、Patrick 和 我使用了相似的想法来训练我们的手写识别系统。我们放弃了规范化的HMM,使用了没有进行规划化的基于能量的因子图。当训练是辨别式的时候,规范化操作是多余的(甚至有害的)。我们称这个为“Graph Transformer Network”。这个最初在 CVPR 1997 和 ICASSP 1997上发表。
一些关于这个的历史在“A Tutorial on Energy-Based Learning”上有较为详细的介绍。