- 在本文中,在时间序列中对对比方法和生成方法进行全面的比较研究。
- 分别介绍了对比SSL和生成SSL的基本框架,并讨论了如何获得指导模型优化的监督信号。
- 为每种类型实现经典算法(SimCLR与MAE),并在公平设置下进行比较分析。
对比SSL将输入样本映射到表示,然后测量相似和不相似样本之间的相对距离,其中最小化相对距离作为优化模型的监督信号。生成式SSL将输入时间序列映射到一个表示,然后用于重建输入样本。
所有的代码和数据都在[https://github.com/DL4mHealth/SSL Comparison]上发布。
1 Contrastive Representation Learning
对比表征学习旨在通过鼓励模型区分相似(正)和不相似(负)对数据样本来学习稳健表征。如上图所示,对比SSL首先将输入数据映射到学习到的表示空间,然后使用对比损失函数,驱动模型最小化正配对之间的距离,最大化负配对之间的距离。对比学习框架通常包括两个主要阶段:预训练和微调。请注意,预训练阶段是自监督或无监督的,因为它不需要标签。但是微调阶段需要样本标签进行监督学习。虽然SSL中的术语“自监督”意味着无标签表示学习,但实际上整个框架是半监督的。
1.1 Pre-training
预训练通常包含数据增强、编码和损失计算。对于给定的时间序列样本 x i x_{i} xi,我们首先通过增广创建几个变量。常用的时间序列增强方法包括抖动、缩放、置换、时移、切片和调整大小、时间屏蔽、频率屏蔽、相邻等。
在本文中,我们简单地以最流行和最有效的增强抖动为例:从预定义的分布(最常用的是高斯分布)中随机采样噪声信号 n i n_{i} ni,并将其添加到原始样本 x i x_{i} xi中,从而得到变体 x i ′ x_{i}^{\prime} xi′。同样,另一个样本 x j x_{j} xj应该保留与其变体 x i ′ x_{i}^{\prime} xi′的同源信息。编码器将所有原始样本和增广样本转换到潜在空间,其中我们有 z i = f θ ( x i ) z_{i}=f_{\theta}({x}_{i}) zi=fθ(xi), z i ′ = f θ ( x i ′ ) z_{i}^{\prime}=f_{\theta}({x}_{i}^{\prime}) zi′=fθ(xi′), z j = f θ ( x j ) z_{j}=f_{\theta}({x}_{j}) zj=fθ(xj)和 z j ′ = f θ ( x j ′ ) z_{j}^{\prime}=f_{\theta}({x}_{j}^{\prime}) zj′=fθ(xj′)。通过编码器优化,我们应该能够找到一个潜伏空间,其中 z i ′ z_{i}^{\prime} zi′比 z j z_{j} zj和 z j ′ z_{j}^{\prime} zj′更接近 z i z_{i} zi。
1.2 Contrastive loss function
对于上述原始样本和增广样本,我们称
(
x
i
,
x
i
′
)
(x_{i},x_{i}^{\prime})
(xi,xi′)为正对,称
(
x
i
,
x
j
)
(x_{i},x_{j})
(xi,xj)和
(
x
i
,
x
j
′
)
(x_{i},x_{j}^{\prime})
(xi,xj′)为负对。对比损耗的设计是为了加强正负对之间的相对距离。
I
n
f
o
N
C
E
InfoNCE
InfoNCE和
N
T
−
X
e
n
t
NT-Xent
NT−Xent损失函数是最经典的。以
N
T
−
X
e
n
t
NT-Xent
NT−Xent为例:
其中
s
i
m
sim
sim是类似余弦相似度的相似函数,
τ
τ
τ是调节相似度的参数。符号
N
N
N表示训练数据集中的样本数量,或者更实际地说,是训练批中的样本数量。之所以使用
2
N
2N
2N这个术语,是因为有
N
N
N个原始样本和
N
N
N个增广样本,有效地使损失计算中需要考虑的样本总数增加了一倍。
1.3 Fine-tuning
在微调阶段,预训练的编码器使用较小的标记数据集适应特定的下游任务。给定一个数据集 { ( x i , y i ) ∣ i = 1 , 2 , ⋯ , M } \{(x_{i},y_{i})|i=1,2,\cdots,M\} {(xi,yi)∣i=1,2,⋯,M},其中有 M M M个标记的时间序列样本,使用任务特定的监督损失函数 L t a s k L_{task} Ltask来调整模型参数 θ θ θ。在这里,由编码器生成的表示被馈送到带有参数 φ φ φ的任务特定分类器中。目标是尽量减少预测标签 φ = φ ( f θ ( x i ) ) φ = φ (f_{\theta}({x}_{i})) φ=φ(fθ(xi))与真实标签 y i y_{i} yi之间的差异。经过微调后,编码器和分类器可以用来承担一个看不见的测试样本的特定任务。
2 Generative Representation Learning
从广义上讲,所有试图通过利用未标记数据对数据分布建模的机器学习方法都可以称为生成式SSL(上图)。最常用的生成式SSL方法是基于自动编码器或GAN。它们可能不会被称为“自我监督”,而是“半监督”或“无监督”。其关键思想是将输入数据编码到潜在空间,然后再解码回原始空间。如果模型在这样的重建任务中能够实现较小的损失,则说明在潜在空间中的压缩表示包含了足够的信息来恢复输入数据,也就是说,它是输入数据的低维表示。自动编码器假设数据中存在一些底层结构或模式,哪些可以学习和利用来从压缩表示中重建输入。
2.1 Pre-training
MAE接收原始输入时间序列样本 x i x_{i} xi,并将其切成一系列补丁(或子序列)。例如,将形状为[3,200]的时间序列切成20个小块,每个小块的形状为[3,10]。然后,随机抽取一小部分patch(如25% patch),得到5 = 20 × 25%的patch,并将这5个patch作为MAE的输入进行编码重建。MAE背后的关键假设是,如果模型能够成功地抓住数据分布,则部分信息(即一小部分补丁)足以重建整个样本。
与其他生成模型相比,MAE的根本区别在于编码器对输入的单个块进行操作,而不是对整个样本进行转换。为了简单起见,我们仍然使用 x i x_{i} xi来表示这个示例中的补丁。
编码器 f θ f_{θ} fθ将选择的patch转换为低维表示 h i = f θ ( x i ) h_{i} = f_{\theta}({x}_{i}) hi=fθ(xi)。 h i h_{i} hi通过一个由 ψ ψ ψ参数化的解码器 r ψ r_{ψ} rψ来重建原始的patch。我们将重构的patch表示为 x ^ i = r ψ ( h i ) \hat{x}_{i}=r_{\psi}(\boldsymbol{h}_{i}) x^i=rψ(hi)。
2.2 Genrative loss functions
最常用的重建损失函数是测量原始补丁和重建补丁之间的距离
其中
∥
⋅
∥
\left\|\cdot\right\|
∥⋅∥表示欧几里得距离,目标是使重构误差最小化
2.3 Fine-tuning
在微调阶段,将预训练好的编码器 f θ f_{θ} fθ继承到下游任务,而不使用解码器 r ψ r_{ψ} rψ。对于带有标记 M M M个样本的数据集 { ( x i , y i ) ∣ i = 1 , 2 , ⋯ , M } \{(x_{i},y_{i})|i=1,2,\cdots,M\} {(xi,yi)∣i=1,2,⋯,M},编码器将输入样本映射到 h i = f θ ( x i ) h_{i} = f_{\theta}({x}_{i}) hi=fθ(xi),然后通过下游分类器 g ϕ g_{ϕ} gϕ产生预测标签 y ^ i = g ϕ ( h i ) \hat{y}_{i}=g_{ϕ}(\boldsymbol{h}_{i}) y^i=gϕ(hi)。分类损失,如交叉熵,用于测量预测标签和真实标签之间的距离。
3 对比SSL模型和生成SSL模型之间的区别
- 生成式SSL包含一个解码器来重建原始样本,而对比SSL不需要这个,使对比度更轻量。
- 大多数生成模型在相关方面使用重构,即使用原始样本本身来指导编码器优化;相比之下,对比SSL不仅可以采用第4节所示的对比映射,还可以采用各种各样的伪装任务,如预测编码(自回归预测)、邻居检测、试验判别、增强类别检测。灵活的体系结构为进一步修改和改进对比模型提供了更高的自由度。
- 对比SSL中的损失函数用来计算原始样本和增广样本相互之间的相似性(如余弦相似性),而生成损失捕获原始空间中的欧几里得距离。
4 Experiments
4.1 Dataset
HAR数据集收集自30名健康志愿者,他们从事六种日常活动,即步行、上楼梯、下楼梯、坐、站和躺下。任务是预测这六项日常活动。我们将其分为预训练集(58%,5881),验证集(1471,14%)和测试集(2947,28%)。微调集是带有部分标签的预训练集的子集。
将预训练和微调阶段作为一个整体,整个模型是一个半监督模型。我们使用标签比率来表示具有真实标签的样本的比例,即微调集和预训练集之间的比率。
我们应用上采样使预训练集平衡,得到总共5874个样本,其中每个活动与979个样本相关联。每个样本包含3个通道,持续200个时间戳.
4.2 Implementation details
SimCLR和MAE的性能比较。对于每种方法,预训练意味着我们使用来自SimCLR或MAE的训练良好的编码器;没有预训练是指我们微调一个随机初始化的编码器(即,不加载保留的模型)。“Ratio”列为标签比例,即在微调阶段使用的标签比例。
4.3 Effectiveness of Pre-training
我们评估预训练阶段是否有助于提高模型性能。下图显示了超过100个epoch的训练过程,标签比率为0.1。无论自监督学习方法是对比式学习还是生成式学习,自监督预训练都有助于构建更优的模型。
4.4 Overall comparison and scalability
为了检验我们方法的可扩展性,我们观察了它在不同标签比率下的性能:0.01、0.1、0.3、0.5和1。我们发现,当标签比为0.01时,模型收敛速度较慢,其中所有训练数据集都用于预训练,但只有1%的样本可用于微调。SSL模型的可伸缩性:当标签比率从0.01升级到0.1时,两个SSL模型都显示出显著的性能提升,并且随后在标签比率超过0.3时保持稳定性。
对于这样的场景,我们将训练扩展到100个epoch(在第60个epoch附近收敛)。对于其他标签比率,我们使用30个epoch,通常在第10到第20 epoch达到收敛。
我们可以得出几个结论:
- 在所有的标签比率中,与没有预训练的模型相比,预训练的模型表现出更好的性能。
- 标记比率越低(即学习中使用的标记样本越少),性能差距越大。例如,当标签比率为1.0时,预训练的MAE在F1上比未训练的MAE高出1.25%。然而,当标签比率降至0.01时,这一差额增加到5.53%。
- 使用0.1的固定标签比率,SimCLR开始时很强,收敛速度更快,在最初的几个epoch中达到60%以上。然而,MAE最终达到了稍高的性能水平。
- 当标签比率较小时(例如,0.01和0.1),MAE优于SimCLR。但是,当标签比率超过0.5时,SimCLR的性能会稍好一些。这表明MAE更适合有限的标签集(每个类少于100个样本);对于较大的标签集,应该首先考虑SimCLR。
4.5 SSL comparison on ECG dataset
除了HAR数据集,本文还介绍了对经典ECG数据集的实验比较研究,特别是MIT-BIH心律失常数据集。该数据集包括从47名患者收集的4000个双导联心电图信号的长期动态心电图记录。它包含5个不同的类,我们通过重新采样平衡了这些类。
我们的观察结果如下:
- MAE预训练模型始终优于未预训练模型。随着标签比例从50%下降到5%,F1分数的性能差距从0.8%增加到6.7%。值得注意的是,当有限规模标签(1%)可用时,MAE预训练的改进幅度为10.7%。
- 相反,SimCLR方法不会产生性能提升,因为有预训练和没有预训练的SimCLR模型的性能非常相似。
- 然而,在没有预训练的情况下,SimCLR仅使用1%的标记数据就能达到83%的F1得分,而MAE的F1得分仅为57%。我们合理地假设SimCLR具有内在的能力,可以在小规模数据中发现潜在的独特模式,从而通过预训练留下有限的改进空间。这解释了为什么与MAE相比,预训练对SimCLR的效果较差。
- 有趣的是,我们观察到不一致的结果:SimCLR在ECG域的1%标记数据上表现更好,而MAE在HAR数据集上表现更好。
总而言之,当处理包含一小部分标记数据的数据集时,SSL预训练至关重要,我们建议对人类活动数据使用MAE,对ECG数据使用SimCLR。不同数据类型之间不一致的结果可能归因于数据特征的差异。该心律失常数据集中存在的ECG模式相对简单且易于区分,几个基线实验证明,即使SVM也取得了相对较好的性能。