2023年11月10日,今天看一篇论文,现在17:34,说实话,想摆烂休息,不想看,可还是要看,拴Q。

论文:Self-Supervised Contrastive Pre-Training for Time Series via Time-Frequency Consistency

或者是:Self-Supervised Contrastive Pre-Training for Time Series via Time-Frequency Consistency

或者是:Self-Supervised Contrastive Pre-Training for Time Series via Time-Frequency Consistency

或者是:Self-Supervised Contrastive Pre-Training for Time Series via Time-Frequency Consistency(这个链接里面有code和datasets的链接,是作者本人所属实验室写的)

(哪个能打开用哪个)

GitHub:https://github.com/mims-harvard/TFC-pretraining

NeurIPS 2022的论文。

开始吧,摸鱼。(算了,17:46,吃晚饭取快递去吧,晚上再看|ू・ω・` ))

(Sorry,今天是11月12日16:49,昨天被拉去凑人数听报告,下了一场雨,今天就一键开启冬天模式了,师兄穿棉袄了,哈哈哈哈哈哈哈哈哈哈。乱七八糟的事情太多了,上午睡了一上午,下午来实验室,一堆杂活,干完就到现在了。)

(Sorry,今天有空了,今天抓紧看完。现在是14:35,冲冲冲。)

摘要

对时间序列进行预训练是一项独特的挑战,因为预训练和目标域之间可能存在不匹配,例如时间动态的偏移、快速演变趋势以及长周期和短周期效应,这些都可能导致下游性能不佳。虽然领域自适应方法可以缓解这些变化,但大多数方法都需要直接从目标领域中获取示例,这就使它们成为预训练的次优方法。为了应对这一挑战,方法需要适应具有不同时间动态的目标域,并且能够在预训练时不看到任何目标示例。相对于其他模态,我们认为在时间序列中,同一示例的基于时间的表示和基于频率的表示在时频空间中位于接近的位置。为此,我们假设时间-频率一致性(TF-C)——将示例的基于时间的邻域嵌入到其基于频率的邻域附近——对于预训练是可取的。受 TF-C 的启发,我们定义了一个可分解的预训练模型,其中自监督信号由时间和频率分量之间的距离提供,每个分量都通过对比估计进行了单独训练。我们在八个数据集上对新方法进行了评估,包括电子诊断测试、人类活动识别、机械故障检测和物理状态监测。与八种最先进方法的对比实验表明,TF-C 在一对一设置(例如在肌电图数据上微调脑电图预训练模型)中平均比基准方法高出 15.4%(F1 分数),在具有挑战性的一对多设置(例如微调脑电图预训练模型用于手势识别或机械故障预测)中平均比基准方法高出 8.4%(精确度),反映了实际应用中出现的各种情况。源代码和数据集可从 https://github.com/mims-harvard/TFC-pretraining 获取。

1 介绍

时间序列在临床诊断、交通分析和气候科学等许多领域都发挥着重要作用[1, 2, 3, 4, 5, 6]。虽然表征学习很大地推进了对时间序列的分析[7, 8, 9][10],但学习时间数据的通用表征仍然是一个具有根本挑战性的问题[8, 11]。生成这样的表征有许多直接的好处,其中预训练能力尤为可取,而且具有重要的实际意义[12, 13]。预训练的核心问题是如何处理不同数据集中的时间序列,以大大提高对来自不同数据集的新时间序列的泛化能力[14, 15, 10]。通过在一个数据集上训练一个神经网络模型,然后将其转移到一个新的目标数据集上进行微调,即不对该目标数据进行明确的再训练,我们期望由此产生的性能至少与为目标数据集量身定制的最先进模型一样好。

然而,不幸的是,由于各种原因(如分布偏移、预训练时未知的目标数据集属性)[16, 17],预期的性能提升往往无法实现,而时间序列的复杂性又加剧了这一问题:数据集之间时间动态的巨大差异、语义的不同、不规则采样、系统因素(如不同的设备或研究对象)等[18, 17]。[18, 17]. 时间序列的这种复杂性限制了知识转移在预训练中的实用性[19, 20]。例如,在主要包含低频成分(平滑趋势)的多样化时间序列数据集上对模型进行预训练,可能不会对包含高频成分(瞬态事件)的下游任务产生积极影响[17]。对这些挑战进行研究,可以为确定哪种归纳偏差可以促进时间序列的通用表征提供线索--本文通过新颖的时间频率一致性原则为此提供了一种策略。

此外,目标数据集在预训练期间不可用(不同于领域自适应[21];附录 A),这就要求预训练模型能捕捉到对之前未见过的目标数据集有效的潜在属性。这一需求的核心是预训练和目标数据集之间共享的属性,它将实现从预训练到微调的知识转移。在计算机视觉(CV)领域,预训练的驱动力来自于以下发现:初始神经层可以捕捉通用的视觉元素,如边缘和形状,这些元素与图像风格和任务无关[22]。在自然语言处理(NLP)中,预训练的基础是不同语言共享的语义和语法原则[23]。然而,由于上述时间复杂性,这种用于时间序列预训练的原则尚未确立。此外,有监督的预训练需要访问大型标注数据集,这就限制了它在缺乏丰富标注数据集的领域中的应用 [24,25]。例如,在医疗应用中,大规模标注数据通常是不可行的,或者可能既昂贵又有噪声(专家们可能会对地面真实标注产生分歧[26, 27],例如心电图信号是否表示正常或异常节律)[28, 29]。为了缓解这些问题,自监督学习成为一种很有前途的策略,可以避免缺乏标注数据集的问题[30]。

目前的工作。我们通过建立时频一致性(TF-C)模型,引入了一种时间序列自监督预训练策略。TF-C 规定,与不同时间序列样本的表征相比,从同一时间序列样本中学习到的基于时间的表征和基于频率的表征在时频空间中应更接近。具体来说,我们采用时间-空间对比学习来生成基于时间的表征。与此同时,我们还根据频谱特征提出了一套新的增强方法并通过对比实例判别生成了基于频率的嵌入。这是首次开发基于频率的对比增强技术,以利用丰富的频谱信息,探索时间序列中的时频一致性。预训练的目标是使用一种新颖的一致性损失(图 1 (a))最小化基于时间的嵌入和基于频率的嵌入之间的距离。自监督损失用于优化预训练模型,并在潜空间中执行时域和频域之间的一致性。编码在模型参数中的学习关系会被转移到微调模型的初始化中,并提高相关数据集的性能(图 1 (b))。

我们根据两种评估设置(即一对一和一对多)在八个时间序列数据集上对 TF-C 模型进行了评估。这八个数据集涵盖了大量变化:不同的通道数(从单变量到 9 通道多变量)、不同的时间序列长度(从 128 到 5,120 不等)、不同的采样率(从 16 Hz 到 4,000 Hz 不等)、不同的应用场景(神经保健、人体活动识别、机械故障检测、物理状态监测等)和不同的信号类型(脑电图、肌电图、心电图、加速度和振动)。我们将 TF-C 方法与八种最先进的基线方法进行了比较。结果表明,TF-C 实现了正向转移,以平均 15.4% 的较大优势(F1 分数)超越了所有基线。此外,该方法的 F1 分数最高提高了 7.2%,优于最强的基线方法。最后,在将同一预训练模型应用于多个独立微调数据集的 "一对多 "挑战性设置中,TF-C 方法的精确度(在睡眠脑电信号上预训练模型并在手势识别上进行微调时)比之前的工作提高了 8.4%。

2 相关工作

时间序列的预训练。虽然已有关于时间序列自监督表示学习 [7, 8, 31, 32] 和图像自监督预训练 [33, 34, 35, 24] 的研究,但这两个领域的交叉点,即时间序列的自监督预训练,仍未得到充分探索。在时间序列中,什么样的合理假设能在预训练和目标数据集之间架起桥梁并不明显。因此,由于数据模态不匹配,CV [36, 37, 14] 和 NLP [10, 15, 38] 中的预训练模型无法直接应用,现有结果也有改进的余地 [31, 39, 40]。Shi 等人[12]开发了迄今为止唯一一个明确设计用于自监督时间序列预训练的模型。该模型捕捉到了局部和全局的时间模式,但其设计的预训练任务为何能捕捉到具有普遍意义的表征并不令人信服。虽然有几项研究将迁移学习应用于时间序列[7, 8, 18, 41],但哪些概念特性最适合用于时间序列的预训练以及为什么,目前尚无定论。为了填补这一空白,我们展示了 TF-C 的设计,它对不同的时间序列数据集具有不变性,可以产生通用的预训练模型。

与需要在训练期间访问目标数据集的领域自适应[21, 42]不同,预训练模型无法访问微调数据集。因此,要想从预训练中获益,就需要确定可通用的时间序列属性。此外,自监督领域自适应不需要目标数据集中的标签,但模型训练仍需要标签[43, 44]。相比之下,TF-C 在预训练时不需要任何标签。

时间序列对比学习。对比学习是一种流行的自我监督学习方式,其目的是学习一种编码器,将输入映射到嵌入空间,从而将正样本对(原始增强和同一输入样本的另一种增强/视图)拉近,将负样本对(原始增强和输入样本的另一种增强)拉开 [30, 45]。相比之下,时间序列对比学习的研究较少,部分原因是难以确定能捕捉时间序列数据关键不变性的增强。例如,CLOCS 将相邻的时间片段定义为正对[41],TNC 假定重叠的时间邻域具有相似的表示[46]。这些方法利用时间不变性定义正对,用于计算对比损失,但也可以利用其他不变性,如变换不变性(如 SimCLR [40])、上下文不变性(如 TS2vec [47] 和 TS-TCC [48])和增强。在这项工作中,我们提出了一个增强库,利用多种不变量生成多样化的增强(第 4.1 节),从而增加预训练模型的丰富性[48]。重要的是,我们提出了基于频率的增强方法,通过扰动时间序列的频谱(例如,添加或移除频率成分并操纵其振幅;更多细节见第 4.2 节),让模型暴露在局部频率变化范围内,从而学习到更好的表征。在以前的工作中,CoST 通过频域处理序列信号,但增强仍在时间空间中实现 [49]。同样,虽然 BTSF[50]涉及频域,但其数据转换仅在时域中使用实例级滤除实现。关于 CoST 和 BTSF 之间差异的其他评论见附录 B。据我们所知,这是第一项直接扰动频谱以利用频率方差进行对比学习的研究。此外,我们还开发了一个预训练模型,该模型将两个单独的对比编码器作为 TF-C 的对象。

3 问题公式

我们得到一个预训练数据集 Dpret = {xpret i,其中样本 xpret | i = 1, . . . ,N} 的未标记时间序列样本 i 具有 Kpret 通道和 Lpret 时间戳。让 Dtune = {(xtune i , yi) | i = 1, . ,M}是标有时间序列样本的微调(即目标;目标和微调可互换使用)数据集,每个样本具有 Ktune 通道和 Ltune 时间戳。此外,每个样本 xtune i 都与一个标签 yi∈ {1, . , C},其中 C 是类别数。在不失一般性的前提下,我们在下面的描述中将重点放在单变量(单通道)时间序列上,同时指出我们的方法可以适用于不同数据集上不同长度的多变量时间序列(见第 5.2 节中的实验)。我们使用上标符号 e 表示对比增强。我们注意到 xT i ≡ xi 表示输入的时间序列样本,xF i 表示 xi 的离散频谱。

问题(时间序列的自监督对比预训练)。假设有一个包含 N 个样本的无标记预训练数据集 Dpret 和一个包含 M 个样本(M ≪ N)的目标数据集 Dtune。目标是使用 Dpret 对模型 F 进行预训练,以便通过微调 Dtune 上的模型参数,使微调后的模型为每个 xtune i 产生可泛化的表示 ztune i = F(xtune i ) 。

我们遵循一种既定的设置,例如 [41]:在预训练时,只能使用无标注数据集 Dpret,而在微调时,可以使用一个小的有标注数据集 Dtune。简而言之,模型 F 在无标记的时间序列数据集 Dpret 上进行预训练,其优化模型参数 Θ 通过数据集 Dtune 进行微调,从 F(-, Θ) 到 F(-, Φ)。Φ 表示微调后的模型参数。请注意,这个问题(即 Dpret 独立于目标数据集)不同于领域自适应,因为在预训练期间不会访问微调数据集 Dtune。因此,预训练模型可用于许多不同的微调数据集,而无需重新训练。

时间频率一致性(TF-C)的原理。其核心思想是找出在不同时间序列数据集上都能保持的一般特性,并利用它来诱导迁移学习,从而实现有效的预训练。时域显示的是传感器读数如何随时间变化,而频域显示的是整个频谱中每个频率分量内的信号量[51]。明确考虑频域可以让人们了解时间序列的行为,而这些行为仅靠时域是无法直接捕捉到的[52]。然而,现有的对比方法(如 [47, 48])只关注时域建模,而完全忽略了频域。可以说,这种方法对于大容量方法来说已经足够,因为时域和频域是同一数据的不同视角[53],可以通过变换(如傅里叶和反傅里叶变换[54, 52])进行交叉转换。这两个域之间的关系以信号处理理论为基础,提供了无论时间序列分布如何都有效的不变性[55, 56],因此可作为预训练的归纳偏置。附录 C 提供了与图像类比的注释。从表征学习的角度来看待这种不变性,我们接下来提出了时间频率一致性(TF-C)。TF-C 属性假定存在一个潜在的时频空间,对于每个样本 xi,同一样本的基于时间的表示 zT i 和基于频率的表示 zF i 及其局部增强(稍后定义)在潜在空间中相互接近。

表征时频一致性(TF-C)。假设 xi 是一个时间序列,F 是一个满足 TF-C 的模型。那么,基于时间的表示 zT i 和基于频率的表示 zF i 以及 xi 局部增强的表示在潜在时频空间中是近似的。

我们的策略是使用数据集 Dpret 在 F 的模型参数 Θ 中诱导 TF-C,反过来,这些参数又被用于初始化 Dtune 上的目标模型,并为下游预测生成可通用的表示。TF-C 的不变性意味着,即使 Dpret 和 Dtune 之间存在巨大差异(在时间动态、语义等方面),该方法也能将它们连接起来,为时间序列的通用预训练提供载体。

为了实现 TF-C,我们的模型 F 由四个部分组成(图 2):时间编码器 GT、频率编码器 GF,以及两个跨空间投影器 RT 和 RF,它们分别将基于时间和基于频率的表征映射到相同的时频空间。这四个部分共同提供了一种将 xi 嵌入潜在时频空间的方法,从而使基于时间的嵌入 zT i = RT(GT (xT i )) 和基于频率的嵌入 zF i = RF(GF(xF i )) 接近。

4 我们的方法
接下来,我们将介绍自监督对比预训练模型 F 的结构。除非另有说明,本节中提到的数据均来自预训练数据集,为简化起见,省略了上标 pret。这里我们以单变量时间序列为例描述模型,但我们的模型可以直接应用于多变量时间序列(第 5 节)。

4.1 基于时间的对比编码器

对于给定的输入时间序列样本 xi,我们通过基于时间的增强库 BT:xT i → XT i 生成一个增强集 XT i。每个元素 exT i∈XT i 都是根据时间特征从 xi 开始增强的。在这里,基于时间的增强库包括抖动、缩放、时移和邻近片段,这些都是对比学习中成熟的方法 [40, 48, 41]。我们开发的扩增库可以产生多种扩增(而不是单一类型的扩增),并使模型暴露于复杂的时间动态中,从而产生更稳健的基于时间的嵌入[48]。

对于输入 xi,我们随机选择一个增强样本 exT i ∈ XT i,并输入对比时间编码器 GT,将样本映射到嵌入。我们有 hT i = GT(xT i ) 和 ehT i = GT(exT i )。由于 xeT i 是根据 xT i 生成的,因此在通过 GT 后,我们假定 xT i 的嵌入与 exT i 的嵌入接近,但与从另一个样本 xT j∈Dpret[34, 47, 41]导出的 xT j 和 exT j 的嵌入相去甚远。具体来说,我们选择正对为 (xT i , exT i ) ,负对为 (xT i , xT j) 和 (xT i , exT j) [34]。
对比时间损失。为了最大化正对中的相似性,最小化负对中的相似性,我们采用了在对比学习中广泛使用的 NT-Xent(归一化温度标度交叉熵损失)作为距离函数 d [34, 40]。具体来说,我们以样本 xT i 为单位,将基于时间的对比编码器的损失函数定义为:

其中,sim(u、 v) = uTv/ ∥u∥ ∥v∥ 表示余弦相似度,1i̸=j 是一个指标函数,当 i = j 时等于 0,否则等于 1,τ 是一个调整比例的时间参数。xj ∈ Dpret 指的是不同的时间序列样本或其增强样本。这个损失函数促使时间编码器 GT 为正数据对生成更接近的基于时间的嵌入,并将负数据对的嵌入相互推开。

4.2 基于频率的对比编码器

我们通过变换算子(如傅立叶变换 [54])从时间序列样本 xT i 生成频谱 xF i。时间序列中的频率信息是普遍存在的,在经典信号处理中发挥着关键作用[57, 53, 55],但在时间序列的自监督对比表示学习中却鲜有研究[58]。在本节中,我们将根据频谱的特征开发扰动 xF i 的增强方法,并展示如何生成基于频率的表征。

由于频谱中的每个频率成分都表示一个具有相应频率和振幅的基函数(如用于傅里叶变换的正弦函数),因此我们通过添加或删除频率成分来扰动频谱。频域中的微小扰动可能会导致时域中的时间模式发生巨大变化[55]。为了确保扰动后的时间序列仍然与原始样本相似(不仅在频域上,在时域上也是如此;图 6),我们在扰动中使用了较小的预算 E,其中 E 表示我们操作的频率成分的数量。在移除频率成分时,我们随机选择 E 个频率成分,并将其振幅设为 0;在增加频率成分时,我们从振幅小于 α - Am 的频率成分中随机选择 E 个频率成分,并将其振幅增加到 α - Am。Am 是频谱中的最大振幅,α 是一个预先定义的系数,用于调整被扰动频率分量的尺度(本文中的α = 0.5)。我们通过频率增强库 BF 为 xF i 生成一个增强集 XF i:xF i → XF i。如上所述,我们在 BF 中采用了两种增强方法(即去除或增加频率成分),|XF i | = 2。我们利用频率编码器 GF 将频谱(如 xF i )映射到基于频率的嵌入(如 hF i = GF(xF i ) )。我们假设频率编码器 GF 可以为原始频谱 xF i 和轻微扰动频谱 exF i∈XF i 学习类似的嵌入。因此,我们将正对设为 (xF i , exF i ) ,负对设为 (xF i , xF j) 和 (xF i , exF j)。

对比频率损失。我们计算样本 xi 的频率对比损失为:

在初步实验中,我们发现 τ 值对性能影响不大,因此在所有实验中都使用相同的 τ 值。LF,i 产生的频率编码器 GF 生成的嵌入对频谱扰动不变。

4.3 时频一致性

我们开发了一种一致性损失项 LC,i,以敦促学习到的嵌入式满足 TF-C:对于给定样本,其基于时间的嵌入式和基于频率的嵌入式(及其局部邻域)应该相互接近(理由见第 3 章)。为了确保嵌入式之间的距离是可测量的,我们将时间空间的 hT i 和频率空间的 hF i 通过投影器 RT 和 RF 映射到联合的时频空间,即四个嵌入式,分别为前两种嵌入是根据时间特性生成的,后两种嵌入是根据频谱特性生成的。

为了在 TF-C 的时频空间中执行嵌入,我们设计了一种一致性损失 LC,i,用于测量基于时间的嵌入和基于频率的嵌入之间的距离。我们用 STF i = d(zT i , zF i , Dpret) 表示 zT i 和 zF i 之间的距离。) 同样,我们定义 STeF i 、SeTF i 和 SeTeF i 。需要注意的是,在这个时频空间中,我们不考虑 zT i 和 eizT 之间的距离,因为这两个嵌入式来自同一个域(即时域)。这同样适用于 zF i 和 ezF i 之间的距离配对。在计算 LT,i 和 LF,i 时,我们已经考虑了上述两对的信息。

接下来,让我们仔细观察 STF i 和 STeF i,它们涉及三个嵌入式:zT i、zF i 和 ezF i。这里,zT i 和 zF i 是根据原始样本(xT i 和 xF i )学习的,而 ezF i 是根据增强的 exF i 学习的。因此,直观地说,与 ezF i 相比,zT i 应该更接近 zF i。基于这种相对关系,我们鼓励所提出的模型学习一个小于 STeF i 的 STF i。受三重损失 [59] 的启发,我们设计了 (STF - STeF i i + δ) 作为一致性损失 LC,i 的一个项,其中 δ 是一个给定的常量,用于保持负样本之间的距离 [60]。这个项优化了模型,使其 STF i 更小,STeF i 相对更大。同样,STF i 应该小于 SeTF i 和 SeTeF i。总之,我们通过以下方法计算样本 xi 的一致性损失 LC,i:

其中,Spair i 表示基于时间的嵌入与基于频率的嵌入。在每一对中,至少有一个嵌入是从增强样本而不是原始样本中得到的。δ是一个预先定义的常数。通过合并所有三重损失项,LC 鼓励预训练模型在模型优化中捕捉基于时间和基于频率的嵌入之间的一致性。需要注意的是,虽然公式 3 没有明确测量不同时间序列样本(如 xi 和 xj)之间的损失,但在计算 SeTF i 和Spair i 时隐含了跨样本关系。

4.4 实现与技术细节

预训练中的总体损失函数有三项。首先,基于时间的对比损失 LT 促使模型学习不受时间增强影响的嵌入。其次,基于频率的对比损失 LF 会促进学习对基于频谱的增强不变的嵌入式。第三,一致性损失 LC 引导模型保持基于时间和基于频率的嵌入式之间的一致性。总之,预训练损失定义如下:

其中,λ 控制对比度损失和一致性损失的相对重要性。我们通过对所有预训练样本的 LTF-C,i 求和来计算总损失。在实施过程中,对比损失是在批次内计算的。根据问题定义,我们要学习的模型 F 是 GT、RT、GF 和 RF 神经网络的组合。预训练完成后,我们会存储整个模型的参数,并将其记为 F(-,Θ),其中 Θ 代表所有可训练参数。当呈现样本 xtune i 时,微调模型 F 通过连接生成嵌入 ztune i,即 :其中其中 Φ 为微调模型参数。

5 实验

我们在 8 个不同的数据集上比较了所开发的 TF-C 模型和 10 个基线模型。我们研究了一对一和一对多迁移学习设置下的时间序列分类任务(附录 K 中讨论了多对一设置的本质区别)。我们还在包括聚类和异常检测在内的大量下游任务中对 TF-C 进行了评估。

数据集。(1) SLEEPEEG[61]有 371 055 个单变量脑电波(EEG;100 Hz),收集自 197 个人。每个样本与五个睡眠阶段之一相关联。(2) EPILEPSY [62] 通过单通道脑电图传感器(174 Hz)监测 500 名受试者的大脑活动。根据受试者是否患有癫痫,对样本进行二进制标记。(3) FD-A [63] 收集机械系统滚动轴承的振动信号,旨在进行故障检测。每个样本都有 5,120 个时间戳和三个机械装置状态中的一个指示器。(4) FD-B [63] 的设置与 FD-A 相同,但滚动轴承在不同的工作条件下工作(如不同的转速)。(5) HAR[64]有来自 6 种日常活动的 10 299 个 9 维样本。(6) GESTURE [65] 包含 440 个样本,这些样本来自加速度计记录的 8 个手势。(7) ECG [26] 包含 8,528 个单传感器心电图记录,根据人体生理学分为四类。(8) EMG [66] 包含 163 个 EMG 样本,带有 3 个类别标签,暗示肌肉疾病。数据集标签不用于预训练。更多数据集统计数据见附录 D 和表 3。

基线。我们考虑了 10 种基线方法。其中包括 8 种最先进的方法: TS-SD [12]、TS2vec [47]、CLOCS [41]、Mixing-up [18]、TS-TCC [48]、SimCLR [40]、TNC [46] 和 CPC [30]。TS2Vec、TS-TCC、SimCLR、TNC 和 CPC 是为单一数据集上的表示学习而设计的,而不是为迁移学习而设计的,因此我们将它们应用到我们的设置中,使结果具有可比性。由于 TNC 和 CPC 的训练非常耗时,而且竞争力相对较低(表 4),因此我们只在一对一设置(情景 1)中对它们进行比较,而不在其他实验中进行比较。为了考察预训练的效用,我们还考虑了另外两种无需预训练就可直接应用于微调数据集的方法: Non-DL(非深度学习 KNN 模型)和 Random Init. (随机初始化微调模型)。评估指标包括准确度、精确度(宏观平均值)、召回率、F1 分数、AUROC 和 AUPRC。

实施。我们使用两个 3 层 1-D ResNet [67] 作为编码器 GT 和 GF 的骨干。我们的数据集包含较长的时间序列(FD-A 和 FD-B 中的样本有 5,120 个观测值),初步实验表明 ResNet 是比 Transformer 变体 [68] 更好的选择。我们对 RT 和 RF 使用 2 个全连接层,不共享参数。我们在频率增强中设置了 E = 1 和 α = 0.5,在损失函数中设置了 τ = 0.2、δ = 1 和 λ = 0.5。报告的是在同一数据分片上独立运行 5 次(包括预训练和微调)的平均值和标准偏差值。KNN(K=2)的结果没有变化,因此标准偏差为零。方法详情和超参数选择见附录 E。

5.1 结果: 一对一预训练评估

设置。在一对一评估中,我们在一个预训练数据集上对模型进行预训练,然后仅在一个目标数据集上对模型进行微调。场景 1(SLEEPEEG → EPILEPSY): 预训练在 SLEEPEEG 上进行,微调在 EPILEPSY 上进行。虽然这两个数据集都描述了单通道脑电图,但信号来自不同的通道/头皮上的不同位置,跟踪不同的生理学(睡眠与癫痫),并且是从不同的患者身上收集的。情景 2(FD-A → FD-B): 数据集描述了在不同工作条件下运行的机械设备,包括转速、负载扭矩和径向力。情景 3(HAR → GESTURE): 数据集记录了不同的活动(6 种人类日常活动与 8 种手势)。虽然两个数据集都包含加速度信号,但 HAR 有 9 个通道,而 GESTURE 只有 1 个通道。方案 4(心电图 → 肌电图): 虽然两者都是生理数据集,但心电图记录的是来自心脏的电信号,而肌电图测量的是神经刺激肌肉时肌肉的反应。我们注意到,在上述四种情况下,预训练数据集和微调数据集之间的差异很大,它们涵盖了时间序列数据集的各种变化:不同的语义、采样频率、时间序列长度、类的数量和系统因素(如设备或受试者的数量)。可用于微调的样本数量相对较少(EPILEPSY:60;FD-B:60;手势:480;EMG:122)。更多详情见附录 F。

结果。四个场景的结果如表 1 和表 4-6 所示。总体而言,我们的 TF-C 模型在 24 项测试中赢得了 16 项(4 个场景中的 6 项指标),仅在其他 8 项测试中表现第二好。我们报告了所有指标,但下文将讨论 F1 分数。平均而言,我们的 TF-C 模型比所有基线模型都高出 15.4%。尽管最强基线不尽相同(如场景 2 中的 TS-TCC;场景 3 中的 Mixing-up),但我们的模型在所有场景中都比最强基线高出 1.5%。具体而言,如表 1 所示(HAR→GESTURE;情景 3),TF-C 的 F1 分数达到了最高的 79.91%,比最佳基线 TS-TCC (74.57%)高出 7.2%。一种可能的解释是,情景 3 涉及到一个复杂的数据集(HAR 有 6 个类别,而 GESTURE 有 8 个类别),很难建模。相对于其他场景的性能(±90%),所有模型的性能较差(±80%),这进一步验证了场景 3 的复杂性: TF-C 通过学习更具通用性的表征,显示出强大的鲁棒性。此外,我们将学习到的表征在时频空间中可视化(附录 I),分析结果为 TF-C 特性提供了进一步支持。

5.2 结果: 一对多预训练评估

设置。在一对多评估中,使用一个数据集进行预训练,然后在多个目标数据集上独立进行微调,而无需从头开始预训练。在八个数据集中,SLEEPEEG 具有最复杂的时间动态[69],也是最大的数据集(371,055 个样本)。因此,我们对 SLEEPEEG 进行了预训练,并分别对 EPILEPSY、FD-B、GESTURE 和 EMG 进行了微调。

结果。结果如表 2 所示。由于脑电信号与振动、加速度与肌电图之间的共性较少,我们预计迁移学习对它们的效果不如一对一评估。在底部三个区块(SLEEPEEG → {FD-B、GESTURE、EMG})中,预训练和微调数据集存在很大差异。差距过大会导致基线性能下降,但我们的模型对差距过大的数据集的知识转移容忍度明显更高。值得注意的是,我们发现,在三种具有挑战性的设置中,采用 TF-C 的拟议模型在 18 种设置中的 14 种设置中获得了最佳性能:这表明我们的 TF-C 假设在时间序列中是通用的。例如,在对 GESTURE 进行微调时,我们的方法比最强基线高出 8.4%(精度)。当没有与小型微调数据集相似的大型预训练数据集时,我们的模型具有作为通用模型的巨大潜力。此外,TF-C 一直优于 KNN 和 Random Init. (在 F1 分数上)的平均值分别为 42.8% 和 25.1%。消融研究。我们评估了模型组件与有效预训练的相关性。如表 9 所示(SLEEPEEG → GESTURE;附录 H),去除 LC、LT 和 LF 会导致性能(精度)分别下降 6.1%、7.2% 和 6.7%。为了验证无论第三个损失项测量的一致性如何,性能提升并不完全是由第三个损失项带来的,我们用测量时间空间内一致性的损失项(名为 LTT-C)或频率空间内一致性的损失项(名为 LFF-C)取代了一致性损失 LC。结果表明,我们的一致性损失分别比 LTT-C 和 LFF-C 高出 5.3% 和 7.2%(准确率)。

5.3 额外的下游任务: 聚类和异常检测

聚类任务。我们以 SLEEPEEG → EPILEPSY 为例来评估 TF-C 的聚类性能。具体来说,由于癫痫有 2 个类别,我们在微调时在 ztune i 的基础上增加了 K-means(K=2)。我们采用了常用的评估指标: 剪影得分、调整后兰德指数(ARI)和归一化互信息(NMI)。表 7 显示,我们的 TF-C 获得了最佳聚类效果,远远超过了最强基线(TS-TCC)(Silhouette 分数为 5.4%)。这表明,TF-C 可以利用从预训练中获得的知识捕捉到更多与众不同的表征,这与 TF-C 在上述分类任务中的优势是一致的。

异常检测任务。我们将评估 TF-C 在样本级异常检测任务中的表现。请注意,我们进行的是样本级异常检测,而不是观测级异常检测。前者基于全局模式,旨在检测异常时间序列样本,而不是样本中的离群观测值(如 BTSF [50] 和 USAD [70]),后者强调局部背景。具体来说,在 FD-A → FD-B 的情况下,我们建立了一个包含 1,000 个样本的 FD-B 小子集,其中 900 个样本来自未损坏的轴承,其余 100 个样本来自内部或外部损坏的轴承。未损坏样本被视为 "正常样本",而内部/外部损坏样本被视为 "异常值"。在微调过程中,我们在已学表示 ztune i 的基础上使用了单类 SVM。实验结果(表 8)显示,我们的 TF-C 以 4.5% 的 F-1 Score 优于五个竞争基线。结果表明,所提出的 TF-C 对异常样本更加敏感,可以有效检测机械设备的异常状态。

6 总结

我们开发了一种预训练方法,引入了时间频率一致性(TF-C)作为支持时间序列数据集之间知识转移的机制。该方法使用自监督对比估计,并在预训练中注入 TF-C,从而使基于时间和基于频率的表征及其局部邻域在潜在空间中接近。

局限性和未来方向。TF-C 属性可作为预训练的通用属性,适用于各种时间序列数据集。其他通用属性,如时间自回归过程,也有助于对时间序列进行预训练。此外,虽然我们的方法需要输入定期采样的时间序列,但通过使用能嵌入不规则时间序列的编码器(如 Raindrop [71] 和 SeFT [72]),它也能处理不规则采样的时间序列。对于频率编码器输入 xF i,替代方法包括重新采样或插值以获得规则采样信号,以及使用规则或非均匀 FFT 运算。此外,TF-C 目前的嵌入策略和损失函数有利于分类,与使用局部上下文的任务(如预测)相比,它能充分利用全局信息。结果表明,TF-C 方法在广泛的下游任务中表现出色,包括分类、聚类和异常检测(第 5.3 节)。

现在是22:03,看完了,感觉有点意犹未尽的感觉,感觉没写啥呢,咋就结束了,得有空把有附录版本的论文找出来看看。

TFC-Pretraining: 基于时间频率一致性对时间序列进行自监督对比预训练《Self-Supervised Contrastive Pre-Training for Time Series via Time-Frequency Consistency》(时间序列、时序表征、时频一致性、对比学习、自监督学习)的更多相关文章

  1. DVWA-基于布尔值的盲注与基于时间的盲注学习笔记

    DVWA-基于布尔值的盲注与基于时间的盲注学习笔记 基于布尔值的盲注 一.DVWA分析 将DVWA的级别设置为low 1.分析源码,可以看到对参数没有做任何过滤,但对sql语句查询的返回的结果做了改变 ...

  2. 2019-9-9:渗透测试,基础学习,phpmyadmin getshell方法,基于时间的盲注,基于报错的注入,笔记

    phpmyadmin getshell方法1,查看是否有导入导出设置 show global variables like '%secure-file-priv%';2,如果secure-file-p ...

  3. SQL基于时间的盲注过程

    0x00 前言 由于要使用到基于时间的盲注,但是我觉得基于时间的盲注其实就是基于布尔的盲注的升级版,所以我想顺便把基于布尔的盲注分析总结了: 首先我觉得基于时间的盲注和基于布尔的盲注的最直观的差别就是 ...

  4. MySQL中基于mysqldump和二进制日志log-bin进行逻辑备份以及基于时间点的还原

    本文出处:http://www.cnblogs.com/wy123/p/6956464.html 本文仅模拟使用mysqldump和log-bin二进制日志进行简单测试,仅作为个人学习笔记,可能离实际 ...

  5. mysql基于“时间”的盲注

    无需页面报错,根据页面响应时间做判断! mysql基于时间的盲注 =================================================================== ...

  6. 表空间基于时间点的恢复(TSPITR)

    环境:RHEL 6.4 + Oracle 11.2.0.4 准备模拟环境 1. 验证表空间的依赖性 2. 确定执行TSPITR后会丢失的对象 3. 自动执行TSPITR Reference 准备模拟环 ...

  7. JavaScript基于时间的动画算法

    转自:https://segmentfault.com/a/1190000002416071 前言 前段时间无聊或有聊地做了几个移动端的HTML5游戏.放在不同的移动端平台上进行测试后有了诡异的发现, ...

  8. 7.5.1 Point-in-Time Recovery Using Event Times 使用Event Times 基于时间点恢复

    7.5.1 Point-in-Time Recovery Using Event Times 使用Event Times 基于时间点恢复 表明开始和结束时间用于恢复, 指定 --start-datet ...

  9. 7.5 Point-in-Time (Incremental) Recovery Using the Binary Log 使用binay log 基于时间点恢复

    7.5 Point-in-Time (Incremental) Recovery Using the Binary Log 使用binay log 基于时间点恢复 7.5.1 Point-in-Tim ...

  10. ORACLE调度之基于时间的调度(一)【weber出品】

    一.调度的概述 这里我看到一篇对调度的概述觉得描述的比我好,但仅限于概述部分,其他部分我觉得我讲的比他好,于是发生以下事情: ************************华丽的转载******** ...

随机推荐

  1. java后端解决请求跨域

    跨域 跨域:指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 例如:a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同 ...

  2. 小程序-云数据库的add,get,remove,update

    云数据库的使用就是使用简单的原生封装wx.cloud.database().collection("list"),然后就是add,get,remove,update四个方法 初始化 ...

  3. Claude是否超过Chatgpt,成为生成式AI的一哥?

    Anthropic 周一推出了 Claude 3 ,据这家初创公司称,该系列中最有能力的 Claude 3 Opus 在各种基准测试中都优于 Openai 的竞争对手 GPT-4 和谷歌的 Gemin ...

  4. C#——接口

    先来看看微软官方对接口的定义与说明. 接口定义协定. 实现接口的类或结构必须遵循它的协定. 接口可以从多个基接口继承,类或结构可以实现多个接口. 接口可以包含方法.属性.事件和索引器. 接口本身不提供 ...

  5. Python爬虫(1-4)-基本概念、六个读取方法、下载(源代码、图片、视频 )、user-agent反爬

    Python爬虫 一.爬虫相关概念介绍 1.什么是互联网爬虫 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 解 ...

  6. 音频文件降噪及python示例

    操作系统 :Windows 10_x64 Python版本:3.9.2 noisereduce版本:3.0.2 从事音频相关工作,大概率会碰到降噪问题,今天整理下之前学习音频文件降噪的笔记,并提供Au ...

  7. nacos一个奇怪的问题:找不到正确的应用名-环境.后缀名配置文件

    spring: profiles: active: dev application: name: system-api cloud: nacos: server-addr: 192.168.101.6 ...

  8. 使用git(ee的一个小总结

    我先把后端项目推进了gitee,后面为了方便又想把前端也放在同一个项目里,结果出问题了: 一开始是因为前端项目内包含了.git的文件(这个玩意还是隐藏文件,就是你在idea里其实是看不到他的),导致只 ...

  9. 【Java】部门集合树状顺序展示

    一.需求效果: 表单的部门下拉选择时,可以展示部门的层级: 按照这个效果展示,但是不是树,还是原来的集合 二.实现方案: 用Java代码实现两个部分 1.展示Label效果处理 2.处理集合的树状排序 ...

  10. 【Windows】搭建FTP服务器

    1.开启FTP服务和IIS服务 2.设置IIS服务 添加FTP站点[右键] 设置站点名称和物理路径 绑定IP地址和FTP端口号 可以自定义虚拟主机名称 下面勾选[无SSL]即可 身份验证和授权设置 在 ...