1.概述
(1) 纯半监督学习 (Pure Semi-Supervised Learning)
纯半监督学习是一种典型的半监督学习方法,它的主要特点是同时利用有标签数据和无标签数据进行模型训练。目标是通过整合这两种类型的数据来提高模型的泛化性能。在这个过程中,无标签数据被用来揭示数据的底层结构或分布,而有标签数据则用来指导模型进行正确的分类或预测。
想象你在教一个朋友识别不同种类的水果。你给他们看几个苹果、香蕉和橙子,并告诉他们各是什么。这就像标记数据,因为你给了他们带正确答案的示例。
但你还有一个大篮子混合的水果,你没有时间去仔细查看。你的朋友尝试根据他们从你给的几个示例中学到的东西来判断每种水果是什么。这就像未标记数据。你的朋友正在使用他们从几个示例中学到的知识来对所有其他的水果进行猜测。
在纯半监督学习中,计算机使用少量的标记数据来学习一些东西。然后,它试图将所学的知识应用于大量的未标记数据,为那些数据猜测标签。这有点像用有根据的猜测来填补空白。
(2)直推学习 (Transductive Learning)
直推学习与传统的归纳学习(如纯半监督学习)不同,因为它专注于对特定无标签样本的预测,而不是构建一个可以泛化到新数据的模型。在直推学习中,我们通常假设训练时使用的无标签样本就是最终在测试时需要预测的样本。因此,直推学习的目标是在这些特定的无标签样本上获得最佳的预测性能。
在半监督学习的背景下,直推学习可能会利用有标签数据来构建一个初步模型,然后利用该模型对无标签数据进行预测,并根据这些预测来优化模型。但是,与纯半监督学习不同,直推学习并不关注模型在新数据上的泛化能力。
(3)主动学习 (Active Learning)
主动学习在半监督学习中扮演着特殊的角色。在这种方法中,模型不是被动地接受所有可用的有标签和无标签数据,而是主动选择它认为最“有用”或“信息量最大”的样本进行标注。这种方法通常涉及与一个或多个专家(或标注者)的交互,他们会根据模型的请求提供标签。
在半监督学习的设置中,主动学习可以用于逐步增加有标签数据集的大小。通过精心选择哪些无标签样本进行标注,主动学习可以在保持标注成本较低的同时,显著提高模型的性能。
总的来说,纯半监督学习、直推学习和主动学习都是利用有标签和无标签数据来提高模型性能的方法,但它们在如何使用这些数据以及追求的目标上有所不同。纯半监督学习注重模型的泛化能力,直推学习关注特定样本的预测性能,而主动学习则通过主动选择样本进行标注来优化模型。
2.生成式方法
生成式方法的核心点在于它假设所有数据(无论是否有标签)都是由一个潜在的概率模型生成的。这个模型描述了数据的联合概率分布P(x, c),其中x是特征,c是类别标签。生成式方法的目标是学习这个潜在模型的所有参数,包括那些与无标签数据相关的参数。
在生成式方法中,无标签数据被用来揭示数据的底层结构或分布,这有助于模型更好地理解数据的整体特性。通过结合有标签数据和无标签数据,生成式方法能够构建一个更全面的模型,该模型不仅能够对已标记的数据进行分类,还能够对未标记的数据进行预测。
具体来说,生成式方法通常涉及以下步骤:
-
模型假设:首先,需要假设一个生成式模型来描述数据的联合概率分布P(x, c)。这个模型可以是任何适合数据的概率模型,如高斯混合模型(GMM)、朴素贝叶斯等。
-
参数学习:然后,使用有标签数据和无标签数据来学习模型的参数。这通常涉及使用EM算法或其他优化技术来最大化数据的似然性。在EM算法的上下文中,E步用于估计无标签数据的类别概率,而M步用于更新模型参数以最大化似然函数。
-
分类器构建:一旦模型参数被学习,就可以使用这些参数来构建分类器。分类器基于条件概率分布P(c|x)进行预测,该分布可以从学习到的联合概率分布P(x, c)中推导出来。
需要注意的是,生成式方法的性能在很大程度上取决于所选择的模型假设是否与实际数据分布相匹配。如果模型假设不准确,那么利用无标签数据可能会降低模型的泛化性能。因此,在选择生成式方法时,需要仔细考虑数据的特性和领域知识,以确保模型假设的合理性。
3.半监督SVM
半监督支持向量机(Semi-Supervised Support Vector Machine,简称S3VM)是支持向量机在半监督学习上的推广。与传统的监督SVM不同,S3VM通过结合有标签数据和无标签数据来提高分类器的性能。
在不考虑未标记样本时,支持向量机试图找到最大间隔划分超平面。而在考虑未标记样本后,S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面。其基本假设是“低密度分隔”,这是聚类假设在考虑了线性超平面划分后的推广。
S3VM的基本思想和步骤如下:
- 利用有标签的数据训练传统的监督SVM,得到一个初步的决策边界。
- 利用未标签的数据,尝试优化在第一步得到的分类器。这通常通过在决策边界周围引入一些未标签样本来实现。
- 通过半监督优化的方式,最小化有标签样本的分类误差,并在同时最大化未标签样本对分类边界的贡献。这可以通过各种技术来实现,如转导支持向量机(Transductive Support Vector Machines,TSVM)。
- 重复上述步骤,直到模型收敛或达到预定的迭代次数。
需要注意的是,引入未标签样本可能会增加过拟合的风险,因此在使用S3VM时需要注意模型的泛化能力。此外,S3VM的目标是在减少对标签的依赖性的同时提高分类性能,这使得它在处理部分标记数据时具有优势。
4.图半监督学习
图半监督学习(Graph-Based Semi-Supervised Learning)是半监督学习的一个分支,它利用图结构来表示数据之间的相似性和关系。在这种方法中,数据点被表示为图中的节点,而节点之间的边表示数据点之间的相似性。标签信息可以从已标记的节点传播到未标记的节点,从而利用未标记数据来提高分类器的性能。
图半监督学习通常基于以下假设:相似的数据点应具有相似的标签。为了利用这个假设,图半监督学习算法定义了一个相似度矩阵,用于度量数据点之间的相似性。然后,根据相似度矩阵和已标记数据的标签信息,算法构建一个图模型,并通过优化目标函数来学习未标记数据的标签。
图半监督学习的核心点:
-
图结构表示:图半监督学习将数据表示为图结构,其中节点代表数据点,边代表数据点之间的相似性。这种表示方法能够捕捉数据之间的复杂关系。
-
相似度度量:在图半监督学习中,定义相似度矩阵是关键。这个矩阵度量了数据点之间的相似性,是后续标签传播和模型构建的基础。
-
标签传播:已标记数据的标签信息通过图结构传播到未标记数据。这通常是通过迭代过程实现的,其中标签根据数据点之间的相似性逐渐传播到整个图。
-
利用未标记数据:图半监督学习的目标是通过结合有标签数据和无标签数据来提高分类性能。未标记数据通过图结构中的相似性关系被有效地利用起来。
5.基于分歧的方法
基于分歧的方法(Disagreement-Based Methods)是半监督学习中的一种常用策略,它主要利用多个学习器之间的分歧或差异来优化模型的性能。这种方法的核心思想是,当不同的学习器对同一个未标记样本的预测结果存在分歧时,这个样本很可能位于分类边界附近,因此具有较高的信息量。通过合理地利用这些分歧,我们可以提高模型的泛化能力和鲁棒性。
基于分歧的方法通常涉及以下步骤:
-
学习器的生成:首先,需要生成多个不同的学习器。这些学习器可以是同质的(如多个决策树或神经网络),也可以是异质的(如决策树、支持向量机和朴素贝叶斯的组合)。每个学习器都应该具有一定的预测能力,并且它们之间应该存在分歧。
-
分歧的度量:接下来,需要定义一个度量标准来衡量学习器之间的分歧程度。常见的度量标准包括投票熵、KL散度、欧氏距离等。这些度量标准可以帮助我们识别出那些在学习器之间存在较大分歧的样本。
-
样本的选择与利用:基于分歧的方法通常倾向于选择那些分歧较大的样本进行标记或加入训练集。这是因为这些样本往往位于分类边界附近,对于提高模型的性能具有重要意义。一种常见的做法是使用查询策略来选择最具信息量的样本进行标记,然后将这些样本加入训练集以更新模型。
-
模型的更新与优化:在利用分歧样本更新模型时,可以采用各种策略,如集成学习、协同训练等。集成学习通过结合多个学习器的预测结果来提高整体性能,而协同训练则通过迭代地选择分歧样本进行标记和更新模型来逐步优化性能。
想象你和你的朋友们在玩“夺旗”游戏,其中操场被划分为两个领土。领土之间的确切边界没有明确标出,对于一个特定的点是属于哪个领土,你的朋友们有争议。这个点,就像一个未标记的样本,因为其位置(靠近有争议的边界)可能极大地影响游戏的结果。如果你能准确确定这个点属于哪个领土,你就可以做出更好的战略决策。
在机器学习中,学习器(或模型)正尝试对数据点进行分类(就像确定那个点属于哪个领土)。当不同模型对同一个数据点做出不同分类预测时,这表明该数据点位于分类边界附近——模型不确定它属于这个类别还是那个类别的地方。这种不确定性是有信息量的,因为靠近边界的数据点是模型难以分类的,它们提供了有价值的信息,关于边界实际上可能在哪里,帮助进一步完善模型。
本质上,如果多个学习器对一个样本的分类存在分歧,这表明该样本提供了一个很好的学习机会。正是这些具有挑战性的、靠近边界的样本可以通过提供关于决策边界应如何调整的见解来帮助改进模型。识别并专注于这类样本允许更有效的学习和模型改进,特别是在标记数据稀缺但对准确定义分类边界至关重要的情景中。
6.半监督聚类
半监督聚类是一种结合了监督学习和无监督学习的方法,它利用少量的有标记数据和大量的无标记数据来进行聚类分析。与传统的无监督聚类相比,半监督聚类可以利用先验知识或领域信息来指导聚类过程,从而获得更准确的聚类结果。
半监督聚类的基本思想是利用有标记数据来初始化或约束聚类过程,然后利用无标记数据来进一步优化聚类结果。这种方法可以在一定程度上解决无监督聚类中由于数据分布复杂或存在噪声等问题导致的聚类效果不佳的问题。
基于约束的方法
基于约束的半监督聚类方法利用有标记数据提供的约束条件来指导聚类过程。这些约束条件可以分为两类:
-
必连约束(Must-Link Constraints):如果两个样本属于同一类别,则它们必须在聚类结果中被分配到同一个簇中。这种约束通常用于确保已知属于同一类别的样本不会被错误地分开。
-
勿连约束(Cannot-Link Constraints):如果两个样本属于不同的类别,则它们必须在聚类结果中被分配到不同的簇中。这种约束用于防止已知属于不同类别的样本被错误地聚集在一起。
基于距离的方法
基于距离的半监督聚类方法利用有标记数据和无标记数据之间的距离信息来优化聚类结果。这种方法通常包括以下步骤:
-
初始化:使用有标记数据作为种子点来初始化聚类中心。这些种子点可以是已知类别的样本的中心点或其他代表性点。
-
距离度量:计算无标记数据与初始化聚类中心之间的距离。这通常使用欧氏距离、余弦相似度等度量方法来完成。
-
迭代优化:根据距离度量结果,将无标记数据分配到最近的聚类中心所在的簇中。然后,根据新的簇成员更新聚类中心的位置,并重复此过程直到满足收敛条件(如达到最大迭代次数或聚类中心的位置变化小于某个阈值)。