半监督学习简单综述(标签化过程)

20210117 -

0. 引言

(本篇文章算是自己阅读《An overview of proxy-label approaches for semi-supervised learning》过程中的记录,将其中的观点记录下来;其中的内容,可能并非原文中的内容,而是自己的思考;读者如果有兴趣,最好是阅读原文,更好体会作者的意思)

无监督的相对于有监督的方法来说,准确率不尽人意,甚至于在某些场景下,可能会非常低。所以,标签的存在,导致这两种方法可能差别特别大。而实际上,很多问题的却都是无监督的,因为数据采集起来,如果如果没有专家知识的标注,这就是一个典型的无监督问题。

人工标记所有数据,必然是耗时耗力的,不如标记一部分数据,然后利用这一部分数据,结合其他的未标记样本来一起进行学习,这种方法就是半监督学习方法。

我个人觉得,很多时候,这种半监督方法应该是更有效的,毕竟你最终的目的是达到一个标签或者说一个类别,那么我手动自己来添加一些样本的标签或者类别,肯定是我初步查看数据是不是可分的第一步。

半监督学习有很多方法,本篇文章中,主要关注利用已有的模型产生标签,然后利用这个伪标签,继续训练的方式。文中作者命名为代理标签的方法,大致范围三个大类:1)自训练2)多视角学习3)自集成,下面逐渐来展开。

1. 自训练方法

自训练方法应该是比较早使用的算法,而且描述起来也比较简单,但是其实有时候我也比较疑惑他的有效性;之前的时候也对这部分有些疑惑,但是不否认这种方法肯定是存在一定的有效性的,那就是在某些情况的假设下。其实对于半监督算法来说,之前的时候关注也看到过,就是在维基百科上,有一个聚类假设和平滑性假设,具体的话后续有时间再记录。那么现在首先来具体说说这个算法,伪代码如下:
在这里插入图片描述
这个算法的流程还是很简单的:通过一个分类器,在训练过程中利用分类器所输出的某个未标记样本的分类概率,将该分类后的标记加入到已标记的样本,重复上述步骤,直到最后没有新的可以添加的样本。
在文章中,提到这种方式没有一种比较有效的纠错机制,也就是说如果因为噪声这种信息的存在那么这个错误的标记会被持续方法。关于这个算法,我自己的理解是,可能我们自己做实验,我们选取一部分的数据作为标记样本,然后剩下的作为无标记,但是这个时候存在一种问题,那就是选择的数据是随机选择的,那么就造成了这个样本分布可能就会占据了原始的样本空间,当然,这种情况就是比较理性的情况。但是在现实生活中的任务就不太一样了,可能你标记标记到的样本可能就存在一个样本分布的不均衡问题。这是我的理解。

当然,这种算法在一定的假设下还是有一定的可行性的。

2. 多视图训练

从一个简单的角度来说,多视图训练跟随机森林很像,选取部分特征,然后进行预测;当然,跟集成学习也很像。在文章中提到,半监督的方法中,多视图训练可以分为多种:不同特征组合,不同的模型,不同的训练样本。

2.1 协同训练(Co-Training)

先来直接贴上算法流程:
在这里插入图片描述
虽然算法原理看起来很简单,但是具体内部的原理还真不好说。那么先从上层上的含义来理解。首先这种算法要求,标记的样本能够被两个独立的特征集代表,也就是说,用两个特征集都能训练出来一个比较好的模型。那么在后续的迭代过程中,仅仅那些只被其中一个模型训练比较好(通过预测概率来体现)的样本才会被吸收到标记的样本中。从上图的算法流程中也能够看出来。

但是文章中也提到,实际上获取到两个相对独立的特征集是比较困难的,所以在近些年也有人提出了一些其他的方法,例如正则化的一些方式。这个可以具体再展开看。

2.2 民主协同训练(谷歌翻译)

普通的协同训练是通过不同的特征集来作为不同的视图,而民主协同训练采用具有不同的推理偏差的模型,可以是带有不同网络结构的神经网络,或者是完全不同的学习算法。算法流程如下:
在这里插入图片描述
用通俗的话来将就是:每个模型(不同的网络配置,不同的基础模型)都再标记好的数据集上进行训练,然后所有的模型都在未标记的数据集上进行训练。然后利用一定的投票策略来进行投票,当然这里还有一个权值。

2.3 Tri-Training

在这里插入图片描述
Tri-Training应该是我第一个接触的半监督算法了,是很早的时候学姐在使用就了解了一下。区别于前面一个算法,该算法通过bootstrap采用来增加方差,提高模型的多样性。然后也是按照策略将该部分添加到标记样本集中。
基于该算法,近些年也提出了一些其他的算法:基于分歧的Tri-training(英文原文:Tri-training with disagreement)、非对称Tri-Training、多任务Tri-Training。

2.4 小节

前面的算法中,都提到了考虑算法模型的多样性,利用的方法就是通过采用、不同模型、不同特征集这样实现。但是这些方式都需要一个假设,那就是保证训练出来的模型具备一定的独立性,具备一定的区分性。但是这个特性如何来度量,我暂时不是很理解,其实之前的时候,在关注集成学习的时候也考虑过这方面的事情,不过如果你看的不是一些基础理论的机器学习书籍的话,那么他们的讲解必然不深入。所以,这方面是需要深入来考虑的,有了这部分假设,要考虑自己的数据是不是真的满足这些假设。只有这样才能找到自己的数据为什么在这个模型上不可行的原因。

3. 自集成方法

自集成方法使用单个模型来完成任务,但是利用单个模型在不同的配置下来一起预测。这些方法主要是近些年提出的,也达到了不错的效果。这些方法这里不再展开介绍,可以去原文查看。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值