这篇博客介绍的是一篇用于半监督分类问题的方法: 协同训练 Co-training, A. Blum and T. Mitchell, “Combining labeled and unlabeled data with co-training,” in Proc. of the 11th Annual Conf. on Computational Learning Theory, 1998.,这算是半监督领域里面始祖级的论文了,是1998年两位CMU大佬提出的方法。

关于半监督学习

  1. 基于分歧的半监督学习方法
    机器学习教程 之 半监督学习 Tri-training方法 (论文、数据集、代码)
    机器学习教程 之 半监督学习 Co-training 协同训练 (论文、算法、数据集、代码)
    机器学习教程 之 半监督学习 Coreg 协同回归算法 (论文、算法、数据集、代码)
  2. 基于图的半监督学习方法
    DeepLearning | 图注意力网络Graph Attention Network(GAT)论文、模型、代码解析
    DeepLearning | 图卷积神经网络(GCN)解析(论文、算法、代码)
    DeepLearning | 图卷积网络基于拓扑结构的分类(T-GCN)
    机器学习教程 之 半监督学习 基于图正则项的半监督极限学习机

这些博客都提供了算法的讲解和python的代码复现,感兴趣的可以了解一下

目录

  • 一、协同训练 Co-training
  • 二、算法流程
  • 三、资源下载

一、协同训练 Co-training

协同训练是一类基于“分歧”的半监督学习方法,它最初是针对“多视图”数据设计的。为了更好的介绍协同训练,我们这里先介绍什么是多视图数据。

在不少现实应用中,一个数据对象往往同时拥有有多个“属性集”,每个属性集就构成了一个视图。例如,对于一部电影而言,它拥有多个属性集,即图像画面对应的属性集、声音信息对应的属性集、字幕信息对应的属性集、甚至网上的宣传所讨论对应的属性集等。每个属性集都可以看作为一个视图。为简化讨论,这里仅考虑图像画面属性集所构成的视图和声音属性集所构成的视图。于是,一个电影片段可以表示为(<x1,x2>,y)(<x^{1},x^{2}>,y)(<x1,x2>,y),其中x1x^{1}x1为图像视图中的属性向量,x2x^{2}x2为声音视图中的属性向量,yyy是标签,这里表示的是电影类型,例如“动作片”、“爱情片”等等。这样 (<x1,x2>,y)(<x^{1},x^{2}>,y)(<x1,x2>,y) 就是一个有两个视图的数据

假设不同视图具有“相容性”,即所包含的关于输出空间YYY的信息是一致的:令Y1Y^{1}Y1表示从图像画面信息判别的标记空间,Y2Y^{2}Y2表示从声音信息判别的标记空间,则有Y=Y1=Y2Y=Y^{1}=Y^{2}Y=Y1=Y2,例如两者都是{爱情片、动作片}\{爱情片、动作片\}{爱情片、动作片},而不能是Y1={爱情片、动作片}Y^{1}=\{爱情片、动作片\}Y1={爱情片、动作片}而Y2={惊悚片、文艺片}Y^{2}=\{惊悚片、文艺片\}Y2={惊悚片、文艺片}。在此假设下,显式地考虑多视图这一信息显然是有很多好处的。以电影为例,某个片段上,两人相视,仅凭画面信息难以分辨其类型,但此时若从声音信息听到“我爱你”,则可以判断出该片段很有可能属于“爱情片”;相反的,若仅凭图像画面信息认为“可能是动作片”,仅凭声音信息也认为“可能是动作片”,则当两者一起考虑时就有很大把握判别为“动作片”。显然,在“相容性”基础上,不同视图信息的“互补性”会给学习器的构建带来很大便利。

协同训练正是很好地利用了多视图的“相容互补性”。假设数据拥有两个充分且条件独立的视图,“充分”是指每个视图都包含足以产生最优学习器的信息,“条件独立”则是指在给的类别标记条件下两个视图相互独立。 在此情况下,可以用一个简单的办法来利用未标记数据:首先在每个视图上基于有标签样本分别训练出一个分类器,然后让每个分类器分别去挑选自己“最有把握的”未标记样本赋予伪标记,并将伪标记样本提供给另一个分类器作为新增的有标记样本用于训练更新…这个“互相学习、共同进步”的过程不断迭代进行,直到两个分类器都不再发生变化,或达到预先设定的迭代轮次为止。

协同训练的过程虽然简单,但令人惊讶的是,理论证明显示出,若两个视图充分且条件独立,则可以利用未标记样本通过协同训练将弱分类器的泛化性能提升到任意高。不过,视图的条件独立性在现实任务中通常很难满足,因此提升幅度不会那么大。

二、算法流程

协同训练的算法描述如下所示:

若在每轮学习中都考察分类器在所有未标记样本上的分类置信度,会有很大计算开销,因此在算法中使用了未标记样本缓冲池。分类置信度的估计则因基学习算法的不同而不同,例如若使用贝叶斯分类器,则可以将后验概率转化为分类置信度;若使用支持向量基,则可以将间隔大小转化为分类置信度。

