论文解读:Semi-Supervised Time Serices Classification

背景介绍

        时间序列分类近几年很被注重,对它的研究也是普遍存在的,但目前的很多方法都受到了需要大量标记的训练数据的限制。实际上,收集这些数据可能非常困难或昂贵。例如,可能需要心脏病专家,太空发射技师,昆虫学家或其他领域专家的时间和专业知识来手动标记数据。
        但是在许多领域,有很多未标记的数据是开放的,比较容易获取,基于此,本文提出了使用半监督学习技术来建立时间序列分类器,充分利用大量未标记数据。虽然这些算法在文本域中是众所周知的,但必须特别考虑的是使它们对时间序列域有效。作者通过对各种数据源(包括心电图,手写文档,制造和视频数据集)的全面实验来评估所做的工作。实验结果表明,半监督学习只需要少量标记的例子就可以构建精确的分类器。

稍后将用到的应用

  1. 手写文档索引

也就是将手写文档存档,以提供手写搜索功能。将单词看作时间序列,是一种很强大的对手写文档分类的方法。创建高度精确的手写分类器的根本问题是必须对每个人的特定笔迹进行训练。然而,对于每个人来说,获得每个单词的标记数据的成本在时间上是非常昂贵的。

    这时候用户仅注释几个训练样例的半监督方法将具有很大的实用性。

  1. 心跳分类器

如前所述,PhysioBank archive包含超过40gb的免费医疗数据,包括脑电图、步态和心电图数据。对于希望构建分类器的研究人员来说,这样的大型数据集是潜在的金矿。然而,这些数据只注释了一小部分。此外,与手写一样,某种程度的个性化在这里也是适用的。
    这时候由心脏病专家注释几个训练例子的半监督方法,可能非常有用。

无标记数据的价值

        虽然没有标记的数据通常不足以产生比随机猜测更好的分类,但它们确实包含有助于分类的信息。在这里有一个只有三个标记实例的数据集F1,M1,M2,还有八个未标记实例(U)。我们需要对标记为“?”的实例进行分类,这显然属于F类。然而,这张特殊的图片恰好显示了行动者的姿势非常类似于M(男性)实例之一M1,因此被错误地分类到M。

        虽然F1与等待分类的实例不是紧密匹配的,但它与未标记的实例U4是紧密匹配的。因为它与这个实例非常匹配,所以我们可以简单地将标签从U4更改为F2,并将其添加到已标记实例的数据集中。实际上,半监督学习的基本原则是我们可以重复这样做,从而得到如图3所示的情况。

        需要注意的是,未标记数据的有用性取决于一个关键的假设,即底层模型/特性/内核/相似性函数与当前的问题很好地匹配。否则,添加未标记的数据可能会降低分类器的性能。

半监督学习

        从标记的和未标记的数据中学习称为半监督学习(SSL)。由于半监督学习需要较少的人力投入,且一般能达到较高的精度,因此在理论和实践上都具有重要的意义。目前,文献中提出了许多半监督学习方法。基于它们的基本假设,可以将它们组织成五类:具有生成模型的SSL、具有低密度分离的SSL、基于图的方法、协同训练方法和自训练方法。

具有生成模型的SSL

是最古老的半监督学习方法。它假设这些数据来自一个混合分布,可以通过大量未标记的数据来识别。生成方法的优势在于,数据结构的知识可以自然地整合到模型中。它已被应用于文本分类和人脸识别等多个领域。然而,文献中还没有对时间序列数据的混合分布假设进行讨论。

低密度分离方法

试图利用“决策边界应该位于低密度区域”的假设,将决策边界推离未标记的数据。实现这一目标的最常见方法是使用边际最大化算法,如转换支持向量机(TSVM)。由于求解TSVM的精确解是np困难的,提出了几种近似算法。然而,时间序列的独特结构使得密度测量的意义不大。

基于图的半监督学习方法

基于“高维数据大致位于低维流形上”的假设,这些方法以图中节点表示数据,节点之间的距离为边。该方法的关键问题是,由于它编码了先验知识,因此需要为每个领域手工构造图。在本文中,我们正在寻找一个一般的半监督分类框架的时间序列,所以我们不考虑基于图的方法。

协同训练方法

将数据的特征划分为两个不相交的集合,每一个集合都足以训练一个好的分类器。在每个特征子集上分别训练两个分类器,利用其中一个分类器的预测来扩大另一个分类器的训练集。例如,在图2中我们设计的问题中,一个分类器可以使用形状特征,而另一个分类器只能使用颜色特征。联合训练方法的基本假设是数据的特征是独立的,可以分割的。然而,时间序列具有很高的特征相关性,这使得联合训练方法对这类数据不可行。

