标记分布集成学习
2021-01-29沈小霞许哲源於东军贾修一
沈小霞,许哲源,於东军,贾修一
(南京理工大学 计算机科学与工程学院,江苏 南京 210094)
标记多义性问题是机器学习领域的热门研究方向。在现有的机器学习范式中,解决标记多义性问题的框架主要有两种,即单标签学习(Single-label learning,SLL)和多标签学习(Multi-label learning,MLL)[1]。SLL即为标准监督学习的特例,其假设每个样例只属于单个类,对应于现实世界中每个实例只有一个标签的情况。MLL是SLL框架的扩展。在MLL中,一个实例可以同时与多个类别标记相关联。实际上这两种传统标签学习都旨在回答一个基本问题,“哪个/些标签可以描述实例?”。相对于SLL而言,MLL允许答案由多个标签构成,从而可以在一定程度上处理标签的歧义问题。然而,SLL和MLL都不能应用到更详尽的问题,即它们没有办法进一步回答“每个标记描述实例的程度是多少?”。也就是说,传统的标签学习范式不能给出标签所占实例描述的相对比重。
在现实世界中,标签间相对比重所隐含的信息可能比许多人想象的更常见。一个典型例子是面部表情的情绪分析。面部表情经常传达多种基本情绪的复杂混合,每种基本情感在表达中起着不同的作用,所有基本情绪的相对强度自然形成面部表情的情绪分布。通过将具有最高强度的情绪或具有高于阈值的强度的情绪视为阳性标记,该问题可以选择SLL或MLL作为解决方案。然而这样做的代价是,将会失去相关情绪的不同强度的重要信息,这也就意味着,单靠SLL或MLL框架无法准确预测人物在现实图片所表现的复杂情感。因此,针对该问题,文献[3]提出了标记分布学习范式(Label distribution learning,LDL)。标记分布可以给出标签强度的分布,所以能够很好地回答“每个标签描述实例的程度是多少?”,进而可以得到更加准确的预测结果。也就是说,相对于传统标签学习而言,LDL范式可以提供更丰富的实例描述信息,分配给实例的标签的不同相对重要性,能更好地表示标记多义性问题。
LDL已广泛应用于许多现实世界的应用中。Geng等为解决通过图片预测人物年龄问题首次显式提出标记分布学习的概念[4,5],随后将LDL范式应用于预测图片中头部姿势[6],并将LDL的应用拓展到面部图片表情识别上,通过面部图片来预测人物表情的情绪分布[7,8],紧接着又发表了一项结合图片相关文本进行表情预测的研究[9]。另外,Geng等还将LDL应用在电影评级预测[10]、美感感知[11]等工作中。Xue等则应用LDL范式尝试对人格倾向进行预测[12]。除此之外还有Zhang等提出以LDL范式对视频监控中的人群计数[13],Sun等应用LDL范式对视频中出现的异常行为进行识别[14]。
尽管越来越多的LDL算法被提出并取得了良好的效果,但是关于LDL的集成学习研究则很少,仅有Geng等提出的LogitBoost算法[15]、Shen等提出的LDL forests算法[16]和Zhai等提出的集成神经网络(Ensemble neural networks,ENN)算法[17]。LogitBoost算法使用LDL模型族来学习样本以避免特定模型的潜在影响。LDL forests算法则是利用可微决策树进行算法集成。ENN算法则是使用具有不同标签集的训练集来训练具有偏好的神经网络。然而,上述的算法都是作为独立算法而设计的,目前没有用于提升LDL算法的通用集成框架。本文希望通过集成学习的方式,设计出一种适用于LDL算法的通用集成框架,能够有效地对目前各种独立算法进行提升。
1 理论基础
1.1 问题描述
本文中使用的主要符号如下所示。实例变量用x表示,标签变量用y表示,x的属性集用X={x1,x2,…,xn}表示,在特定的第j个标签上的描述度用dj表示,而x的描述度分布则用D={d1,d2,…,dn}来表示,其中n为标签的总数。LDL是一种通过为每个标签y指定描述度来标记实例x的方法,即输入属性集X,输出为描述度分布D。同时需满足归一化条件,即对任意给定实例而言,描述度之和为1。
1.2 Adaboost方法
Adaboost是一种实用的Boosting方法,它依赖于大量的分类器,使用一种基于权重的多数投票机制。分类器的权重是基于它的性能而分配的,可靠程度越高,权重就越大。它的核心思想是根据样本的概率分布来训练分类器,使得被前面分类器错误分类的样本在之后被选中的概率更大,从而使分类器组可以逐渐地聚焦于样本集中难以处理的方面。
Adaboost逐个创建分类器,每个分类器都由不同的训练子集产生,而训练子集的构成依赖于前一个分类器。Adaboost依据当前概率分布来选取训练子集的成员。设训练集的样本总数为m,则开始时每个样本被选取的概率是相同的,以概率矩阵P1生成了训练子集T1,并训练出第一个分类器C1。然后,样本被选中的概率会根据C1的结果进行修改。具体而言,被分类器C1正确分类的样本再被T2选中的概率降低,而被分类器C1错误分类的样本再被T2选中的概率会增加,分类器C2则依据修改后的概率矩阵P2生成训练子集T2,并按照这样的方式继续迭代下去直到指定迭代次数。
与传统Boosting算法另一个不同之处是最终结果的投票机制。Adaboost使用一种基于权重的多数投票机制,分类器的权重是基于它的性能而分配的,可靠程度越高,权重就越大。在实际应用中准确地赋予各分类器权重是非常重要的,可以使用感知机的学习方法来确定权重。刚开始时给每个分类器相等的权重,然后不断用不同样本去训练这个系统。每次系统错分一个样本,就可以根据系统预测值和真实值之间的关系来增加或减少某些分类器的权重。因此,Adaboost算法是一种实用的Boosting方法,它既考虑到分类器间的互补性,也相对于传统boosting方法减少了对于样本的选择代价,是结合LDL研究的优选方案。
2 Adaboost-LDL框架设计
Adaboost是一种实用的Boosting方法,然而Adaboost仅适用于传统分类问题,不能够直接应用到LDL问题上来。本文设计了一种适用于LDL问题的Adaboost集成框架,并将其命名为Adaboost-LDL,能够将Adaboost框架扩展到标记分布学习上来。
2.1 SortLoss指标的提出
为了能够在集成学习中有效地区分样本的预测质量好坏,本文从Learning To Rank问题和多标记问题上的PRO损失[18]获得启发,设计了一种LDL问题专用的量化排序损失评价指标,并将其命名为SortLoss。
给定描述度分布D={d1,d2,d3,d4},在LDL问题中描述度的和为1,即
(1)
假设比例关系为
d1∶d2∶d3∶d4=2∶3∶4∶1
(2)
那么便可以通过式(1)和式(2),解得D={0.2,0.3,0.4,0.1}。接下来对描述度序列进行由高到低的排序,便得到排序后的序列H={h1,h2,h3,h4},在上例中h1、h2、h3、h4分别对应着d3、d2、d1、d4,本文将该索引序列记为I={3,2,1,4}。
(3)
式中:
(4)
2.2 集成框架实现
本文所实现的Adaboost框架针对LDL问题做了一些调整,区别于传统分类问题中以分类是否正确来修改样本选择概率,它是根据预测结果的SortLoss来修改样本选择概率,并将每轮迭代中分类器在训练全集上的SortLoss作为最终确定分类器权重的指标,具体算法如表1所示。其中迭代次数boostTimes和迭代进化因子α被设置为自由参数,L为基础学习器。boostTimes即在集成中所使用的分类器数量,也是进行迭代的次数,每轮迭代将会训练出一个由基础学习算法产生的分类器,每个分类器对应于一个从特征域X映射到标记域D的权重矩阵W。α为每轮迭代结果对样本选择概率矩阵P与上一轮相比影响的比重,α越大,当前迭代对选择概率矩阵P的影响也就越大,同时前一轮迭代对P所残留的影响也就越小。概率矩阵P中的元素对应着训练集中每个样本在重采样中被选入子训练集概率的大小。概率矩阵P的更新公式为表1的第8行公式,即在每一轮子训练集的选取中,使得那些有较高排序损失的样本对应着较高的被重采样的概率。权重矩阵W则依赖于基准算法所用模型进行更新,以BFGS算法为例,在每一轮迭代i中采用最大熵模型学习权重矩阵Wi,并将其作为下一轮迭代的初始化矩阵。此外,本文对集成框架在LDL问题上做了一些优化,对于需要输入初始特征权重矩阵的一类算法,则将上轮迭代所产生的特征权重作为当前迭代中的初始特征权重矩阵输入,这样优化措施可以减少之后迭代中分类器的训练时间。
表1 Adaboost-LDL算法
3 实验
3.1 数据集
本实验采用了13个数据集,包括10个酵母菌基因数据集、2个面部表情数据集和1个自然景色数据集,如表2所示。
表2 实验所用13个真实数据集的基本信息
Yeast系列共10个数据集是从出芽酵母的生物实验中收集的真实数据集。每个数据集记录一次实验的结果,包括总共2 465个酵母基因,每个基因由长度为24的系统发育谱向量表示。对于每个数据集,每个标记对应于一个生物学实验期间的离散时间点。每个时间点的归一化后基因表达水平则提供了相应标记描述程度的自然测量。10个酵母基因数据集中的标记数量总结在表2中。所有标记(每个标记对应一个实验离散时间点)的描述度(对应归一化后的基因表达水平)构成特定酵母基因的标记分布。SJAFFE和SBU_3DFE是两个广泛使用的面部表情图像数据库的扩展,即JAFFE和BU_3DFE。JAFFE数据库包含由10个日本女模特构成的213个灰度表达图像。Geng等人通过局部二值模式(LBP)的方法从每个图像中提取243维特征向量。每个图像由6个人在6个基本情绪标记(即:快乐,悲伤,惊讶,恐惧,愤怒和厌恶)上进行评分,具有5级量表。每种情绪的平均得分用于表示情绪强度。本文中使用的数据集SJAFFE(Scored JAFFE)保留了所有得分,并将它们标准化为所有6个情感标记上的标记分布。类似地,对于包含2 500个面部表情图像的较大数据库BU_3DFE,每个图像由23个人以与JAFFE评分相同的方式评分,从而得到数据集SBU_3DFE(Scored BU_3DFE)的标记分布版本。Natural Scene收集自2 000张拥有不一致排序的自然景色图片。每张图片分别由10个人对9个可能的标签进行排序,即植物、沙漠、天空、山、云、水、雪、建筑物和太阳。对于每张图片,每个人类排序者挑选相关的标签,并对这些挑选出来的标签按相关度进行降序排序。因此,每个人的多标记排序的结果将会是高度不一致的。然后,利用一个非线性规划过程将多标记排序结果转换为标记分布。最后,每张图片被提取为一个294维的向量。
3.2 评价指标
表3 实验所用评价指标
3.3 实验设置
本文设计的Adaboost框架希望通过集成基础分类器做出加权预测,所以实现了LDL问题上7种不同算法的集成,即PT-BAYES[19]、CNPP[4]、SA-IIS[18]、BFGS-LDL[19]、LC-LDL[20]、LDL_LCLR[21]和LDL-LS[22]。PT-Bayes是问题转化算法的代表,将贝叶斯规则计算的后验概率作为预测的描述度。CNPP则是利用类似于Modha神经网络的网络结构,但是以受监督的方式接受培训。在训练神经网络时已知真实的标签分布,然后可以基于网络结构预测新的分布。SA-IIS和BFGS-LDL属于LDL专门算法,其思想在于最小化以KL散度为核心的目标函数,不同之处在于两种算法采取的优化方法不同。BFGS-LDL在SA-IIS的基础上采用了拟牛顿法BFGS来加速迭代收敛。LC-LDL利用标记间的相关性设计了目标函数,同样采用拟牛顿法进行优化。LDL_LCLR利用标签之间的全局和局部相关性为训练模型提供更多的信息。LDL-LS同时学习所有标签的共同特征和每个标签的特定特征,以增强LDL模型。本文在实验中对单独算法和集成算法采用论文默认参数。在13个真实世界数据集中,对单独算法和集成算法进行10次留出法验证,并记录每个评估量度的平均值和标准偏差。
3.4 Adaboost与基准算法对比实验
本文将7个LDL算法分别进行Adaboost集成,在13个数据集上对集成前后的算法进行实验对比。文中把基准算法名称的一部分作为后缀来区分不同基准算法的Adaboost框架。在实验中统一设定自由参数boostTimes=5,α=1.0。需要说明的是,由于下载的源码PT-BAYES和SA-IIS在两个表情数据集上无法正常工作,所以未给出其在SJAFFE和SBU_3DFE上的结果。表4给出了SortLoss指标上对比实验的完整实验数据,表5给出了KL散度指标上的完整实验数据。
本文给出以SortLoss指标评价的完整实验数据表格,SortLoss指标越小表明预测结果越好。由于数据集过多,本文将其分为3张表格,每张表格包含4个数据集的结果,其中单独算法与相应集成算法放置于上下两行以供对比。表4实验结果表明,Adaboost-LDL集成后的算法在SortLoss指标上平均下降至原先指标的41.2%,提升效果是非常显著的。
为了能够在距离指标上也能客观的反映Adaboost-LDL框架的性能,本文也同时给出了KL散度和Intersection指标上实验结果,如表5和表6所示,7个算法在KL散度的提升效果则有较大差异,平均下降到原先指标的68.5%。对于BFGS-LDL,CPNN和LC-LDL一类以距离为优化目标函数的算法而言,其距离指标未发生显著变化。对于PT-BAYES和SA-IIS算法这一类自身性能欠佳的算法,通过框架可以大幅提升。这也就意味着本文的集成框架不仅能够降低各类算法的排序损失,而且会对一些算法上的距离评价指标带来提升,这与本文所期望的结果相一致。
表5 KL↓(mean±std)指标在13个数据集上的实验结果
表6 Intersection↑(mean±std)指标在13个数据集上的实验结果
4 结论
Adaboost是一种有效减少样本偏差的集成学习方法,但过去的研究仅对传统分类问题有效,在标记分布问题上没有可以直接使用的方案。本文设计了一种在LDL问题上进行Adaboost的可行方案,并提出了一种用于衡量排序损失的评价指标SortLoss。与以往工作所设计的集成算法不同,Adaboost-LDL是一种强鲁棒性的集成方案,可以对目前存在的各种LDL单独算法进行提升。在算法的对比实验中,单独算法与集成后的算法进行了对比。实验结果表明,本文设计的Adaboost框架对于LDL中的基准算法是非常有效的,能够对所有实验中使用的单独算法在排序指标上进行大幅度提升。同时,PT-Bayes和SA-IIS算法在Adaboost-LDL集成后在KL散度指标上也有大幅提升。当结合距离指标和排序损失指标对LDL算法预测质量进行评价时,通过Adaboost-LDL集成后的算法在预测质量上有大幅提升。