• Tritraining, 协同训练算法


    本个帖子继半监督学习算法(http://www.cnblogs.com/liqizhou/archive/2012/05/11/2496155.html

            最初的协同训练算法(或称为标准协同训练算法)是A. Blum和T. Mitchell [BlumM98] 在 1998年提出的。他们假设数据集有两个充分冗余(sufficient and redundant)的视图(view),即两个满足下述条件的属性集:第一,每个属性集都足以描述该问题,也就是说,如果训练例足够,在每个属性集上都足以学得一个强学习器;第二,在给定标记时,每个属性集都条件独立于另一个属性集。A. Blum和T. Mitchell认为,充分冗余视图这一要求在不少任务中是可满足的。例如,在一些网页分类问题上,既可以根据网页本身包含的信息来对网页进行正确分类,也可以利用链接到该网页的超链接所包含的信息来进行正确分类,这样的网页数据就有两个充分冗余视图,刻画网页本身包含的信息的属性集构成第一个视图,而刻画超链接所包含的信息的属性集构成第二个视图。A. Blum和T.Mitchell的算法在两个视图上利用有标记示例分别训练出一个分类器,然后,在协同训练过程中,每个分类器从未标记示例中挑选出若干标记置信度(即对示例赋予正确标记的置信度)较高的示例进行标记,并把标记后的示例加入另一个分类器的有标记训练集中,以便对方利用这些新标记的示例进行更新。协同训练过程不断迭代进行,直到达到某个停止条件。该算法如图 1 所示,其中x1和x2分别指示例x在第 1 视图和第 2 视图上对应的示例。A. Blum和T. Mitchell [BlumM98] 对图 1 的算法进行了分析,证明了在充分冗余视图这一条件成立时,图 1 算法可以有效地通过利用未标记示例提升学习器的性能,实验也验证了该算法具有较好的性能。

            然而,在真实问题中充分冗余视图这一要求往往很难得到满足。实际上,即使对 A. Blum 和 T.Mitchell 所举的网页分类的例子来说也是这样,因为“网页本身的信息”这一视图与“超链接上的信息”这一视图很难满足条件独立性。K. Nigam 和 R. Ghani [NigamG] 对协同训练算法在不具有充分冗余视图的问题上的性能进行了实验研究,其结果表明,在属性集充分大时,可以随机把属性集划分成两个视图,在此基础上进行协同训练也可能取得较好的效果。遗憾的是,大多数的问题并不具有“充分大”的属性集,而且随机划分视图这一策略并非总能奏效,因此,一些研究者开始试图设计不需要充分冗余视图的协同训练算法。

           S. Goldman 和 Y. Zhou [GoldmanZ00] 提出了一种不需要充分冗余视图的协同训练算法。他们使用不同的决策树算法,从同一个属性集上训练出两个不同的分类器,每个分类器都可以把示例空间划分为若干个等价类。在协同训练过程中,每个分类器通过统计技术来估计标记置信度,并且把标记置信度最高的示例进行标记后提交给另一个分类器作为有标记训练例,以便对方进行更新。该过程反复进行,直到达到某个停止条件。在预测阶段,该算法先估计两个分类器对未见示例的标记置信度,然后选择置信度高的分类器进行预测。S. Goldman 和 Y. Zhou 将该算法建立在 A. Angluin 和P. Laird [AngluinL88] 的噪音学习理论的基础上,并通过实验对算法性能进行了验证。此后,他们[ZhouG04] 又对该算法进行了扩展,使其能够使用多个不同种类的分类器。

        虽然 S. Goldman 和 Y. Zhou 的算法 [GoldmanZ00] 不再要求问题本身具有充分冗余视图,但他们引入了对分类器种类的限制。此外,他们为了估计标记置信度,在挑选未标记示例进行标记的过程中以及选择分类器对未见示例进行预测的过程中频繁地使用 10 倍交叉验证,时间开销很大。同时,在少量有标记数据上进行 10 倍交叉验证经常难以得到对置信度的稳定估计。为了进一步放松协同训练的约束条件,Z.-H. Zhou 和 M. Li [ZhouL05a] 提出了一种既不要求充分冗余视图、也不要求使用不同类型分类器的 tri-training 算法。该算法的一个显著特点是使用了三个分类器,不仅可以简便地处理标记置信度估计问题以及对未见示例的预测问题,还可以利用集成学习(ensemble learning) [Dietterich00] 来提高泛化能力。该算法首先对有标记示例集进行可重复取样(bootstrap sampling)以获得三个有标记训练集,然后从每个训练集产生一个分类器。在协同训练过程中,各分类器所获得的新标记示例都由其余两个分类器协作提供,具体来说,如果两个分类器对同一个未标记示例的预测相同,则该示例就被认为具有较高的标记置信度,并在标记后被加入第三个分类器的有标记训练集。在对未见示例进行预测时,tri-training 算法不再象以往算法那样挑选一个分类器来使用,而是使用集成学习中经常用到的投票法来将三个分类器组成一个集成来实现对未见示例的预测。与以往协同训练算法需要显式地对标记置信度进行估计不同,tri-training 算法通过判断三个分类器的预测一致性来隐式地对不同未标记示例的标记置信度进行比较,这一做法使得该算法不需要频繁地使用耗时的统计测试技术。但与显式估计标记置信度相比,这一隐式处理往往不够准确,特别是如果初始分类器比较弱,未标记示例可能被错误标记,从而给第三个分类器的训练引入噪音。Z.-H.Zhou 和 M. Li [ZhouL05a] 基于噪音学习理论 [AngluinL88] 推导出了能以较高概率确保这一做法有
    效的条件,直观地说,如果大多数未标记示例的标记是准确的,那么引入的噪音所带来的负面影响可以被使用大量未标记示例所带来的好处抵消。为了进一步降低噪音影响,有必要使用一些更可靠的误差估计技术,但这会在一定程度上增大算法的开销。此后,M. Li 和 Z.-H. Zhou [LiZ07] 对tri-training 进行了扩展,提出了可以更好发挥集成学习作用的 Co-Forest 算法。

  • 相关阅读:
    Python基础:文件的基本操作
    Python基础:函数的介绍及应用
    Python基础:列表,元组和字典的基本操作
    Python基础:字符串的常见操作
    Python基础:Python数据类型及逻辑判断语句
    Apache Hive (七)Hive的DDL操作
    Apache Hive (六)Hive SQL之数据类型和存储格式
    Apache Hive (五)DbVisualizer配置连接hive
    网络通信
    HashMap与Hashtable的区别
  • 原文地址:https://www.cnblogs.com/liqizhou/p/2496162.html
Copyright © 2020-2023  润新知