自我训练方法

是研究最少的半监督学习方法之一。在自训练中,首先用少量的标记数据训练分类器。然后对未标记的数据进行分类,并将最确定的分类实例(以及它们的预测标签)添加到训练集中。分类器实际上是利用自己的预测来自学。

由于它的普遍性和很少的假设,我们使用自我训练作为我们工作的起点。

时间序列分类

正式讨论时间序列的半监督分类,为了具体起见,首先定义感兴趣的数据类型。

定义1   时间序列::T = t1,…,tm是m个实值变量的有序集合。

  时间序列数据通常有两种格式:
  长时间序列(例如,8小时的心跳记录)或一组短时间序列(例如,一组个体异常心跳)。
  数据挖掘器通常对时间序列的任何全局属性都不感兴趣。例如,如果给我们8小时的心电数据,我们对整个时间序列的分类不感兴趣;
  相反,我们感兴趣的是判断每一小节是正常的还是异常的。
  因此,如果给定一个长时间序列,我们把它转换成一个短时间序列集合,其中集合中的每个时间序列都是长时间序列的子序列。

定义2   子序列: 给定一个长度为m的时间序列T,子序列Cp (T)是对T中相邻位置长度w < m的采样,即1≤p≤m - w + 1取Cp = tp,…,tp+w-1。利用滑动窗口从时间序列中提取子序列。

定义3   滑动窗口: 给定一个长度为m的时间序列T,和一个用户定义的子序列长度为w的子序列,所有可能的子序列都可以通过在T上滑动一个大小为w的窗口,来提取每个子序列的Cp

定义4   欧氏距离: 给定长度为n的Q和C两个时间序列(或时间序列子序列),它们之间的欧几里得距离为每对对应数据点之间差的平方和的平方根。

  在调用距离函数之前,将每个时间序列子序列标准化为均值为0,标准差为1,因为大家都知道,在几乎所有的设置中,用不同的偏移量和振幅来比较时间序列是没有意义的。

定义5   时间序列分类: 给定一组未标记的时间序列,时间序列分类的任务是将每个时间序列映射到一个预定义的类。作者认为,时间序列分类问题的实际情况更像文本过滤问题基于两个重要方面:

  通常情况下,我们会有一个拥有一些相似结构的正样例(它们组成了正类),以及很少或者几乎没有共同结构的负样例;
  没有给负样本定义良好的结构,原因在于进行滑动窗口抓取子序列的时候,认为序列要么属于正类,要么属于负类,很显然,我们不能简单地认为不是正类的序列彼此之间完全相似,所以负类没有一个统一的结构。
  结果就是,通常只有一种途径划分到正类中,但是会有多种途径划分到负类。
  与文本过滤一样,通常情况下,带正面标签的例子很少,但未带标签的数据非常丰富。例如,心电数据往往在夜间患者睡眠时连续采集,这使得实时注释几乎不可能。通常心脏病学家最多只记录心电图数据的前五分钟。

半监督学习分类器

1. 介绍一个最近邻分类器

欧式距离分类器的最近邻:
    时间序列分类问题近年来引起了人们的极大兴趣。虽然已有许多算法被提出,但结果表明,具有欧氏距离的最近邻是很难被打败的,并且具有欧氏距离的最近邻是无参数的。

2. 训练分类器

        采用具有欧氏距离的最近邻分类器作为基分类器。需要注意的是,它还需要一个大的标记训练集才能很好地工作。下面将展示如何应用半监督学习,使其适用于只有一小组标记数据可用的情况。这个想法很简单。我们让分类器通过以下步骤来训练自己:

(1) 分类器在初始训练集上进行训练,其中所有带标记的实例都是正的,所有未带标记的实例都被视为负的。注意,训练集的大小在训练过程中没有变化,但是标记的集合是逐渐增大的。

(2) 分类器用于对训练集中的未标记数据进行分类。对于每个未标记的实例,我们在训练集中找到其最近的邻居。如果其最近的邻居被标记,则该实例被分类为正。否则,分类为负。

(3) 在所有未标记的实例中,我们最有把握将其归类为正的实例是最接近标记为正的那些实例。将该实例及其新获得的正标签添加到正集合中。调整训练集后,回到(1)对分类器进行细化。该过程重复,直到某个停止条件为止。

        这个想法的直觉很简单。标记为正的例子作为一个模型,它描述了一个正的例子“看起来像什么”。如果一个未标记的实例与一个正的示例非常相似,通过向正向集合中添加这样一个示例,我们细化对正向类的描述,这将有助于对未标记的数据进行分类。
        希望建模过程和分类过程能够迭代地相互加强,并正确地标记尽可能多的正面示例。

