zhihanyue / ts2vec

A universal time series representation learning framework
MIT License
619 stars 148 forks source link

请问训练轮次如何控制? #2

Closed kpmokpmo closed 3 years ago

kpmokpmo commented 3 years ago

大佬您好,恭喜sota,有两个小问题:

  1. 我对非监督不是很熟悉,监督学习下判断过拟合欠拟合我主要是用valid set的early stop。这里任务被解耦成特征提取和一个判别网络,似乎只能观测一下特征提取这个阶段目标的loss curve性状来大体判断一下,而这个目标也不是任务整体的目标,那么如何决策要训练多少轮呢?是否有过、欠拟合风险呢?
  2. 我的任务是时序分类,并且全部贴好了标签。那么比起最大化某序列和另一个随机抽样序列的差异,是否有意地在另一个类别里抽样会更好呢?

非常感谢!

zhihanyue commented 3 years ago

你好,感谢你关注我们的工作!

1、对无监督学习模型而言,标签是不可见的,没办法用valid set来early stopping。实验中,follow T-Loss,我们经验性的选择了固定的训练代数(200 iters for dataset_size<100000, 600 iters otherwise),我们也观察到固定的训练代数在很多数据集上都不太好(overfit/underfit),因此这里存在很大的提升空间,可以后续探索。有一种思路是去找到一个能够反映学到的表示的泛化能力的metric,用它来early stopping,但我们目前还没有找到这样的metric。

2、标签已知的情况下,可以把同一个类别的instance当作positive pair,不同类别的当作negative pair,这类方法叫做supervised contrastive learning,据我所知时序上还没有这类工作,所以也是一个值得后续研究的点。

kpmokpmo commented 3 years ago

@yuezhihan 感谢回答。我确实被这个模型的表现惊艳到,在HHT multivariate上我了解的表现大概是 TS2V = Query Selector/Transformer > StemGNN/mGRN > Z-GCNET > STSGCN/AGCRN/LSGCN/MTGNN等 也就是说和监督型的transformer变体差不多,超过了若干图神经网络。

还想继续请教一下: 因为TS2V可以输出dense的结果,即相当于一个embedding过程。而从一堆conv.trans结合的文章就可以看出加强前期高分辨率的embedding对transformer提升很关键。于是我做了实验,用TS2V替换transformer前面的几个卷积层,发现:

  1. 对于vanilla transformer有所提升
  2. 对于前期编码处理好的后SWIN模型,比如前面加VOLO的outlook att层的,或者hierarchy的有MULTI-SCALE结构的复杂transformer基本没有提升,当然也有可能是我样本量小的原因(200W)
  3. 同样加强高分辨率embedding,TS2V不如conditional conv即TS2V+vanilla transformer+pyramid structure不如VOLO,PVT2等

所以我的疑问就是,TS2V后面能接复杂网络吗,比如类RNN,transformer。我看论文里貌似都是加的浅层判别网络,时序预测也是拿前一个当做hidden state预测下一个,而不是当成初始编码拿整段序列做预测。这也是我上面考虑overfitting的原因。更深一步,不管下游任务是segmentation这样dense的任务,还是classification这样粗线条的,按理说非监督出来的特征都是同样一组唯一最优解。会不会因为这个Loss的设计性,导致一些inductive bias,即只适合浅层神经网络或者svm或tree-based这种不容易过拟合的,而不适合当成embedding。

不好意思贫了这么多,真的是对这篇很感兴趣,谢谢。

zhihanyue commented 3 years ago

@kpmokpmo locality这样的inductive bias对时序问题是比较重要的,vanilla transformer的locality很弱,TS2Vec可能增强了locality的feature,从而提升了泛化。其他模型本身就有locality,自然影响不大。

对于forecasting、classification,我们使用的protocol分别是线性回归和svm。因为经过10层卷积,表示上已经有了高维特征,再去用复杂的网络会更加容易过拟合(毕竟线性回归就能学得很好,复杂的网络可能一下子就开始过拟合了),但我认为如果调整好了正则化/dropout/参数量等,能控制后面接的网络的拟合能力,是能超过线性回归的。表示学习的inductive bias是存在的,学到的表示(和所选取的超参数)总体上对各类下游任务有一定的普适性,但这个表示不可能对于每个任务都是最优的。

kpmokpmo commented 3 years ago

@yuezhihan 好的,感谢