文章目录

  • 半监督学习介绍
  • 半监督SVM
  • 基于分歧的方法

半监督学习介绍

我们在丰收的季节来到瓜田,满地都是西瓜,瓜农抱来四个西瓜说这都是好瓜,然后指着地里面六个瓜说这些不好,还需要再生长几天,基于这些信息,我们能否构建一个模型,用于判别地里面哪些是该采摘的瓜?显然,可将瓜农告诉我们的好瓜,与不好的瓜分别作为正例和反例来训练一个分类器,然而只用这十个瓜做训练样本,有点太少了吧,能不能把地里的瓜也用上呢?

形式化地看,我们有训练样本集合 D l = { x 1 , x 2 , . . . , x l } D_l=\{x_1,x_2,...,x_l\} Dl​={x1​,x2​,...,xl​},这个样本集是带标记的(告诉了我们哪些是好瓜,哪些是坏瓜),称为有标记样本;此外还有无标记样本, D u = { x l + 1 , x x + 2 , . . . , x l + u } D_u=\{x_{l+1},x_{x+2},...,x_{l+u}\} Du​={xl+1​,xx+2​,...,xl+u​},我们知道这类无标记的样本数量是远远大于有标记样本的数量的,也就是 u > > l u>>l u>>l。

如果我们只利用 l l l个数据来做训练,那剩下的庞大的 u u u个样本就浪费了。我们怎么样才能把剩下的庞大的 u u u个样本利用起来呢?下面是两种思想。

  • 把剩下的 u u u个样本打上标记,这样做的缺点就是耗费人力,相当于让瓜农把剩下的瓜全部检查一遍。
  • 先把 l l l个数据训练起来,训练好了,我们把一个瓜判断优劣后,问问瓜农这瓜是不是符合我们的判断,然后把该样本加入到 l + 1 l+1 l+1个数据中再训练。这样瓜农只需要检验少量的瓜,从而大幅度降低成本。这种方法叫做主动学习

别慌,还有一种思路。上面两种思路都是需要通过“专家参与”,人为的判断样本好坏,那么有没有一种不用人为判断好坏的方法出现呢?
半监督学习:让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能

半监督学习,要利用未标记的 u u u个样本,同样参与到训练之中。所以,半监督学习有这么一个假设:相似的样本有相似的输出
半监督学习又分为纯半监督学习直推学习。前者假定训练数据中的未标记样本并非待预测的数据, 而后者则假定学习过程中所考虑的未标记样本恰是待预测数据。
下面只介绍两种半监督,其他算法原理以后有机会再学习。

半监督SVM

半监督支持向量机(S3VM)是支持向量机在半监督学习上的推广。它的思想很简单,如下图所示:

在不考虑未标记样本时,支持向量机试图找到最大间隔划分超平面, 而在考虑未标记样本后, S3VM 试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面。

回忆一下SVM的公式:https://blog.csdn.net/No_Game_No_Life_/article/details/89877123#_108

我们在SVM中得出过下面的公式:

并且,我们曾经提到过, l 0 / 1 l_{0/1} l0/1​函数不连续,我们有其变形。不过在本节,我们将其表示为:
m i n w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ \underset{w,b,\xi}{min}\frac{1}{2}||w||^2+C\sum_{i=1}^{m}\xi w,b,ξmin​21​∣∣w∣∣2+C∑i=1m​ξ

其中, ξ \xi ξ与 l 0 / 1 l_{0/1} l0/1​函数的作用相同。

同样的,在S3VM中,我们结合样本集 D l = { x 1 , x 2 , . . . , x l } D_l=\{x_1,x_2,...,x_l\} Dl​={x1​,x2​,...,xl​}和样本集 D u = { x l + 1 , x x + 2 , . . . , x l + u } D_u=\{x_{l+1},x_{x+2},...,x_{l+u}\} Du​={xl+1​,xx+2​,...,xl+u​},可知:

