在机器学习领域,经常面临一个挑战:如何区分两类动物。不幸的是,数据集中只有一小部分被标记,比如10万张图像。没有时间手动标记其余的图像。在这种情况下,应该怎么办?如果能够使用这10万张标记的图像以监督的方式训练一个模型,然后使用这个模型来预测剩余的900万张未标记图像的标签呢?这将消除手动标记其余图像的需要,这是一个昂贵且耗时的任务。
这就是半监督学习(SSL)的用武之地。在本文中,将讨论:
- 什么是半监督学习?
- 半监督学习是如何工作的?
- 何时应该使用半监督学习?
让开始吧!
什么是半监督学习?
半监督学习(SSL)是一种机器学习技术,它使用少量标记数据和大量未标记数据来训练一个预测模型。为了更好地理解SSL的概念,应该通过它的两个主要对应物:监督学习和无监督学习来看待它。它们的差异在下面的图表中显示。
什么是监督学习?
监督学习是一种使用标记数据集训练机器学习模型的方法。这个过程可能涉及一个人类专家,他们为原始数据添加标签,以向模型显示目标属性(答案)。例如,一个人类可能会注释出汽车零件图像中所有的缺陷。
监督学习有一些局限性。监督学习速度慢,因为它需要人类专家逐个手动标记训练示例。此外,监督学习成本高,因为模型应该在大量手工标记的数据上进行训练,以提供准确的预测。
什么是无监督学习?
无监督学习是模型试图在没有人类监督的情况下,通过自身挖掘未标记数据中的隐藏模式、差异和相似性。在这种方法中,数据点根据相似性被分组成不同的簇。无监督学习模型通常用于聚类数据和发现值之间的关系。
虽然无监督学习是一种更便宜的执行训练任务的方式,但它并不是万能的。无监督学习通常返回的准确性较低。此外,无监督学习只适用于机器学习问题的子集;不能将无监督学习应用于每种类型的问题。
半监督学习的深入探讨
半监督学习将监督学习和无监督学习技术结合起来,解决了它们的主要挑战。通过半监督学习,在一些标记样本上训练一个初始模型,然后迭代地将模型应用于更大的数据集。
与只适用于有限情况的无监督学习不同,SSL适用于各种问题,从分类和回归到聚类和关联。半监督学习方法使用少量标记数据和大量未标记数据。这减少了手动注释的费用,并缩短了数据准备时间。
由于未标记数据丰富、易于获得且成本低廉,半监督学习在许多应用中找到了应用,而结果的准确性并没有受到影响。
半监督学习是如何工作的?
要处理未标记的数据集,数据集中的对象之间必须存在关系。要理解这一点,半监督学习使用以下任何假设:
- 连续性假设:根据连续性假设,彼此靠近的对象倾向于共享相同的组或标签。这个假设也在监督学习中使用,数据集由决策边界分隔。在半监督学习中,决策边界增加了低密度边界的平滑性假设。
- 聚类假设:在这个假设中,数据被划分为不同的离散簇。此外,同一簇中的点共享输出标签。
- 流形假设:这个假设有助于使用距离和密度,数据位于比输入空间少的维度的流形上。
维度数据是由具有较少自由度的过程创建的,可能很难直接建模。如果高,这个假设变得实用。
半监督学习中使用的技术
有几种技术用于SSL,如下所述。
不是手动标记未标记的数据,而是根据标记数据给模型近似标签。让通过将概念分解为如下所示的步骤来解释伪标签。
// 伪标签的步骤:
// 1. 使用标记数据训练模型。
// 2. 使用训练好的模型为未标记的数据预测标签,创建伪标记数据。
// 3. 将伪标记和标记数据一起重新训练模型。
// 这个过程是迭代的,因为模型的改进能够以更高的精度执行。
自训练是伪标签的一种变体。与自训练的区别在于,只接受具有高置信度的预测,通过这个过程迭代几次。在伪标签中,没有必须满足的置信度边界,以便预测用于模型。标准工作流程如下。
// 自训练的步骤:
// 1. 选择少量标记数据,例如显示猫和狗的图像及其相应的标签,并使用此数据集通过常规监督方法训练基础模型。
// 2. 应用伪标签过程——当使用部分训练的模型为尚未标记的数据库的其余部分进行预测时。之后生成的标签称为伪标签。
从这一点开始,将模型做出的最有信心的预测(例如,希望置信度超过80%,某个图像显示的是猫而不是狗)。如果任何伪标签超过此置信度水平,将它们添加到标记数据集中,并创建一个新的组合输入以训练改进的模型。
这个过程可以进行几次迭代(10是标准数量),每次都会添加越来越多的伪标签。只要数据适合该过程,模型的性能将在每次迭代中不断提高。
这种技术是一种基于图的归纳方法,用于推断未标记数据的伪标签。未标记数据点迭代地采用其邻居的多数标签,基于标记数据点。
标签传播(LP)做一些假设:
- 数据集中的所有类别都在标记数据中出现;
- 接近的数据点具有相似的标签;
- 同一簇中的数据点可能有相同的标签。
标签传播创建了一个完全连接的图,其中节点是所有标记和未标记的数据点。两个节点之间的边是加权的。两个节点之间的欧几里得距离越短,权重就越大。较大的边权重允许标签在模型中轻松“传播”。
标签传播算法的简单解释如下:
// 标签传播的工作流程:
// 1. 所有节点根据标签的分布分配软标签;
// 2. 通过边将节点的标签传播给所有节点;
// 3. 每个节点将根据其邻域中的最大节点数迭代更新其标签。节点的标签从标记数据中持续,使得推断出沿着图的边的广泛特征成为可能。
// 标签传播算法在每个未标记数据点的节点具有其邻居的多数标签或达到定义的迭代次数时停止。
半监督学习的关键要点
在只有少量标记数据和大量未标记数据的情况下,半监督学习在分类任务中显示出有希望的结果,同时为其他机器学习任务留出了空间。
SSL方法可以利用几乎所有的监督算法,但需要进行一些修改。SSL非常适合聚类和异常检测目的,假设数据适合基于使用的SSL方法的要求。虽然半监督学习是一个相对较新的领域,但它已经在许多领域证明是有效的。