稀疏贝叶斯学习(SparseBayesianLearning)张智林(Zhilin Zhang) z4zhang@ucsd.eduDepartmentofElectricalandComputerEngineering,UniversityofCalifornia,SanDiego,LaJolla,CA92093-0407,USA1引言稀疏贝叶斯学习(SparseBayesianLearning,SBL)最初作为一种机器学习算法由Tipping于2001年前后提出[Tipping2001],随后被引入到稀疏信号恢复/压缩感知领域[Wipf2004,Ji2008]。Wipf和Rao等人对SBL进行了深入的理论研究。与广泛使用的基于L1惩罚项的算法(比如Lasso,BasisPursuit)相比(以下简称L1算法),SBL具有一系列显著的优势:(1)在无噪情况下,除非满足一些严格的条件[Donoho2003],L1算法的全局最小点(globalminimum)并不是真正的最稀疏的解[Wipf2004]。因此,在一些应用中,当真实的解是最稀疏的解,采用SBL是更好的选择。(2)当感知矩阵(sensingmatrix)的列与列相关性很强时,L1算法的性能会变得非常差。事实上不光是L1算法,绝大多数已知的压缩感知算法(比如ApproximateMessagePassing算法,MatchingPursuit算法)在这种情况下性能都会变得很差。相比之下,SBL算法仍旧具有良好的性能[Wipf_NIPS2011]。因此,在雷达追踪,波达方向估计,脑源定位,特征提取,功率谱估计等一些列领域,SBL都具备显著的优势。(3)业已证明,SBL算法等价于一种迭代加权L1最小化算法(iterativereweightedL1minimization),而L1算法仅仅只是其第一步[Wipf2010]。Candes等人指出,迭代加权L1最小化算法更易获得真正的最稀疏解[Candes2008]。从这个角度也就不难理解SBL的优越性。(4)在很多实际问题中,所期望的稀疏解常常有一些结构,而利用这些结构可以获得更好的性能[ModelCS]。作为一种贝叶斯算法,SBL算法对利用这些解的结构信息提供了更多的灵活性。这种灵活性最主要来自于SBL采用参数化的高斯分布为解的先验分布。最近Zhang和Rao提出了块稀疏贝叶斯学习框架(BlockSparseBayesianLearning,BSBL)[Zhang_IEEE2011,Zhang_TSP2012]。该框架提供了一种利用解的空间结构(spatialstructure)和时序结构(temporalstructure)的解决方案。由其框架得到的算法在多任务学习(multi-tasklearning)[Wan2012],生理信号的无线传输和远程监控[Zhang_TBME2012a,Zhang_TBME2012b],脑源定位和脑-机接口[Zhang_PIEEE2012]等许多领域获得了极大的成功。下面将首先介绍基本的SBL框架,然后对BSBL框架及其算法进行详细介绍,并在最后给出一些代表性的实验结果。2稀疏贝叶斯学习压缩感知的基本模型可描述为:vAxy+=(1)其中为N×M的感知矩阵,为N×1维压缩信号,为M维待求的解向量,为未知的噪声向量。为求解,SBL假设中的每个元素都服从一个参数化的均值为0方差为Ayxvxxiγ的高斯分布[Wipf2004]:MiNxpiii,,1),,0();(==γγ(2)1其中表示中的第i个元素,ixxiγ是未知的参数,将会由算法自动估计出来。这样一种先验分布常被称为automaticrelevance先验分布,最初出现于人工神经网络领域[ARD1996]。在算法运行中,绝大部分的iγ将会变成0(无噪情况下)或者趋于0(有噪情况下)。SBL通常会采用一个阈值将趋近于0的iγ置为0(该阈值的大小通常和信噪比有关)。当0=iγ时,相应的则为0。因此,ixiγ与解的稀疏程度密切相关,也从而决定了iγ的学习规则是SBL算法中最核心的部分。在SBL框架中,噪声通常假设为高斯白噪声向量,即v),,0();(IvλλNp=其中λ为噪声方差。根据以上的假设,利用贝叶斯规则很容易获得后验分布,其也为一高斯分布。当所有的未知参数(即{}λγ,1Mii=)都被估计出来后,x的最大后验估计(MaximumAPosterior)由这个高斯分布的均值给出。而这些未知参数可以由第二类最大似然估计(TypeIIMaximumLikelihood)获得[Tipping2001,MacKay1992]。在以上的SBL框架中,我们把iγ作为一未知的确定性参数,而没有把它视为一随机变量从而进一步假设它的先验分布。事实上,这等同于假设iγ的先验分布是一个non-informativeprior。Wipf和Rao已从理论上证明,这种SBL框架可以获得真正的解(即最稀疏的解)[Wipf2004],而若对iγ赋予一个非non-informativeprior,有可能导致算法的不稳定或者解的不正确[Wipf_PhDThesis]。另外也需注意到,Tipping提出的SBL算法[Tipping2001]是假定的precision(即方差的倒数)具有一参数化的Gammaprior,而这些参数最终被固定为某些特殊的值使得具有一improperprior,即ixixiixxp1)(∝。这种prior类似于Laplaceprior,起着促进稀疏解的作用。通过比较Wipf和Rao的SBL算法和Tipping的算法,我们不难发现,前者的SBL算法恰好是后者的SBL算法取该improperprior的形式。从这个角度也不难理解为什么前者的SBL算法可以获得稀疏解。除了Tipping,Wipf等人的SBL算法外,还有其它一些SBL算法赋予的precision其它的分布,或者假设的先验分布为一Laplaceprior[BCSlaplace]。这些算法多数情况下无法证明其全局解是真正稀疏解(即最稀疏解),或者本身稳定性存在问题,不能保证良好的收敛性能。值得注意的是,赋予不同的先验分布并不能导致相应的SBL算法在实际应用中具有明显的优势。这是因为大多数实际问题都和理想的感知压缩模型相去甚远,比如感知矩阵(sensingmatrix)的列与列之间具有强相关性,噪声很强,并不是非常稀疏等等。在这些情况下,不少参数的估计将会有较大的误差,从而导致最终的解具有较大的误差。最明显的是,绝大多数SBL算法对噪声方差ixixixxλ的估计都不有效,尤其是当感知矩阵的列与列之间具有强相关性且噪声很大的时候。而对该方差估计的准确性对x的估计的准确性影响非常大。Zhang和Rao最近给出了噪声方差的另外一个学习规则[Zhang_IEEE2011]。试验表明该学习规则可以获得更加鲁棒的效果。事实上要想在实际中获得更好的结果,充分利用解的自身结构信息是更加有效的策略。接下来我们将介绍利用解的空间结构信息和时序结构信息的SBL算法。特别的,我们将介绍如何利用解的各个元素2之间的相关性来提升算法的性能。3利用解的结构信息的稀疏贝叶斯学习3.1解的空间信息和块稀疏贝叶斯学习解的空间信息是指在模型(1)中解向量具有某些结构。最常见的结构是块结构(blockstructure),或称为组群结构(groupstructure)[groupLasso,ModelCS,Eldar2010BSS],即x(3)TdddTgggTxxxx],,,,,,[11111 xxx+−=基于这个块划分的基本压缩感知模型(即公式(1)(3))称为块稀疏模型(BlockSparseModel)。在这个模型中,解向量x可以划分为g个块结构(每个块结构包含的元素有多有少),而x的非零的元素则聚集在少数几个块内。基于这个模型,目前已经有了不少算法,比如GroupLasso[groupLasso],Block-OMP[Eldar2010BSS],Block-CoSaMP[ModelCS]等等。遗憾的是,很少有算法考虑每个块内的元素之间的相关性(幅值的相关性)。为方便,以下我们称该相关性为块内相关性(Intra-BlockCorrelation)。块内相关性之所以还没有引起重视,是因为在大多数情况下目前已有的算法并没有显示出其性能受到该相关性的影响。块内相关性对算法性能的影响直到最近才被Zhang和Rao通过提出块稀疏贝叶斯学习(BlockSparseBayesianLearning,BSBL)而发现[Zhang_TSP2012],并被成功的运用到非稀疏生理信号的无线传输[Zhang_TBME2012a,Zhang_TBME2012b]。在BSBL中,每一个块被假设为满足一多元高斯分布:ix),()(iiiNpB0xγ=(3)其中为一未知的正定矩阵,用于对该块内的元素之间的相关结构进行建模,而iBiγ为一未知的参数,用于决定该块是否为。类似于基本的SBL框架,当00=iγ,相应的块0x=i。这样的prior可以认为是一种结构化的AutomaticRelevancePrior。由于automaticrelevancedetermination(ARD)机制,在算法学习过程中大多数iγ最终为0或者趋近于0,从而促成了解的块稀疏性(BlockSparsity)。同样,假设噪声服从),();(I0vλλNp=。这样我们可以利用贝叶斯规则得到x的后验分布。利用第二类最大似然估计可以估计出各种参数,从而最终得到x的最大后验估计值。Zhang和Rao证明[Zhang_IEEE2011],在无噪情况下BSBL的全局解即是真正的最稀疏解;而无论的值是多少都不影响这一结论。事实上,的值仅仅只影响算法的局部解的性质,即算法收敛到局部解的概率。这一结论带来了极大的好处,那就是我们可以灵活采用一些策略来规范化(regularize)的估计从而克服overfitting,而无须担忧是否会影响到算法的全局解的性质。在[Zhang_IEEE2011,Zhang_TSP2012,Zhang_ICASSP2012]中多种规范化策略被提出来。比如当每个块包含有同样数目的元素时,我们可以平均所有的得到一矩阵B,把它作为每个的最终估计值[Zhang_TSP2012]。我们还可以进一步对B做规范化,使iBiBiBiBiBIBBη+←,其中η为一正的常数[Zhang_IEEE2011]。试验表明,3存在若干中规范化策略,均可获得类似的性能。从算法层次上来说,BSBL揭示了在标准的压缩感知试验条件下一个有意思的现象[Zhang_TSP2012,RaoZhangJin2012]:当算法忽略块内相关性时(即所有的矩阵都被强制为单位矩阵),无论块内相关性是大是小,算法的性能并不发生显著的变化;当算法利用块内相关性时(即运行矩阵的学习规则),算法的性能随块内相关性的增大而提高。考虑到目前绝大多数算法都没有利用块间相关性,我们不难得到一个启示:通过改进已有的算法(比如GroupLasso)使其可以利用块间相关性,我们可以进一步提升该算法的性能。iBiB事实上,在[Zhang_TSP2012]中,Zhang和Rao揭示了BSBL与GroupLasso等许多算法的联系。Zhang和Rao证明,BSBL的代价函数(costfunction)等价于下面一迭代加权算法:∑=−++−=giiiTikikw11)(22)1(minargxBxAxyxxλ(4)其中k为迭代次数,为一加权因子,其值取决于上一次迭代的结果。显然,当所有的为单位矩阵,且所有的加权均相同且恒为一常数时,该算法即为GroupLasso的最常见形式。这一联系提供了如何改进已有的基于iwiBiw∑=giqpi1x惩罚项的算法。感兴趣的读者可以参考[Zhang_ICML2011]了解如何改进类似GroupLasso的算法(即1,2==qp),或者参考[Zhang_ICASSP2011]了解如何改进迭代加