学习笔记:多视角学习-协同训练

简介: 学习笔记:多视角学习-协同训练

半监督学习


在传统的有监督学习中,我们通过训练大量有标记数据得到一个强学习器,然后预测一个未知样例。而现实生活中,通常数据集中大量数据是无标记的,只有很少一部分是有标记的。比如在电子商务系统中,我们需要推荐用户感兴趣的商品,然而只有很少的用户会主动标记他们感兴趣的商品,系统中还存在着大量其他的商品,它们都可作为未标记示例来使用。我们的目标就是利用这些大量的、廉价的无标记数据帮助我们得到更好的训练模型。


为什么无标记数据是有用的?可以从贝叶斯公式来理解。


贝叶斯公式P ( C i ∣ x ) = Σ P ( x ∣ C i ) P ( C i ) / P ( x ) 。表明我们可以将先验概率P ( C i )转换为后验概率P ( C i ∣ x ) 。P ( C i ∣ x )代表在输入示例的特征向量x的条件下该示例类别属于Ci 的概率。我们能够从标记数据中计算出P ( x ∣ C i ) 和 P ( C i ),大量的无标记数据则有助于得到更接近于真值的p(x)。由贝叶斯公式可以看出p(x)能够影响到P(Ci|x)的值,也就是说大量的无标记数据是有助于分类器学习的。


协同训练


Co-training 是基于分歧的方法,其假设每个数据可以从不同的角度(view)进行分类,不同角度可以训练出不同的分类器,然后用这些从不同角度训练出来的分类器对无标签样本进行分类,再选出认为可信的无标签样本加入训练集中。


由于这些分类器从不同角度训练出来的,可以形成一种互补,而提高分类精度;就如同从不同角度可以更好地理解事物一样。


当数据充分时,在具有这种特征的数据集的任何一个视图上均可以利用一定的机器学习算法训练出一个强分类器。因为无论是链接还是网页内容都能独立完备地唯一确定一个网页。


但是在这里,大量数据都是无标记的,无法训练出一个强泛化能力的分类器,怎么办呢?协同训练应运而生!



假设数据集属性有两个充分冗余的视图view1和view2,设为X1和X2,则一个示例就可以表示为(x1, x2),其中x1是x在X1视图中的特征向量,x2则是x在X2视图中的特征向量。


假设f是在示例空间X中的目标函数,若x的标记为l则应有f ( x ) = f 1 ( x 1 ) = f 2 ( x 2 ) = l 。


A. Blum和T. Mitchell定义了所谓的“相容性”,即对X上的某个分布D,C1和C2分别是定义在X1和X2上的概念类,如果D对满足f 1 ( x ) ≠ f 2 ( x 2 ) 的示例 ( x 1 , x 2 )  指派零概率,则称目标函数f = ( f 1 , f 2 ) ∈ C 1 × C 2 与D“相容”。


这样,就有可能利用未标记示例来辅助探查哪些目标概念是相容的,而该信息有助于减少学习算法所需的有标记示例数。


下图左边的每个结点对应了X1中的一个特征向量,右边的每个结点对应了X2中的一个特征向量,当且仅当示例(x1, x2)在分布D下以非零概率存在时,结点x1和x2之间才存在边,这些边在图中已经用线条标示出来,其中用实边标示的边对应了已经观察到的未标记示例。在这一表示下,C中与D相容的概念就对应了在图中连通成分之间没有交叉线的划分。


显然,属于同一连通成分的示例必然属于同样的类别,而未标记示例可以帮助学习算法了解图中的连通性(了解分布D),因此,通过利用未标记示例,学习算法可以使用较少的有标记示例达到原来需要更多的有标记示例才能达到的效果。



标准协同训练算法的步骤为:


输入:标记数据集L,未标记数据集U。


用L1训练视图X1上的分类器f1,用L2训练视图X2上的分类器f2;

用f1和f2分别对未标记数据U进行分类;

把f1对U的分类结果中,前k个最置信的数据(正例p个反例n个)及其分类结果加入L2;把f2对U的分类结果中,前k个最置信的数据及其分类结果加入L1;把这2(p+n)个数据从U中移除;

重复上述过程,直到U为空集。

输出:分类器f1和f2。


注: f1和f2可以是同一种分类器也可以不是同一种分类器。


协同训练法要求数据具有两个充分冗余且满足条件独立性的视图:

\1. “充分(Sufficient)” 是指每个视图都包含足够产生最优学习器的信息, 此时对其中任一视图来说,另一个视图则是“冗余(Redundant)” 的;