此外,协同训练算法本身是为多视图数据而设计的,但此后出现了一些能在单视图数据上使用的变体算法,它们或是使用不同的学习算法,或是使用不同的数据采样,甚至使用不同的参数设置来产生不同的学习器,也能有效利用未标记数据来提升性能。后续理论研究发现,此类算法事实上无需数据拥有多视图,仅需弱学习器之间具有显著分歧,即可通过相互提供伪标签样本的方式来提升性能。

三、资源下载

微信搜索“老和山算法指南”获取代码下载链接与技术交流群

有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。

机器学习教程 之 半监督学习 Co-training 协同训练 (论文、算法、数据集、代码)相关推荐

  1. 机器学习教程 之 半监督学习 Tri-training方法 (论文、数据集、代码)

    最近因为项目需要研究了一下半监督学习,稍经了解以后发现当存在大量未标签数据时,这确实是一种非常好用的方法,可以很好的提升分类精度.这里介绍一下周志华教授的Tri-triaining方法,在实现上非常的 ...

  2. 机器学习教程 之 半监督学习 基于图正则项的半监督极限学习机

    半监督学习是指在模型训练阶段同时利用有标签数据和无标签数据.我之前介绍过的半监督学习方法包括 基于分歧的半监督学习方法 机器学习教程 之 半监督学习 Tri-training方法 (论文.数据集.代码 ...

  3. 小白教程:Ubuntu下使用Darknet/YOLOV3训练自己的数据集

    小白教程:Ubuntu下使用Darknet/YOLOV3训练自己的数据集 YOLOV3官网教程:https://pjreddie.com/darknet/yolo/ 使用预训练模型进行检测 git c ...

  4. 基于项目的协同过滤推荐算法单机版代码实现(包含输出电影-用户评分矩阵模型、项目相似度、推荐结果、平均绝对误差MAE)

    基于项目的协同过滤推荐算法单机版代码实现(包含输出电影-用户评分矩阵模型.项目相似度.推荐结果.平均绝对误差MAE) 一.开发工具及使用技术 MyEclipse10.jdk1.7.movielens数 ...

  5. 西瓜书+实战+吴恩达机器学习(十六)半监督学习(半监督SVM、半监督k-means、协同训练算法)

    文章目录 0. 前言 1. 半监督SVM 2. 半监督k-means 2.1. 约束k-means 2.2. 约束种子k-means 3. 协同训练算法 如果这篇文章对你有一点小小的帮助,请给个关注, ...

  6. 机器学习笔记(十三)半监督学习

    13.半监督学习 这章介绍半监督学习方法. 13.1未标记样本 先说两个概念: 1)有标记样本(Labeled) 训练样本集Dl={(x1,y1), (x2,y2),-, (xl,yl)},这l个样本 ...

  7. 机器学习16:半监督学习semi-supervised

    一.why semi-supervised dataset中只有部分数据进行了lable标注,即,有的数据成对出现{输入,输出},有的数据只有输入{输入}: Transductive learning ...

  8. 李宏毅机器学习课程12~~~半监督学习

    Semi-supervised Learning The distribution of the unlabeled data tell us something. Usually with some ...

  9. 《机器学习实战》第二章学习笔记:K-近邻算法(代码详解)

    <机器学习实战>数据资料以及总代码可以去GitHub中下载: GitHub代码地址:https://github.com/yangshangqi/Machine-Learning-in-A ...

最新文章

  1. 在阿里云Kubernetes容器服务上打造TensorFlow实验室
  2. 一个方法搞定安卓路由跳转
  3. QT实现Media Player(媒体播放器)
  4. python删除字符串中重复字符_从Python中删除字符串标点符号的最佳方法
  5. Java 读写json格式的文件方法详解
  6. 2018数学建模国赛总结(A题/编程选手视角)
  7. 静态网站生成器将会成为下一个大热门
  8. 小程序毕设作品之微信小程序点餐系统毕业设计(5)任务书
  9. 用MDK调试AXF文件
  10. rollup打包压缩和去除注释等无效代码
  11. 中国农业大学研究生计算机学院宿舍,中国农业大学宿舍条件怎么样
  12. 明源云客微信抢房技巧_抢房明源系统是什么意思_明源云客抢房软件
  13. 辉芒FT60F011A-DRB单片机产品开发芯片解密IC程序编写烧录芯片
  14. 记一次笔试遇到leetcode原题却没a出来的经历
  15. MarkdownPad
  16. 如何防止滴滴出行后台自启
  17. mysql数据库热备份_mysql数据库热备份
  18. 前端上传文件保存到变量中
  19. 如何使用 Axios 中的请求拦截器 和响应拦截器
  20. 2021年衡水中学高考成绩查询,2019年衡水中学的高考成绩会怎样,看看往年的战绩就明白了...

热门文章

  1. 视频号直播间微信小程序开发制作介绍
  2. php基础-GD库-批量制作水印图片
  3. win10管理员无法使用mklink的问题
  4. mysql里的char怎么添加数据类型_MySQL CHAR 数据类型
  5. Android获取桌面应用程序
  6. 下载喜马拉雅工具 洪校长音频
  7. bell-lapadula vs biba
  8. 联盟:微信封号最新规则以及解决方法
  9. 如何让右下角时间显秒
  10. 第一章 阿里大数据产品体系