1. 引言
在大数据背景下,机器学习蓬勃发展,但绝大部分的机器学习模型都是“黑箱”模型,无法对其过程和结果进行显式的解释。Judea Pearl在人工智能领域倡导概率方法并提出了贝叶斯网络 [1] ,这些开创性工作使得贝叶斯(机器)学习在机器学习领域发挥了重要的不可替代的作用。目前贝叶斯方法在监督学习、迁移学习、强化学习、因子分析等领域取得了众多优秀的成果,应用广泛的模型有:LDA (Latent Dirichlet Allocation) [2] 、高斯混合模型 [3] 、隐马尔可夫模型 [4] 等。
贝叶斯学习有坚实的概率理论基础和清晰的概率结构,既容纳了不确定性又可以显式地表示,具有内在的可解释性。除此以外,贝叶斯学习将先验信息与观测数据中学习到的信息并行编码,不断更新迭代,实现自适应,且一定程度上可以克服在有限数据量下出现的过拟合问题。在贝叶斯学习中,参数模型被广泛应用并在许多情况下展现出了良好的效果,但参数模型的局限性也是显而易见的,其本身存在的许多限制使得它失去了一定的灵活性,例如参数个数有限、参数先验维度有限等,这些通常依赖于人的经验来设定,但当设置不恰当时就会导致模型出错,从而需要花费更多时间来进行调参,因此参数方法耗时且很难扩展应用到大规模或不熟悉的数据上。而贝叶斯框架下的非参数模型将参数建模包含的不确定性进一步扩大,极大地增加了模型的灵活性,减少了掺杂在模型中的主观性,并且使得模型可以应用于更加广泛的数据,增加了模型的稳健性,这就是统计学中相对来说比较“年轻”的贝叶斯非参数(Bayesian Nonparametric, BNP)。
BNP的发展历史可以追溯到二十世纪七十年代,统计学家Thomas S. Ferguson在1973 [5] 、1974 [6] 年撰写了两篇开创性论文,从此开始了BNP的统计研究之路。严格来说,“非参数”一词在这里是存在语义错误的,此处的“非参数”并不是没有参数,而是指无穷维参数。非参数建模的目标包括对未知概率测度的泛函进行推断,概率测度本身就是参数,因此这里的参数空间其实是函数空间,是无穷维的。而贝叶斯框架下,非参数则是将参数的先验空间推广到无限维分布空间,本质上可以看作是一个随机过程,其中应用十分广泛的有Dirichlet过程 [7] 、高斯过程 [8] 、泊松过程 [9] 、贝塔过程 [10] [11] 等。随机过程使得先验不受参数假设的限制,从而可以更加准确地对真实数据建立模型。又因为在贝叶斯框架下,更新的观测值与先验不断迭代,从而实现让数据说话,自适应地进行模型选择,因此贝叶斯非参数方法建模更加灵活、稳健。但极大的灵活性带来的是难以解决的计算问题,其后验分布通常极其复杂,无法直接得到后验结果,这也导致BNP在很长一段时间内只能停留在理论研究层面,直到二十世纪九十年代计算机技术和相关算法的突破性发展,才使得BNP的后验推断有了大幅的发展。目前最常用到的后验近似推断方法分为两类,一种是基于采样的随机近似推断,如马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC) [12] [13] ,其中应用广泛的方法有M-H采样(Metropolis-Hastingsampling)和吉布斯采样(Gibbs Sampling) [14] ,在面对十分复杂的后验推断时常常将两种采样方法结合交替进行。另一种为确定性近似推断,如变分推断(Variational Inference, VI) [15] 。MCMC和VI一定程度上都可以很好地解决BNP的后验推断问题,MCMC准确性高但收敛速度慢,VI计算速度快但准确性差一些,根据实际问题选择合适的后验推断方法就可以得到理想的结果。
BNP在统计学领域发展迅速,但直到2005年,BNP才进入计算机领域,Yee W. Teh等人 [16] 将BNP应用到了机器学习中,并取得了巨大的成功,自此经过不断发展便产生了贝叶斯非参数(机器)学习(Bayesian Nonparametric Learning, BNL),并成为了统计学与计算机科学的跨学科课题。随着多核CPU、GPU和分布式计算平台等硬件的计算能力的不断增强,通过高效的后验推断算法,可以将BNL应用到大数据背景下的众多现实问题中。
BNP中包含的随机过程数量众多,无法一一叙述,本篇论文基于Dirichlet过程相关知识对BNP的基础理论展开描述,并对BNP在机器学习和实际问题的应用进行探究,最后对BNP的研究与发展进行总结与展望。
2. 基于Dirichlet过程的BNP的基础理论
2.1. BNP的定义
在统计学中,贝叶斯非参数区别于频率参数、贝叶斯参数和频率非参数,是一个较新且发展迅速的领域。关于BNP的定义有很多种描述方法,Peter Müller等人 [17] 在书中指出,在非参数模型中进行贝叶斯推断,需要建立具有无限维参数的先验的概率模型,这种先验被称为BNP先验,整个推断模型称为BNP模型。
BNP将参数的先验空间推广到无限维,进一步扩大了参数的选择范围,极大地降低了模型构建中的人为主观性。具体表现为在聚类任务中,无需提前设置分组数量;在贝叶斯推断中,无需人为规定先验的具体参数等。此外,BNP在贝叶斯框架下的自适应特性可以包容更多的不确定性,随着观测数据的增加,模型复杂度也相应增加,在面对复杂的实际问题时模型也更加稳健。近年来许多研究人员对BNP的理论方法进行了深入广泛的研究和综述,例如:Xuan, J.等人 [18] 、Gershman, S. J. and Blei, D. M. [19] 、Hjort, N. L.等人 [20] 、Müller, P. and Mitra, R. [21] 等。
在机器学习领域,Orbanz, P. and Teh, Y. W. [22] 在机器学习百科全书中给出了一个更适合机器学习领域研究人员的更简单的定义:BNP是无限维参数空间上的贝叶斯模型,参数空间通常被选为给定学习问题的所有可能解的集合。这个定义更关注BNP的无限维特性和学习能力,在无限维参数空间上建立模型意味着参数的先验由概率分布变为随机过程,因此BNP对机器学习的主要贡献是为高维空间划分和更复杂的数据结构引入随机过程。从计算机科学的角度来看,BNP的优势在于其灵活的数据结构和应用。
Xuan, J.等人根据BNP的优势对BNL作出了定义:BNL是基于随机过程及其应用,建立和推断特定学习任务的概率模型。他们指出为特定的学习任务构建贝叶斯非参数模型就像使用乐高积木搭建机器人,其中随机过程是不同形状的积木,对随机过程的应用就像将积木组装成复杂的机器人。这个定义生动地展示了BNL的核心和建立模型的标准程序。
BNP中的随机过程种类繁多,但其基础原理与构造应用都有相似之处,下面将以Dirichlet过程为例简单介绍其基础理论与相关扩展。
2.2. Dirichlet过程及其构造方法
2.2.1. Dirichlet过程定义
Dirichlet过程(Dirichlet Process, DP)是BNP中最早提出也是应用最广泛最受欢迎的一个模型,它由Ferguson在1973年提出 [5] ,作为概率测度空间的先验模型,标志着BNP研究的开始。关于DP的定义不同的学者做出了许多不同的表示形式,在这里我们引用Müller, P.等人 [17] 在《贝叶斯非参数数据分析》一书中的表示方法。
假设实数
,
是定义在S上的一个概率测度,G是定义在S上的随机概率测度,且对每一个集合B都有概率
。若对S的每一个有限划分
,向量
的联合分布服从参数为
的Dirichlet分布,即:
,
则称G服从一个参数为
的Dirichlet过程,记作
或
。其中M被称作精度参数或集中参数,
是中心测度,称
为DP的基测度。
对任意的B及其补集
,有
,
,且
。以上结果也展示了精度参数M对DP的影响,当M越大时,G越接近
,当
时,
。
DP是共轭的,也就是说DP的后验依然是DP,且后验DP的精度参数为
,中心测度是
和经验分布
的加权平均,其中
是x处的Dirac测度。
若
,则有,
关于BNP模型的构造,基于不同的原理有多种不同的构造方法,例如:基于随机过程、Kolmogorov扩展理论、De Finetti理论等。下面两节将介绍两种常用的Dirichlet过程的构造方法。
2.2.2. Stick-Breaking构造方法
关于Stick-Breaking方法的理论研究有很长的历史,例如:Halmos, P. R. [23] , Freedman, D. A. [24] , Kingman, J. F. [25] , Ishwaran, H. and James, L. F. [26] 等。Sethuraman, J. [27] 在1994年描述了DP的一种简洁的构造方式,即stick-breaking先验。
假设
,
,
,其中,
表示Beta分布,
和
是独立的。那么随机概率测度
的stick-breaking表示为,
形象化地描述Stick-Breaking构造DP过程为:假设有一根单位长度为1的棍子,首先随机产生一个
,在棍子的
比例处截断,截下的部分为
,剩余部分为
。再随机产生一个
,在剩余部分的
比例处截断,即截下的部分为
,剩余部分为
,同样的规律依次进行下去就得到了DP的stick-breaking构造,这种构造方法也直观地显示出了DP的离散的性质。
2.2.3. 中国餐馆过程构造方法
中国餐馆过程(Chinese Restaurant Process, CRP)是DP的另一种常见的构造方法,它直观地展示了DP的聚类的特性。关于CRP详细的理论介绍可以参考Ishwaran, H. and James, L. F. [28] , Teh, Y.等人 [16] , Pitman, J. [29] 的论文。下面将形象化地描述中国餐馆过程。
假设有一家中国餐馆,里面有无数张桌子,每张桌子可以容纳无数个人,每一个顾客按顺序进店,第一个顾客随机选择一张桌子坐下,后面的顾客可以选择已经有人的桌子入座,也可以选择一张新的桌子入座。假设前n个顾客已经选座完毕,记作
,所有被选择的不同的桌子记作
,
其中每张桌子上已有的人数记作
,那么第n + 1个顾客将会以
的概率坐在第k张已经有人的桌子上,以
的概率坐在一张新桌子上,且
。于是可以得到第n + 1个顾客选择桌子的预测分布:
(1)
通过以上过程可以直观地看到,每一张桌子就是一类,这种数据的划分符合DP的定义。且根据(1)式可以看出当人数不断增多,
不断增大,新的顾客选择已有人的桌子的概率会越高,也就是“多的会更多”,因此能够实现快速聚类。
3. BNP的后验推断
掌握了BNP的基础理论,就可以根据具体的任务和数据构造恰当的BNP模型,下一步则需要进行后验推断,重点在于获得模型的后验分布,但BNP的后验分布通常极其复杂无法直接计算,因此统计学中解决这个问题主要有两种方法:基于抽样的方法,如马尔科夫链蒙特卡罗方法(MCMC)和基于优化的方法,如变分推断(VI)。而在大数据时代,多数领域的数据量呈指数级增长,一个自然地想法是将以上推断算法扩展为多处理器的并行版本。目前并行MCMC [30] 、并行变分推断 [31] [32] 等算法都在研究发展过程中。
3.1. MCMC
MCMC是贝叶斯模型后验推断的最直接的方法,也被广泛地应用于贝叶斯非参数模型,其中最常见的方法是M-H采样和Gibbs采样,以及复杂情况下两种采样方法的结合。MCMC的基本思想是根据采样样本的分布情况来近似后验分布,这个过程需要构造马尔科夫链,它的平稳分布即期望中的后验分布。理论上只要采样的样本个数足够多就可以得到后验分布的精确推断,但马尔科夫链达到平稳分布的时间不可控,有时需要耗费极其长的时间,且要进行复杂的平稳检验,因此尤其在面对大数据的情况下,MCMC若想得到足够多的样本耗时太长,存在效率问题。
面对BNP无限维度的性质,其后验推断面临的问题更加严峻,通常采用的解决方法是截断法 [33] [34] ,可以很好地解决无限维推断问题,但这种方法必然会引入一定的误差。另一种常用的方法是切片采样 [35] [36] ,Kalli, M.等人 [37] 描述了Dirichlet过程在机器学习中的切片采样过程,Broderick, T.等人 [38] 在机器学习中应用了Beta过程的切片采样方法。
3.2. 变分推断
变分推断是解决贝叶斯后验推断的另一种思路,它使用更简单的参数化的变分分布来近似真实的后验分布,将后验推断问题转化为高维优化问题。借助梯度,该方法可以有效地搜索变分分布的参数空间,以尽可能逼近真实的后验分布。变分推断需要预先设置变分分布并选择优化方法。在大数据等复杂场景下,设置恰当的变分分布可以显著降低附加的逼近误差,选择适当的优化方法可以提高推断效率。
目前在基于大数据的BNL中常用的变分推断算法及其变体有:普通变分推断(Ordinary Variational Inference) [39] ,通常基于stick-breaking表示,用截断法来处理无限维的情况;Collapsed变分推断(Collapsed Variational Inference) [40] ,基于stick-breaking表示,将权重边际化以提高推断的准确性和有效性;随机变分推断(Stochastic Variational Inference) [41] ,在每一次更新变分参数前,从总体的大数据集中采样一部分数据出来,以提高推断效率;不截断的变分推断(Truncation-Free Variational Inference),截断法在处理无限维推断问题中有效但无可避免的会引入误差,因此研究无需截断的推断方法是很多研究人员的研究方向,例如变分DP [42] 等;流变分推断(Streaming Variational Inference) [43] ,用来处理以数据流形式顺序到达的数据。
在大数据环境下,变分推断的运行效率要比MCMC高,但其中引入的变分分布会造成额外的不必要的逼近误差,因此变分推断在近似精度上会低于MCMC。
4. BNP在机器学习中的应用
BNP在机器学习中的应用被称为BNL (Bayesian Nonparametric Learning),它可以有效解决许多机器学习中的任务,并且目前已经有了很多与经典模型相对应的BNP的扩展模型。下面简单介绍BNL在机器学习中的应用。
· 监督学习:监督学习是机器学习中的一项基本任务,它对数据和协变量之间的关系进行建模以做出预测。以分类为例,响应变量和协变量之间的关系用广义线性模型建模,将DP [44] 作为类别权重的先验。
· 强化学习:强化学习在游戏开发与机器人研究等方面有不可或缺的作用,其行动基于环境的反馈,与环境不断交互、试错的过程使其达到特定的目的。然而有时环境的状态无法被观测到或者只能观测到一部分,提供的信息是不完整的,而BNP可以很好地解决此类问题,例如HDP-HMM (Hierarchical Dirichlet Process-Hidden Markov Model) [45] 可以将隐藏状态转换为来自HDP的stick权重。
· 迁移学习:迁移学习是把已知领域学习到的知识和构建的模型应用到一个新的领域的机器学习方法,用来解决某些领域数据量不足或者减少学习量的问题。在共享因子迁移中,贝叶斯非参数联合因子分析 [46] 通过分层Beta过程先验实现因子共享。共享主题迁移中,分层DP [47] 作为可转移的主题的先验使得它们更加灵活。共享树迁移中,thLDA (The Transfer Hierarchical LDA)将现有树中的知识转移到目标域中,通过nCRP [48] 对目标域中的每个文档进行从根到底节点的树的路径采样。
· 因子分析:因子分析是机器学习中广泛应用的降维方法,但通常对于因子的维度是需要预先设定的,例如主成分分析中,选择的主要成分的个数是要人为给定的,但是当先验知识不足或没有先验知识时就很难做出恰当的指定,BNL就可以很好地解决这个问题,其中IBP (Indian Buffe Process)十分受欢迎,例如与主成分分析(PCA)的结合——BNP-PCA [49] 有很好的应用效果。
· 因果推断:因果推断研究的是科学地识别变量间的因果关系,其核心是在某一结果发生的条件下对另一个事件的影响,BNP中的GP (Gaussian Process) [50] 常用来逼近其条件分布,可以取得很好的效果。
5. BNP在实际问题中的应用
自BNP与计算机领域相结合以来发展十分迅速,尤其是在过去的十几年间,是众多研究人员的研究焦点,因此在众多热门的实际问题中,BNP都得到了很大的应用空间并取得了令人欣慰的成绩。下面将简单介绍个别BNP模型在某一实际领域的应用情况。
· 机器人:在机器人的研究中,BNP可以应用在训练机器人完成特定任务中,例如在机器人导航中,需要机器人根据传感器数据找到通往目标的路线,Jiang, Y.和Saxena, A. [51] , Plagemann, C.等人 [52] 用GP来建模实现回归任务。
· 生物学:Dirichlet过程及其扩展可以应用在生物信息处理中,例如Xing, E.P. 等人 [53] [54] 用分层Dirichlet过程对DNA排序技术中的单倍体型分期建模,使得长片段测序能力有效提高;在分子生物学中的基因分析中起重要作用的EST分析(Expressed Sequence Taganalysis)中,BNP中的PYP [55] 模型(Pitman-Yor proces)可以有效估计其文库中的基因比例和新基因的数量。
· 计算机视觉:BNP在计算机视觉领域的应用十分广泛,在图像分割、标注、降噪、插值、运动捕捉等方面都有十分成功的应用。例如Haines, T. S.和Xiang, T. [56] 提出用Dirichlet过程混合模型来进行背景去除;Sudderth, E. B.等人 [57] 在图像分割与标注中引入了PYP模型等。
· 自然语言处理:自然语言处理中的语音识别在近二十年来发展极其迅速,已经在生活中随处可见,其中BNP模型也起到了不可忽视的作用,例如HDP-HMM模型 [58] 在Speaker Diarization中的应用可以迅速识别出讲话者,即使在十分复杂的环境中,识别准确率也很高。在分词的应用中,CRP [59] 的基本原理可以得到充分发挥。
除以上提到的几个领域以外,BNP在文本挖掘、音乐分析、信号处理等方面也有广泛的应用,并在向其他各个领域持续发展中。
6. 总结与展望
BNP作为统计学中相对来说比较新的领域发展十分迅速,尤其是大数据时代的到来和人工智能的不断发展,BNP因其极大的灵活性和稳健性在机器学习领域得到了广泛的研究与应用。本篇论文以Dirichlet过程为例,描述了BNP的基础理论知识,列举了当下关于BNP的后验推断的重要的研究成果,并对BNP在机器学习领域和实际问题中的广泛应用做了简单介绍。
虽然BNP的发展在这个阶段已经取得了不错的成就,但它依然还处在发展阶段并存在一些亟待解决的问题,例如理论与实际应用之间的不匹配问题,目前关于BNP的后验推断大多还是采用截断的方式,根本上还是没有达到无限维的要求,因此未来关于无需截断的后验推断方法是一个研究的重点方向。除此以外,BNP与深度学习的结合、BNP在高维数据中的应用、根据复杂的实际情况创造更多新的BNP模型等都是未来需要深入探索的方向。由此看来,BNP在未来依然存在着无限的发展前景。