前言

这里有一个简单的综述:计算机视觉中的半监督学习:计算机视觉中的半监督学习 - 知乎

大致介绍了半监督学习技术(SSL)在CV领域是如何被使用的。

仔细读一读,你会发现其实这些方法都是基于上两篇文章中提到的基础理论:增强的方法对应着协同训练中的“尽可能地令数据的视角不同”,student和teacher网络对应着协同训练中的多个分类器互相辅助。

我在这里结合一些实际工作再详细论述下半监督学习在CV领域使用的意义、现状、以及可能的改进方向。

cv引入semi-supervised的意义

DNN显著提高了各种计算机视觉应用的性能。为了避免过拟合,需要大量的准确标记的数据。但往往大量标记的数据的获取需要耗费大量的人力和物力,且有时可能根本无法获取充足的有标记的数据。因此,一个顺理成章的想法是:是否可以利用这些未标记的数据。以上所述即是SSL问题的意义和大致思路。

简单说就是两点:未标记样本具有重要意义,SSL可以有效利用;解决少样本学习任务(FSL)更靠谱点。

半监督学习的现实需求非常强烈,因为在现实应用中往往能容易地收集到大量未标记样本,而获取"标记"却需耗费人力、物力。例如,在进行计算机辅助医学影像分析时,可以从医院获得大量医
学影像,但若希望医学专家把影像中的病灶全都标识出来则是不现实的"有标记数据少,未标记数据多 "这个现象在互联网应用中更明显,例如在进行网页推荐时需请用户标记出感兴趣的网页,但很少有用户愿花很多时间来提供标记,因此,有标记网页样本少,但互联网上存在无数网页可作为未标记样本来使用。半监督学习恰是提供了一条利用"廉价"的未标记样本的途径。---引自周老师《机器学习》

未标记样本存在的意义

事实上,未标记样本虽未直接包含标记信息?但若它们与有标记样本是从同样的数据源独立同分布来样而来,则它们所包含的关于数据分布的信息对建立模型将大有禅益。图给出了一个直观的例示。若仅基于图中的一个正例和一个反例,则由于待判别样本恰位于两者正中间,大体上只能随机猜测;若能观察到图中的未标记样本,则将很有把握地判别为正例。---引自周老师《机器学习》

半监督目标检测算法_半监督目标检测算法

SSL的几种基本方法

大致可分为纯(pure)半监督学习和直推学习(transductive learning),不做特殊说明时,不区分两者。

SSL可分为一下几类解决途径:生成式方法、半监督SVM、图半监督学习、基于分歧的方法和半监督聚类方法。

生成式方法假设所有数据(无论是否有标记)都是由同一个潜在的模型" 生成 "的。这个假设使得我们能够通过潜在模型的参数将未标记数据与学习目标联系起来,而未标记的数据的标记则可看做是模型的缺失参数,通常基于EM算法进行极大似然估计求解。

半监督支持向量机 (Semi-Supervised Support Vector Machine,简称S3VM) 是支持向量机在半督学习上的推广,在不考虑未标记样本时,支持向量机试图找到最大间隔划分超平面,而在考虑未标记样本后,S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面,如图所示,这里的基本假设是"低密度分隔" (low-density separation) ,显然,这是聚类假设在考虑了线性超平面划分后的推广。

半监督目标检测算法_SSL_02

图半监督学习:给定一个数据集,我们可将其映射为一个图,数据集中每个样本对应于图中一个结点,若两个样本之间的相似度很高(或相关性很强),则对应的结点之间存在一条边,边的"强度" (strength) 正比于样本之间的相似度(或相关性) 。我们可将有标记样本所对应的结点想象为染过色,而未标记样本所对应的结点尚未染色。于是,半监督学习就对应于"颜色"在图上扩散或传播的过程。由于一个图对应了一个矩阵,这就使得我们能基于矩阵运算来进行半监督学习算法的推导与分析。

基于分歧的方法 (disagreement- based methods) 使用多学习器,而学习器之间的分歧disagreement亦称diver­sity,对未标记数据的利用至关重要。基于分歧的半监督学习在上一篇博客中所有提及,这里不再详细论述。

聚类是一种典型的无监督学习任务,然而在现实聚类任务中我们往往能获得一些额外的监督信息,于是可通过半监督聚类 (semi-supervised clustering) 来利用监督信息以获得更好的聚类效果。聚类任务中获得的监督信息大致有两种类型。第一种类型是"必连"(must-link) 与"勿连" ( cannot-link) 约束,前者是指样本必属于同一个簇,后者是指样本必不属于同一个簇。第二种类型的监督信息则是少量的有标记样本。约束k均值 (Constrained k-means) 算法是利用第一类监督信息的代表。第二种监督信息是少量有标记样本,这很容易利用,直接将它们作为"种子",用它们初始化 k 均值算法的k个聚类中心。并且在聚类簇迭代更新过程中不改变种子样本的簇隶属关系。这样就得到了约束种子k均值 (Constrained Seed k-means) 算法。

图像分类中的应用

SSL受到越来越多的关注,因为它提供了使用未标记数据的有效方法,以促进使用有限标记数据的学习模型。现有的SSL方法大多集中于图像分类任务,已存在多种学习策略,比如自训练(self-training)和协同训练(co-training)。

最近一致性损失半监督技术(consistency loss)也较为流行。大致可分为两类:1. 采用集成学习,强制未标记的数据的预测在多个模型中保持一直。2. 讲模型预测限制为对噪声保持不变。

SSL的另一个较为热门的研究方向是更有效的数据扩充,以提高模型的泛化性和鲁棒性,其中一些基于学习和更复杂的数据扩充策略的工作极大地提高了SSL在图像分类任务中的性能。

目标检测中的应用

SSL尽管图像分类任务中取得了不错的性能结果,但是在目标检测领域,SSL的应用还较少,人们的探索还不够深入。

半监督学习目标检测,semi-supervised object detection(SSOD)工作中目前有一个STAC取得了不错的性能结果,可以证明其明显优于纯监督任务。

但STAC的训练过程复杂且效率较低。在训练STAC之前需要训练一个teacher模型,然后利用teacher模型生成未标记数据的伪标签(pseudo label)。其次,在模型训练期间,已生成的伪标签将不再更新,常量标签将限制其性能。但两点到底算不算是其劣势还有待讨论,只是一般这么认为。