m i n w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C l ∑ i = 1 l ξ l + C u ∑ i = l + 1 l + u ξ u \underset{w,b,\xi}{min}\frac{1}{2}||w||^2+C_l\sum_{i=1}^{l}\xi_l+C_u\sum_{i=l+1}^{l+u}\xi_u w,b,ξmin​21​∣∣w∣∣2+Cl​∑i=1l​ξl​+Cu​∑i=l+1l+u​ξu​

其中, C u C_u Cu​的值比 C l C_l Cl​小,这样才能使得有标记的样本的作用更大。
输入很明显,直接来说过程。这里我们介绍TSVM的过程。
过程:

  1. 通过有标记样本 D l D_l Dl​计算出一个SVM模型。
  2. 通过SVM模型给 D u D_u Du​打标记(伪标记)。
  3. 通过有标记的两个样本 D l D_l Dl​和 D u D_u Du​,训练出新的TSVM,找到新的 ( w , b ) (w,b) (w,b)(新的超平面)。
  4. 通过训练出的TSVM,在 D u D_u Du​中找出两个标记指派为异类且很可能发生错误的未标记样本?交换它们的标记。
  5. 重复步骤3,4。并逐步增大 C u C_u Cu​以提高未标记样本的影响,直到 C u = C l C_u=C_l Cu​=Cl​为止。

S3VM介绍完毕,可以看到,一开始,我们就利用了未标记的样本,并且不断修正对未标记样本的伪标记。

其实这个过程很像EM算法的思想,关于EM算法,可以看下面的链接 https://zhuanlan.zhihu.com/p/36331115

基于分歧的方法

基于分歧的方法大多数使用“学习器”,并利用“学习器”之间的“分歧”来对未标记数据进行利用。

我们这里介绍其中一种算法:协同训练。在介绍协同训练之前,首先要了解什么是多视图数据

一个数据对象往往同时拥有多个"属性集" (attributeset) ,每个属性集就构成了一个"视图"(view)。举个例子,对一部电影来说,它拥有多个属性集:图像画面信息所对应的属性集、声音信息所对应的属性集(还有字幕,网上讨论等等属性集)。.于是,一个电影片段可表示为样本 ( &lt; x 1 , x 2 &gt; , y ) (&lt;x_1,x_2&gt;,y) (<x1​,x2​>,y), x 1 x_1 x1​表示图像画面信息对应的属性集, x 2 x_2 x2​表示声音信息所对应的属性集, y y y则是标记,比如电影属于“爱情片”“动作片”等等(我怀疑你在开车,可是我没有证据)。

假设不同视图具有"相容性",举个例子,用 y 1 y^1 y1表示从图像画面信息判别的标记空间,用 y 2 y^2 y2表示从声音信息判别的标记空间。以电影为例,某个片段上有两人对视( y 1 = 爱 情 片 y^1=爱情片 y1=爱情片),仅凭图像画面信息难以分辨其类型,但此时若从声音信息昕到"我爱你"( y 2 = 爱 情 片 y^2=爱情片 y2=爱情片)则可判断出该片段很可能属于"爱情片"( y = 爱 情 片 y=爱情片 y=爱情片)。当两者一起考虑时就有很大的把握判别正确,在"相容性"基础上,不同视图信息的"互补性"会给学习器的构建带来很多便利。

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

为了使用此类方法,市能生成具有显著分歧、性能尚可的多个学习器,但当有标记样本很少,尤其是数据不具有多视图时,要做到这一点并不容易,需有巧妙的设计。