2.1 停止标准

        一个自训练分类器只需要少量的带标签的样本就可以达到很高的精度。在本节中,将讨论训练分类器的停止标准。
       理想情况下,我们希望当分类器的性能开始恶化时,训练过程停止。然而,要知道分类器的真实性能是非常困难的,因为我们不知道数据的基本事实。在本例中,我们使用基于距离的分类器。通过距离统计,可以给我们一些关于分类器做得有多好的提示。对几个数据集执行自训练分类,并查看标记为正集的两个实例之间的最小距离。
       在训练过程的每次迭代,我们记录了precision-recall平衡点和标记为正类集中最近一对样本之间的距离。

在前几次迭代过程中,已标记为正的数据集相对较小,已知为正类的空间相对稀疏。通过加入更多的正样本,空间会变得更加密集,最小近邻距离逐渐减小。
在某一时刻,正例的最近对被纳入到标记集中。最小的最近邻距离将是它们之间的距离。增加更多的正面例子不会改变最小距离(这对应于稳定阶段)。
然而,如果一个负面例子被标记为正,我们很有可能会继续添加负例,因为负面空间比正面空间密度大得多。标记为正的集合中最近的一对是两个负的例子。因此,我们将看到正集最小近邻距离的下降。

       在其他数据集上也进行了类似的观察。这表明,尽管什么时候停止自训练过程的问题仍然没有解决,而且是一个开放的问题,但是在大多数情况下,我们可以使用标记为正的集合中最小近邻距离的变化作为一个很好的启发式。

3. 使用分类器

在训练结束时,训练集中更多的数据被标记,我们可以使用分类器对其他数据集进行分类。乍一看,这很简单。对于要分类的每个实例,检查其训练集中最近的邻居是否被标记,并为其分配相应的类标记。然而,回想一下训练集是巨大的,将测试集中的每个实例与训练集中的每个实例进行比较在实践中是站不住脚的。

为了使分类易于处理,我们修改了最近邻分类器的分类方案,只使用训练集中标记为正的实例。如果要分类的实例距离任何标记为正的实例都在r范围内,则将其分类为正,否则就是负的。
r的自然值是一个正例子到它最近邻居的平均距离。直觉告诉我们,如果我们之前看到的正面例子往往与r有关,那么未来的正例对象很可能也在训练集中一个(或多个)正面例子的r之内。矛盾的一点是,通过使用半监督算法极大地增大带标记的正集的大小,同时,我们也将大大增加对新实例进行分类的时间。幸运的是,我们可以利用基于包络线的下界技术来加快分类过程。

4. 实证评估

        在本节中,我们使用一组在不同领域的全面实验来测试我们的半监督学习分类器。我们将半监督方法与朴素的k最近邻方法进行比较,其中标记为正的集合的k个最近邻被分类为正,其他被分类为负。
        k的设置是一个重要的问题,由于分类器提前不知道测试集中有多少正样本。为了达到最佳的性能,我们可以搜索所有可能的k值,并只报告最好的结果。
        在每次迭代中,分类器的性能都是使用Precision-recall平衡点来报告的。由于类分布存在高度偏差,因此准确性不是一个好的性能指标。该分类器可以简单地将所有事物分类为负,以保证较高的精度。注意,Precision-recall平衡点是一种用于二分类的标准信息检索度量。

Precision-recall平衡点是当precision和recall相等的点。它是所有二进制分类任务的一个性能值,并且对类的分布不敏感。为了实验的简单性,作者并没有评估上一节中描述的停止启发式。只是不断地训练分类器,直到它达到最高的Precision-recall,并允许在此之后进行更多的迭代。对于大多数实验,我们使用不同的训练集和测试集。对于太小而无法分割的集合,我们在同一个数据集上对它们进行训练和测试。然而,我们注意到对训练集进行分类仍然很重要,因为训练集中的大多数数据都没有标记。

4.1 ECG数据集

ECG数据集中的每一个数据都是在一次心跳期间的时间序列,这些数据已经由心脏病专家进行了注释,并为每个数据记录分配了一个“正常”或“异常”的标签。在数据集中的2026条数据记录中,520条被识别为异常,1506条被识别为正常。所有的数据记录都已标准化并重新调整长度为85,我们随机分割数据,一半用于训练,一半用于测试。

