论文部分内容阅读
随着计算能力的提高和越来越多的新算法被提出,机器学习技术已经开始广泛地应用在实际生活中,而相比于实验室环境,在将机器学习算法应用到现实场景时,我们仍然面临着很多需要解决的问题。例如,对于分类任务来说,标准的分类模型都是基于一个前提假设,即所有测试样本所属的类别在训练时都已经观察过,也就是具有所谓的“封闭”属性。然而更加符合实际情况的是,我们收集的数据集常常是动态变化的,可能会不断地发现新类别样本并需要将它们添加到已有数据集中,这就导致训练样本集可能无法覆盖到所有的类别信息,也就是真实应用场景往往具有“开放”属性。因此,在将标准模型用于现实场景时,很可能会出现训练过程中没有遇到过的类别样本,这就要求分类模型具有处理各种未知新类别的能力。此外,随着移动互联网和社交媒体的发展,收集到的可用数据也越来越多,并且出现了大量的实时流式数据,其特点是数据量大,数据产生速度快,并且潜在分布也可能随着时间而发生变化,对这类数据的学习也成为了亟待解决的问题。然而,因为流式数据本身的特点,很多传统的离线学习算法变得不再适用。本文针对数据流场景下的“开放”学习问题,通过分析和研究竞争学习过程,提出了两种不同设定下的开放学习算法,它们能够在流式数据集上进行训练,得到的分类模型在测试时能够处理可能出现的训练过程中没有覆盖到的未知类别样本。我们在人工数据集和真实数据集上将本文提出的“开放”学习算法与现有算法进行了对比实验,验证了算法的有效性。本文的主要工作包括:·阐述了需要开放学习算法的原因,然后对当前开放场景下的学习算法进行了总结,并分析了它们各自的优缺点和应用场景。·提出了一种基于单类学习的开放学习算法,将感兴趣的已知类别作为目标类,所有其他类别(包括已知类别和未知类别)作为非目标类,之后通过在目标类的样本数据流上训练单类模型来判断测试样本是否属于感兴趣的类别。·提出了一种基于分布学习的开放学习算法,首先通过无监督学习得到数据流的分布模型,然后利用样本的标记信息来区分各个分布区域。最终,我们得到了一个适用于数据流的开放学习模型,该模型能够判断测试样本属于哪种已知类别或者是属于某个未知类别。