半监督学习
半监督学习是一种机器学习类型,既不是完全监督的,也不是完全无监督的。半监督学习算法基本上介于监督学习和无监督学习方法之间。
在半监督学习中,机器学习算法在包含标记数据和未标记数据的 datasets 上进行训练。半监督学习通常在有大量未标记数据可用时使用。在任何监督学习算法中,可用数据必须手动标记,这可能是一个相当昂贵的流程。相比之下,无监督学习中使用的未标记数据应用有限。因此,开发了半监督学习算法,它能在两者之间提供完美的平衡。
什么是半监督学习?
半监督学习是一种机器学习方法或技术,结合了监督学习和无监督学习。在半监督学习中,机器学习算法在少量标记数据和大量未标记数据上进行训练。
半监督学习的目标是开发一种算法,将整个数据分成不同的簇,彼此距离较近的数据点很可能共享相同的输出标签,然后将簇分类到预定义的类别中。
我们可以将半监督学习总结为
- 一种机器学习方法或技术,它
- 结合了监督学习和无监督学习
- 使用标记数据和未标记数据来训练 ML 模型
- 执行分类和回归相关任务。
半监督学习与监督学习的区别
监督学习与半监督学习的主要区别在于用于训练模型的 dataset。在监督学习中,模型在包含输入及其对应预定义标签的 dataset 上训练,即提供了特征及其对应的目标标签。这允许更准确的预测或分类。而半监督学习中的 dataset 包含少量标记数据和大量未标记数据。模型首先在标记数据上训练,然后利用这些洞见来训练未标记数据以发现额外模式。
半监督学习与无监督学习的区别
无监督学习仅在未标记 dataset 上训练模型,旨在识别 dataset 中具有共同特征的组。相比之下,半监督学习使用少量标记数据和大量未标记数据的混合。在无监督学习中,dataset 中的数据点基于共同特征分组为簇,而半监督学习更高效,因为每个簇都被分配一个预定义标签,它在标记数据和未标记数据上一起训练。
何时选择半监督学习?
在获取足够标记数据困难且昂贵,但收集未标记数据相对容易的情况下。此时,完全监督或无监督学习方法都无法提供准确结果。这时可以实施半监督学习方法。
半监督学习是如何工作的?
半监督学习通常使用少量的监督学习组件,即少量预先标记的标注数据,以及大量的无监督学习组件,即大量未标记数据进行训练。
在机器学习中,我们可以采用以下任何一种方法来实现半监督学习方法 —
- 第一种简单的方法是基于少量标记和标注数据构建监督模型,然后将相同方法应用于大量未标记数据以获取更多标记样本。现在,在这些样本上训练模型并重复该过程。
- 第二种方法需要一些额外努力。在这种方法中,我们可以首先使用无监督方法对相似数据样本进行聚类,标注这些组,然后使用这些信息的组合来训练模型。
在半监督学习中,所使用的未标记数据应与模型训练执行的任务相关。从数学角度来看,输入数据的分布 p(x) 必须包含关于后验分布 p(y|x) 的信息,后者表示给定数据点 (x) 属于某个类 (y) 的概率。
半监督学习的运作有一些特定假设,如下所示 —
- Smoothness Assumption
- Cluster Assumption
- Low Density Separation
- Manifold Assumptions
让我们简要了解上述列出的这些假设。
Smoothness Assumption
这个假设指出,高密度区域(属于同一簇)中的两个数据点 x1 和 x2 很接近,因此相应的输出标签 y1 和 y2 也应该接近。另一方面,如果数据点位于低密度区域,它们的输出不必接近。
Cluster Assumption
聚类假设指出,当数据点位于同一簇中时,它们很可能属于同一类。未标记数据应有助于使用聚类算法更准确地找到每个簇的边界。此外,应使用标记数据点为每个簇分配类。
Low Density Separation
低密度分离假设指出,决策边界应位于低密度区域。例如,考虑数字识别任务,想要区分手写数字 0 和数字 1。从决策边界精确取样的一个样本点将位于 0 和 1 之间,很可能是一个看起来像非常细长的零的数字。但有人写出这个奇怪数字的概率非常小。
Manifold Assumptions
这个假设构成了几种半监督学习方法的基础,它指出在高维输入空间中,存在几个低维流形,所有数据点都位于这些流形上,并且具有相同标签的数据点位于同一流形上。
半监督学习技术
半监督学习使用多种技术,从标记数据和未标记数据中发挥最佳效果,以获得准确的结果。一些流行的技术包括 −
Self-training
Self-training 是一种过程,其中任何监督方法如 classification 和 regression,都可以修改为半监督方式工作,从标记数据和未标记数据中获取洞见。
Co-training
这种方法是 Self-training 方法的改进版本,其思想是利用要分类的数据的不同“views”。这特别适用于 web content classification,其中网页可以由页面上的文本表示,也可以由指向该页面的 hyperlinks 表示。与典型过程不同,co-training 方法基于数据的两种 views 训练两个独立的 classifiers,以提高学习性能。
Graph based label propagation
运行半监督学习的最有效方式是将数据建模为 graphs,其中 nodes 表示数据点,edges 表示它们之间的相似性,然后应用 label propagation 算法。在这种方法中,标记数据点通过 graph 传播它们的 labels,影响相邻 nodes。labels 被迭代更新,允许模型为未标记 nodes 分配 labels。
半监督学习的挑战
半监督学习只需少量标记数据配合大量未标记数据,即可降低手动标注的成本和需求。相比之下,仍有一些挑战需要解决,如 −
- 数据质量 − 半监督学习的效率取决于未标记数据的质量。如果未标记数据噪声大或不相关,则可能导致不正确的预测和性能差。
- 数据变异 − 半监督学习模型更容易受到标记数据和未标记数据之间分布偏移的影响。例如,一个模型在由清晰高质量图像组成的标记数据集上训练,而如果未标记数据包含从监控摄像头捕获的图像,则很难从标记图像泛化到未标记图像,从而影响结果。
半监督学习的應用
半监督机器学习应用于 text classification、image classification、speech analysis、anomaly detection 等领域,其中总体目标是将实体分类到预定义类别中。半监督算法假设数据可以分为离散 clusters,且彼此接近的数据点更可能共享相同的输出 label。
半监督学习的一些流行应用包括 −
- Speech Recognition − 标注音频数据是一项耗时的任务,半监督技术通过结合未标记音频数据和有限的转录语音来改进 speech 模型。这提高了识别口语语言的准确性。
- Web Content Classification − 面对数十亿个网站,手动标注内容是不切实际的。半监督学习有助于高效分类 web 内容,提高像 Google 这样的搜索引擎在排名和为用户查询生成相关内容的性能。
- Text Document Classification − 半监督学习用于通过在少量标记文档和小量未标记文本语料库上训练来分类文本。模型首先从标记数据学习以获取洞见,然后用它来分类文本。这种学习方法有助于在无需大量标记数据集的情况下提高分类准确性。