One PUNCH Man——半监督学习相关推荐

  1. 机器学习概念 — 监督学习、无监督学习、半监督学习、强化学习、欠拟合、过拟合、后向传播、损失和优化函数、计算图、正向传播、反向传播

    1. 监督学习和无监督学习 监督学习 ( Supervised Learning ) 和无监督学习 ( Unsupervised Learning ) 是在机器学习中经常被提及的两个重要的学习方法. ...

  2. 低耗时、高精度,微软提基于半监督学习的神经网络结构搜索算法

    作者 | 罗人千.谭旭.王蕊.秦涛.陈恩红.刘铁岩 来源 | 微软研究院AI头条(ID:MSRAsia) 编者按:近年来,神经网络结构搜索(Neural Architecture Search, NA ...

  3. 新技术“红”不过十年,半监督学习为什么是个例外?

    作者 | 严林 来源 | 授权转载自知乎(ID:严林) 这一波深度学习的发展,以2006年Hinton发表Deep Belief Networks的论文为起点,到今年已经超过了10年.从过往学术界和产 ...

  4. CVPR 2021|一个绝妙的想法:在类别不平衡的数据上施展半监督学习

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨kid丶@知乎(已授权) 来源丨https://zhuanla ...

  5. Hinton 新作!越大的自监督模型,半监督学习需要的标签越少

    编译 | 青暮 转自 | AI科技评论 本文介绍了Hinton团队发表在NeurIPS 2020上的一项研究工作,一作是Ting Chen,研究人员首次在ImageNet上尝试了半监督学习的典型范式, ...

  6. 手把手教你实现GAN半监督学习

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 引言  本文主要介绍如何在tensorflow上仅使用200个带标 ...

  7. 基于半监督学习的单体型组装算法

    基于半监督学习的单体型组装算法 发布时间:2021-02-16 17:20 单体型组装(Haplotype Assembly)是根据测序得到的DNA片段通过各种模型算法来重建出生物个体的单体型.随着人 ...

  8. 基于PU-Learning的恶意URL检测——半监督学习的思路来进行正例和无标记样本学习...

    PU learning问题描述 给定一个正例文档集合P和一个无标注文档集U(混合文档集),在无标注文档集中同时含有正例文档和反例文档.通过使用P和U建立一个分类器能够辨别U或测试集中的正例文档 [即想 ...

  9. 图解半监督学习FixMatch,只用10张标注图片训练CIFAR10

    2020-05-25 11:20:08 作者:amitness 编译:ronghuaiyang 导读 仅使用10张带有标签的图像,它在CIFAR-10上的中位精度为78%,最大精度为84%,来看看是怎 ...

最新文章

  1. java工程引用其他工程,Android工程:引用另一个Android工程的方法详解
  2. HihoCoder - 1879 Rikka with Triangles(极角排序求所有锐角三角形的面积)
  3. TensorFlow MNIST TensorBoard版本
  4. 《数据整理实践指南》一第1章 从头说起:什么是噪音数据
  5. aix oracle监听配置_LINUX系统下Oracle修改默认监听端口号操作
  6. wordpress 怎么获取站点标题
  7. React开发(224):ant design label绑定值
  8. DDD领域模型自动生成?
  9. python123第七周小测验_python+request+untitest的接口自动化测试
  10. python123蟒蛇代码_巨蟒python全栈开发-第3天
  11. java表示非法参数的异常是_JAVA 的异常那些事
  12. foobar2000 v1.2
  13. Asterisk 对VoiceXML 及CSTA的支持
  14. vb安装过程中 ntvdm.exe[9696]中发生未处理的win32异常 vb代写
  15. 软件测试经理,高级管理退休后,给我小白指点面试迷津!
  16. 他励直流电动机的机械特性
  17. 6. 修改docker端口 (映射宿主机和docker容器中的端口)
  18. 阿里云被攻击用高防CDN的效果如何?
  19. hangye5:2345导航将出嫁史玉柱 网址站出路大盘点
  20. android bitmap内存大小,Android——Bitmap占用的内存大小

热门文章

  1. 被程序员鄙视的“开发者5个等级”划分
  2. Java循环录入会员信息
  3. 基于SPRINGBOOT的健康饮食管理系统
  4. KEIL软件读取不到部分头文件
  5. Sql语句优化及存储过程
  6. 记录html+css制作一个上下跳动效果的动画
  7. 有关《家》的经典歌曲_带“家”字的歌曲有什么
  8. 【HashMap】HashMap的6种遍历方法
  9. js判断时间是早上还是下午_JS获取时间显示上午,下午 | 学步园
  10. 华为修改优先级命令_华为命令笔记