对于半监督方法,我们在训练集中随机选取10个正样本作为初始标记的正样本集P。在每次迭代中,半监督算法在正样本集P上加1个样本,并利用调整后的训练集对测试集进行分类,记录达到的Precision-recall平衡点。

注意,初始标记集P对分类器的性能有影响(一个好的初始集P可能在一开始就给分类器一个高精确度的recall,而一个不好的初始集P可能需要更多的迭代才能达到好的性能)。为了避免初始集引入的偏差,我们进行了200次实验,平均而言,半监督方法取得的最大Precision-recall平衡点为94.97%。

然后,我们又进行了200个实验(每次都使用与半监督实验中相同的初始标记集P),用于朴素k最近邻方法(k = 312)。然而,即使在k值最优的情况下,k最近邻方法的Precision-recall平衡点仅为81.29%,远低于半监督方法。

4.2 Word Spotting数据集

考虑对手写文档的分类。包含来自10个手写页面的2381个单词图像。我们对50个常见单词如“the”、“and”等进行图像处理,共获得905个实例。每个单词图像都由一个描述图像轮廓的四维时间序列表示。为了简单起见,我们只考虑每个图像的第一个维度,它的平均长度为270。这里我们关注的是区分“the”这个词和其他词的二类问题。“the”一词共有109幅图像,其他词有796幅图像。在本实验中,我们使用相同的905张图像进行训练和测试。

在训练集中随机选取10个正样本作为初始标记正类集合P,在每一次迭代中记录Precision-recall平衡点,重复试验25次,可以看到最佳Precision-recall平衡点为86.2%。

使用k最近邻方法得到的最佳结果为79.52%。

图9显示了训练过程中两个实例的排名变化,其中19是一个积极的例子,585是一个消极的例子。实例的排名由它到标记为正的集合的距离决定——距离越大,排名越高。因此,等级越高的实例最终被归为正的概率就越低。当训练开始时,19的排名相对较高,而595的排名相对较低。这表示一个糟糕的初始标记集,其中19碰巧与初始标记为正的集合中的任何一个示例都不相似,而595与其中一个或多个示例相似。幸运的是,即使有一个糟糕的开始,半监督学习分类器也能够正确地标记更多的正面例子,从而帮助它更好地对正面例子建模。经过多次迭代后,图像19的排名下降,图像585的排名上升。

4.3 Gun数据集

枪支数据集包含从两个演员的视频中提取的二维时间序列,数据集包含四个类:
A类:带枪的演员1
B类:没有枪的演员1(点)
C类:带枪的演员2
D类:没有枪的演员2(点)
在这里,我们关注将带枪的演员1与其他人区分开来的两级问题 - (A)与(B + C + D)。 总共有A类57个实例,其他类有190个实例。 每个实例具有相同的长度150。再次,我们随机分割数据,使用一半作为训练集,一半作为测试集。

在这个实验中,我们从一个标记为正的例子开始训练分类器。该分类器仅从一个带标记的例子开始,就能识别出其他正向的例子,并达到平均65.19%的最大Precision-recall平衡点。可以注意到,这个实验的方差比之前的实验的方差要高(图10中两条灰色线离粗体线更远)。这是因为我们从单个带标签的例子开始,增加了初始带标签集的偏差。使用k-近邻分类器(k = 27)进行了相同的实验,平均达到了55.93%的Precision-recall平衡点。

4.4 Wafer数据集

Wafer数据集是一组时间序列的集合,在数据集中的7164个时间序列中,762个为异常,6402个为正常。我们随机选取一半数据集作为训练集,另一半数据集作为测试集。对于半监督方法,我们进行了50次实验,每次从一个随机选择的标记为正的例子开始,最佳Precision-recall平衡点达到了73.17%。

使用k-近邻分类器进行了相同的实验,平均达到了46.87%的Precision-recall平衡点。

4.5 Yoga数据集

通过捕获两个瑜伽姿势之间转换的演员来获得数据集。最近已经表明,在许多领域中,将图像转换为伪时间序列可能是有用的。总共有316个时间序列,平均长度为426。其中,156个时间序列来自女演员,150个时间序列来自男演员。我们使用相同的数据集进行训练和测试。我们进行了10次实验,每次随机选择一个标记的正面例子。Precision-recall平衡点平均达到最大值89.04%。

对朴素k-最近邻方法(k = 156)的相同实验仅实现了82.95%。

原文链接:Semi-Supervised Time Serices Classification

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值