半监督学习
1. 半监督学习
D
L
=
(
(
x
i
,
y
i
)
)
i
=
1
l
,
x
i
∈
X
D_{L}=\left(\left(x_{i}, y_{i}\right)\right)_{i=1}^{l}, x_i \in \mathcal{X}
DL=((xi,yi))i=1l,xi∈X 表示带标签的数据, 其中
x
i
x_i
xi来自输入空间
X
\mathcal{X}
X。
D
U
=
(
x
i
)
i
=
l
+
1
l
+
u
D_{U}=\left(x_{i}\right)_{i=l+1}^{l+u}
DU=(xi)i=l+1l+u 表示无标签的数据。
半监督区别于有监督的学习,是除了会使用到带标签的数据训练之外,还会额外的将不带标签的测试集的数据放到模型中去训练(这里不一定是测试集数据,可能是无标签的训练集数据)。
1.1 三个假设
1.1.1 平滑假设
在空间中相邻的两个点标签应该是相同的。这个假设在有监督学习中也存在,但是在半监督学习中得到了拓展,对于无标签的点也适用。举个例子,空间中有三个点 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3, 其中 x 1 x_1 x1有标签,其余的两个点没有标签。 x 2 x_2 x2与 x 1 x_1 x1相邻, x 3 x_3 x3与 x 2 x_2 x2相邻,且 x 3 x_3 x3与 x 1 x_1 x1不相邻,那么从假设中我们可以推出 x 3 x_3 x3应该与 x 1 x_1 x1的标签一致。也就是说标签通过 x 2 x_2 x2,传递到了 x 3 x_3 x3。
1.1.2 低密度假设
低密度假设意味着分类器的决策边界应该优选地通过输入空间中的低密度区域。换句话说,决策 边界不应通过高密度区域。
1.1.3 流形假设
在数据可以在欧几里得空间中表示的机器学习问题中,在高维输入空间
R
d
\mathbb{R}^d
Rd 中观察到的数据点通常集中在低维子结构中。这些子结构被称为流形:局部欧几里得的拓扑空间。
半监督学习中的流形假设指出:
- 输入空间由多个低维流形组成,所有数据点都位于这些流形上。
- 位于同一流形上的数据点具有相同的标签。
1.1.4 聚类假设
在半监督学习研究中,通常包含一个额外的假设是集群假设,它指出属于同一集群的数据点属于同一类。然而,我们认为,前面提到的假设和集群假设并不是相互独立的,而是集群假设是其他假设的概括。
换句话说:如果数据点(未标记和已标记)无法进行有意义的聚类,则半监督学习方法不可能改进监督学习方法。
1.2. 评估半监督学习算法
在监督学习中,这些包括数据集的选择,将这些数据集划分为训练集、验证集和测试集,以及调整超参数的程度。在半监督学习中,其他因素会发挥作用。首先,在许多基准测试场景中,必须决定哪些数据点应该被标记,哪些应该保持未标记。其次,可以选择在用于训练的未标记数据(根据定义,在直推学习中就是这种情况)或完全不相交的测试集上评估学习器的性能(归纳学习)。此外,重要的是建立高质量的监督基线,以便正确评估未标记数据的附加值。在实践中,过度限制评估范围可能会导致对学习算法性能的不切实际的看法。
正如在实践中所观察到的,数据集的选择及其划分会对不同半监督学习算法的相对性能产生重大影响。为了对半监督学习算法进行真实的评估,研究人员因此应该在具有不同数量的标记和未标记数据的不同数据集上评估他们的算法。
他们报告了大多数算法的显着性能改进,并观察到错误率通常会随着添加更多未标记数据点而下降(不删除任何标记数据点)。仅当标记数据中存在的类别与未标记数据中存在的类别不匹配时,才会观察到性能下降。这些结果确实很有希望:它们表明,在图像分类任务中,神经网络可以使用未标记的数据来持续提高性能。对于未来的研究来说,调查其他类型的数据是否也可以获得这些一致的性能改进是一个有趣的途径。
2. 半监督学习算法分类
其中归纳方法(Inductive)是以预测样本空间所有看不到的点为目标,而直推学习(transdective)是以预测测试集中无标签数据为目标。
2.1 Inductive methods
2.1.1. Wrapper methods
综述中,表述为包装方法,其实是说这一类方法是通过一组有监督的分类器通过有标签数据训练,然后预测无标签数据,最后将最自信的样本打上伪标签,并加入到分类器训练中。
2.1.1.1 Self-training
选用一个有监督的模型,在开始的时候只用存在的有标签数据进行训练。训练好之后,在每次迭代过程中加入最自信的样本打上伪标签,此时的训练数据包含原始的有标签数据以及有标签数据,直到所有无标记数据都打上伪标签。
缺点:
从这里可以知道,自训练的缺点,就是正向反馈,随着伪标签数据的加入,错误可能越滚越大。
Self-training methods (sometimes also called “self-learning” methods) are the most basic
of pseudo-labelling approaches (Triguero et al. 2015).
Notice: 注意这里,自训练只是伪标签技术的一种。其中,自训练是每次加入伪标签重新训练,而伪标签技术是在已有模型上加入伪标签进行微调
,这一点原文中描述偏离了包装方法
的范式(有监督模型区分了伪标签和已有标签)。
2.1.1.2 Co-Training
协同训练是自我训练对多个监督分类器的扩展。在协同训练中,两个或多个监督分类器在标记数据上进行迭代训练,在每次迭代中将它们最可靠的预测添加到其他监督分类器的标记数据集中。要使协同训练成功,重要的是基础学习器在其预测中的相关性不要太强。如果是这样,那么它们相互提供有用信息的潜力就会受到限制。在文献中,这种情况通常被称为多样性标准。
Zhou and Li (2010) provided a survey of semi-supervised learning methods relying on multiple base learners.(分歧)
2.1.1.2.1 Multi-view co-training
Blum 和 Mitchell (1998) 提出了协同训练的基本形式。在他们的开创性论文中,他们提议构建两个分类器,这些分类器在给定数据的两个不同视图(即特征子集)上进行训练。(Notice:
这个应该算是协同训练的开山之作。)
2.1.1.2.2 Single-view co-training
实际上,平时我们接触到的数据集都是单视图下的数据,如下,也有研究将单视图数据转化为多视图的方法。Du (2011) 研究了实证方法,以确定充分性和独立性假设在多大程度上成立。他们提出了几种将特征集自动拆分为两个视图的方法,并表明由此产生的经验独立性和充分性与协同训练算法的性能正相关,表明优化充分性和独立性的特征分割会导致良好的分类器。
Zhou and Li (2005b)提出了tri-training
,其中三个分类器交替训练。
Li and Zhou 2007拓展超过三个模型来做协同训练,该模型被称为co-forest
。感觉上这里已经不好下手了,甚至对于伪标签都提出了再过滤的方法。
2.1.1.2.3 Co-regularization
Co-training methods reduce disagreement between classifiers by passing information between them, in the form of pseudo-labelled data.
2.1.1.2 Boosting
这个分类是说将监督学习中的集成学习用在半监督学习中。其中,有两类:
bagging:
对于每个基学习器选用原数据中的一部分(随机采样)来训练,基学习器之间是独立的。这个满足了协同训练的基础,原文中没在赘述。boosting:
每个基学习器都用完整的数据集训练,最终结果通过基学习器的加权和来算。
F T − 1 ( x ) = ∑ t = 1 T − 1 α t ⋅ h t ( x ) F_{T-1}(\mathbf{x})=\sum_{t=1}^{T-1} \alpha_{t} \cdot h_{t}(\mathbf{x}) FT−1(x)=t=1∑T−1αt⋅ht(x)
半监督 + 多分类
半监督 + 多标签
2.1.2 Unsupervised preprocessing
2.1.2.1 Feature extraction
最近的半监督特征提取方法主要集中在使用深度神经网络寻找输入数据的潜在表示。最突出的例子是自动编码器(autoencoder
):具有一个或多个隐藏层的神经网络,其目标是重建其输入。
2.1.2.2 Cluster-then-label
聚类和分类传统上被认为是相对不相交的研究领域。然而,许多半监督学习算法使用聚类原理来指导分类过程。聚类然后标记方法形成一组明确加入聚类和分类过程的方法:它们首先将无监督或半监督聚类算法应用于所有可用数据,并使用生成的聚类来指导分类过程。
2.1.2.3 Pre-training
在预训练方法中,未标记的数据用于在应用监督训练之前将决策边界引导到可能感兴趣的区域。
这种方法自然适用于深度学习方法,其中分层模型的每一层都可以被认为是输入数据的潜在表示。与这种范式相对应的最常见的算法是深度信念网络(deep belief networks
)和堆叠自动编码器(stacked autoencoders
)。这两种方法都基于人工神经网络,旨在使用未标记数据将网络的参数(权重)引导到模型空间中的感兴趣区域,然后使用标记数据对参数进行微调。