基于时间和上下文对比的时间序列表示学习 (TS-TCC) [论文] [引用]
作者: Emadeldeen Eldele, Mohamed Ragab, Zhenghua Chen, Min Wu, Chee Keong Kwoh, Xiaoli Li 和 Cuntai Guan
本研究被接收发表于国际人工智能联合会议 (IJCAI-21) (接受率: 13.9%)。
:boom::boom: 更新: 我们将方法扩展到半监督设置 (CA-TCC)。详情请参阅论文 用于半监督时间序列分类的自监督对比表示学习。代码也已公开。 :boom::boom:
:boom::boom: 更新2: 扩展版CA-TCC已被IEEE模式分析与机器智能汇刊 (TPAMI) 接收 :boom::boom:
摘要
从具有时间动态的未标记时间序列数据中学习良好的表示是一项非常具有挑战性的任务。在本文中,我们提出了一种基于时间和上下文对比的无监督时间序列表示学习框架 (TS-TCC),用于从未标记数据中学习时间序列表示。首先,通过使用弱增强和强增强将原始时间序列数据转换为两种不同但相关的视图。其次,我们提出了一个新颖的时间对比模块,通过设计一个困难的跨视图预测任务来学习鲁棒的时间表示。最后,为了进一步学习具有判别性的表示,我们在时间对比模块的上下文基础上提出了一个上下文对比模块。它试图最大化同一样本不同上下文之间的相似性,同时最小化不同样本上下文之间的相似性。我们在三个真实世界的时间序列数据集上进行了实验。结果表明,在我们提出的TS-TCC学习到的特征之上训练线性分类器的性能可与监督训练相媲美。此外,我们提出的TS-TCC在少量标记数据和迁移学习场景中表现出较高的效率。
环境要求:
- Python3.x
- Pytorch==1.7
- Numpy
- Sklearn
- Pandas
- openpyxl (用于分类报告)
- mne=='0.20.7' (用于Sleep-EDF预处理)
- mat4py (用于故障诊断预处理)
数据集
下载数据集
更新:
现在您可以在这个Dataverse找到预处理后的数据集
我们在本研究中使用了四个公开数据集:
准备数据集
数据应该放在项目文件夹内名为"data"的单独文件夹中。
在该文件夹内,您应该有单独的文件夹;每个数据集一个。每个子文件夹应该包含"train.pt"、"val.pt"和"test.pt"文件。
数据文件的结构应该以字典形式如下:
train.pt = {"samples": data, "labels: labels}
,同样的 val.pt
和 test.pt
预处理的详细信息如下:
1- Sleep-EDF数据集:
在 data_preprocessing/sleep-edf/
路径下创建一个名为 data_files
的文件夹。
下载数据集文件并将其放在此文件夹中。
运行脚本preprocess_sleep_edf.py
以生成numpy文件...你会在另一个名为sleepEDF20_fpzcz
的文件夹中找到每个PSG文件的numpy文件(你可以从参数中更改这些名称)。
你还会在sleepEDF20_fpzcz_subjects
文件夹中找到每个受试者的数据(因为每个受试者有两晚的数据)
最后运行文件generate_train_val_test.py
来生成文件,它会自动将它们放在data/sleepEDF
文件夹中。
2- UCI HAR数据集
当你下载数据集并解压缩文件时,你会在名为UCI HAR Dataset
的文件夹中找到数据...将其放在data_preprocessing/uci_har/
文件夹中并运行preprocess_har.py
文件。
3- 癫痫和故障诊断数据集:
在data_files
文件夹中下载数据文件并运行预处理脚本。
配置
config_files
文件夹中的配置文件应与数据集文件夹名称相同。
例如,对于HAR数据集,数据文件夹名称是HAR
,配置文件是HAR_Configs.py
。
从这些文件中,你可以更新训练参数。
训练 TS-TCC
你可以选择以下几种训练模式之一:
- 随机初始化(random_init)
- 有监督训练(supervised)
- 自监督训练(self_supervised)
- 微调自监督模型(fine_tune)
- 训练线性分类器(train_linear)
代码还允许为实验设置名称,以及每个实验中单独运行的名称。 它还允许选择随机种子值。
要使用这些选项:
python main.py --experiment_description exp1 --run_description run_1 --seed 123 --training_mode random_init --selected_dataset HAR
请注意,数据集的名称应与"data"文件夹内的名称相同,训练模式应与上述相同。
要训练fine_tune
和train_linear
模式的模型,你必须先运行self_supervised
。
结果
- 默认情况下,实验保存在"experiments_logs"目录中(你也可以从参数中更改)。
- 每个实验都会有一个日志文件,除"self-supervised"模式外的其他模式还会有一个最终分类报告。
引用
如果你发现这项工作对你有用,请考虑引用它。
@inproceedings{ijcai2021-324,
title = {Time-Series Representation Learning via Temporal and Contextual Contrasting},
author = {Eldele, Emadeldeen and Ragab, Mohamed and Chen, Zhenghua and Wu, Min and Kwoh, Chee Keong and Li, Xiaoli and Guan, Cuntai},
booktitle = {Proceedings of the Thirtieth International Joint Conference on Artificial Intelligence, {IJCAI-21}},
pages = {2352--2359},
year = {2021},
}
@article{emadeldeen2022catcc,
title = {Self-supervised Contrastive Representation Learning for Semi-supervised Time-Series Classification},
author = {Eldele, Emadeldeen and Ragab, Mohamed and Chen, Zhenghua and Wu, Min and Kwoh, Chee Keong and Li, Xiaoli and Guan, Cuntai},
journal = {arXiv preprint arXiv:2208.06616},
year = {2022}
}
联系
如有任何关于论文或复现结果的问题/疑问,请联系我。 Emadeldeen Eldele 新加坡南洋理工大学(NTU) 计算机科学与工程学院(SCSE) 电子邮件:emad0002{at}e.ntu.edu.sg