\2. 对类别标记来说这两个视图条件独立。


这个数据假设就很强力了,既要求数据信息充分还冗余,你还要找到两个独立互补的视图。但是,在一定程度上满足条件的情况下,co-training 的效果也是非常给力。


那么,在半监督深度学习里,co-training 会以什么方式呈现呢?问题的关键自然在于,如何去构建两个(或多个)近似代表充分独立的视图的深度模型,两个比较直观的方法就是:


使用不同的网络架构


使用特殊的训练方法来得到多样化的深度模型


参考资料


[1].Combining Labeled and Unlabeled Data with Co-Training


[2].半监督学习中的协同训练风范


[3].A Co-Regularization Approach to Semi-supervised Learning with Multiple Views


[4].When Does Co-Training Work in Real Data?


[5].Semi-Supervised Learning with Multiple Views

目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 自动驾驶
Genie为何更贴近世界模型?
【2月更文挑战第14天】Genie为何更贴近世界模型?
50 2
Genie为何更贴近世界模型?
|
6月前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
82 0
|
机器学习/深度学习 SQL 存储
实时特征计算平台架构方法论和实践
在机器学习从开发到上线的闭环中,实时特征计算是其中的重要一环,用于完成数据的实时特征加工。由于其高时效性需求,数据科学家完成特征脚本离线开发以后,往往还需要工程化团队通过大量的优化才能完成上线。另一方面,由于存在离线开发和工程化上线两个流程,线上线下计算一致性验证成为一个必要步骤,并且会耗费大量的时间和人力。
1059 0
实时特征计算平台架构方法论和实践
|
自然语言处理 搜索推荐 算法
M2GRL:一种用于全网规模推荐系统的多任务多视角图表示学习框架
由阿里云开发者社区联合新零售智能引擎事业群共同打造的《KDD 论文精华解读》电子书重磅发布!覆盖推荐系统、图神经网络预训练、买家秀视频标题生成、在线电视剧的受众竞争力预测和分析等 10+ 内容,免费下载电子书感受科技的震撼!
M2GRL:一种用于全网规模推荐系统的多任务多视角图表示学习框架
|
3月前
|
机器学习/深度学习 敏捷开发 人工智能
探索软件测试的多维视角:从基础到未来趋势
本文旨在通过通俗易懂的语言,为读者揭示软件测试领域的多个维度。我们将从软件测试的基础概念出发,逐步深入到测试的不同类型、面临的挑战,以及最新的测试技术和工具。文章还将探讨自动化测试的重要性和实现过程,以及如何利用敏捷测试来提高开发效率。最后,我们将展望软件测试的未来趋势,包括人工智能和机器学习在测试中的应用前景。文章的目标是为初学者提供入门指南,同时为有经验的测试工程师提供行业动态和未来发展方向的参考。
|
3月前
|
SQL 安全 测试技术
探索软件测试的多维视角
在软件开发生命周期中,测试阶段扮演着至关重要的角色。本文将通过一个实际的软件测试案例,深入探讨如何从不同的角度进行软件测试,以确保软件质量的提升。我们将分析测试过程中遇到的挑战和问题,并提出相应的解决策略,旨在帮助读者更好地理解软件测试的复杂性和重要性。
45 3
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能城市交通管控与优化
【8月更文挑战第17天】 使用Python实现深度学习模型:智能城市交通管控与优化
157 0
|
4月前
|
敏捷开发 大数据 测试技术
探索软件测试的多维视角:从自动化到性能评估
在数字化时代的浪潮中,软件测试作为保障产品质量的重要环节,其方法和工具正经历着前所未有的变革。本文将深入探讨现代软件测试领域的两大趋势——自动化测试与性能测试,揭示它们如何相辅相成,共同提升软件开发的效率和质量。我们将通过具体的案例分析,展示自动化测试在不同开发阶段的应用,以及性能测试在确保用户体验方面的关键作用。同时,文章还将对比传统测试方法,阐述这些新兴技术带来的改进和挑战,为读者呈现一个全面而立体的软件测试新图景。
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习:人工智能中实现自动化决策与精细优化的核心驱动力
【机器学习】机器学习:人工智能中实现自动化决策与精细优化的核心驱动力
|
5月前
|
机器学习/深度学习
【机器学习】视觉基础模型的三维意识:前沿探索与局限
【机器学习】视觉基础模型的三维意识:前沿探索与局限
142 0