Adversarial Dynamic Shapelet Networks(对抗动态shapelet网络)

Adversarial Dynamic Shapelet Networks(2020AAAI)

之前的工作:使用随机梯度下降进行shapelet的学习,但是学出的shapelet可能与任何实际的子序列都不相似(LTS)且学到的shapelet是静态的,无法动态更新

贡献

  • 我们提出了一个shapelet生成器,以动态生成特定于样本的shapelet,从而提高了建模灵活性和分类性能。
  • 为了防止生成的小波产生任意形状,采用对抗训练策略以确保生成的小波类似于时间序列的实际子序列。
  • 我们在大量时间序列数据集上的实验结果表明,提出的模型达到了最先进的性能,并且通过可视化分析证明了模型的有效性。

方法阐述

ADSN的一般结构如图1所示。shapelet生成器用于生成一组以输入时间序列的子序列为条件的shapelet。然后,对输入的时间序列执行动态shapelet变换,以提取判别特征,并使用softmax层来计算每个类别的最终概率分布。多样化正则项约束生成的shapelet彼此不同,而对抗训练策略确保生成的shapelet与实际子序列相似。
在这里插入图片描述

shapelet生成

为了生成以输入时间序列为条件的长度为 L L L的shapelet,我们首先使用步长为1的 L L L长度滑动窗口提取时间序列的子序列,然后使用一个卷积层来生成小波。

给定时间序列 $\mathbf{T}=\left{\mathbf{t}{1}, \mathbf{t}{2}, \ldots, \mathbf{t}_{n}\right} $

每个 t i t_i ti包括 m m m个真实值定义为 ( t i = t i , 1 , t i , 2 , … , t i , m ) T \left( t_i=t_{i, 1}, t_{i, 2}, \ldots, t_{i, m}\right)^{T} (ti=ti,1,ti,2,,ti,m)T

使用长度为 L L L,步长为1的滑动窗口可以 P P P个子序列,然后拼接起来得到 O i , \mathbf{O}_{i}, Oi, where O i ∈ R L × P \mathbf{O}_{i} \in \mathbf{R}^{L \times P} OiRL×P
O i = t i , 1 : L ⊕ t i , 2 : L + 1 ⊕ ⋯ ⊕ t i , P : m \mathbf{O}_{i}=\mathbf{t}_{i, 1: L} \oplus \mathbf{t}_{i, 2: L+1} \oplus \cdots \oplus \mathbf{t}_{i, P: m} Oi=ti,1:Lti,2:L+1ti,P:m
O i O_i Oi的长度方向上进行步长为1的卷积, s i , j ∈ R L × 1 \mathbf{s}_{i, j} \in \mathbf{R}^{L \times 1} si,jRL×1代表在第i个时间片段上生成的第j个shapelet
s i , j = W j ∗ O i + b j \mathbf{s}_{i, j}=\mathbf{W}_{j} * \mathbf{O}_{i}+b_{j} si,j=WjOi+bj
W j ∈ R w × P \mathbf{W}_{j} \in \mathbf{R}^{w \times P} WjRw×P定义了宽度为 w w w的第 j j j个filter,为了生成和原始数据尽可能相似的shapelet,不使用激活函数,然后生成i时刻的topk个shapelet如下
S i = { s i , 1 , s i , 2 , ⋯   , s i , j , ⋯   , s i , k } \mathbf{S}_{i}=\left\{\mathbf{s}_{i, 1}, \mathbf{s}_{i, 2}, \cdots, \mathbf{s}_{i, j}, \cdots, \mathbf{s}_{i, k}\right\} Si={si,1,si,2,,si,j,,si,k}

动态shapelet变换

在生成之后,特殊采样的shapelet将原始时间序列转化为新的表示,每个属性是原始序列和生成某个序列的距离,其中 h ∈ R n , k h \in R^{n,k} hRn,k,定义了shapelet转换表示,定义如下:
h i , j = min ⁡ p = 1 , ⋯   , P ∑ l = 1 L ( t i , p + l − 1 − s i , j , l ) 2 h_{i, j}=\min _{p=1, \cdots, P} \sqrt{\sum_{l=1}^{L}\left(t_{i, p+l-1}-s_{i, j, l}\right)^{2}} hi,j=p=1,,Pminl=1L(ti,p+l1si,j,l)2
其中 s i , j , l s_{i,j,l} si,j,l为shapelet s i , j s_{i,j} si,j 的第 l l l个值,由于使用的shapelet是根据输入动态生成的,所以表示称为动态shapelet表示

最后,变换表示被输入到softmax层得到标签分布:
y ^ i = W o u t h i P ( C ∣ t i ) = softmax ⁡ ( y ^ i ) \begin{aligned} \hat{\mathbf{y}}_{i} &=\mathbf{W}_{o u t} \mathbf{h}_{i} \\ P\left(C \mid \mathbf{t}_{i}\right) &=\operatorname{softmax}\left(\hat{\mathbf{y}}_{i}\right) \end{aligned} y^iP(Cti)=Wouthi=softmax(y^i)
其中 h i h_i hi是上述表示的输出, W o u t W_{out} Wout是权重参数, P ( C ∣ t i ) P\left(C \mid \mathbf{t}_{i}\right) P(Cti) 表示标签分布,其中使用dropout来避免过拟合

对抗训练策略

将shapelet约束为和实际的子序列相似,但不和子序列完全相同

使用对抗生成网络,训练shapelet生成器生成类似子序列的shapelet用来欺骗判别器D,交替更新ADSN和D的参数,通过最小化以下损失来进行训练:
L D = − ∑ i ∑ p log ⁡ ( D ( t i , p : p + L − 1 ) ) − ∑ i ∑ j log ⁡ ( 1 − D ( s i , j ) ) L_{D}=-\sum_{i} \sum_{p} \log \left(D\left(\mathbf{t}_{i, p: p+L-1}\right)\right)-\sum_{i} \sum_{j} \log \left(1-D\left(\mathbf{s}_{i, j}\right)\right) LD=iplog(D(ti,p:p+L1))ijlog(1D(si,j))
其中 D ( ⋅ ) D(\cdot) D()代表判别器的结果,为了优化判别器, D ( t i , p : p + L − 1 ) D\left(\mathbf{t}_{i, p: p+L-1}\right) D(ti,p:p+L1)为1,而 D ( s i , j ) D\left(\mathbf{s}_{i, j}\right) D(si,j)为0

多样性正则化

思想:相同的shapelet将会造成相同的时间序列表示,而对抗训练的模式崩溃会造成生成shapelet的相似,需要增加shapelet的多样性。

使用Frobenius正则化的shapelet相似矩阵,对于第i个时间片段间shapelet的相似性被定义为一个矩阵 G i ∈ R k × k \mathbf{G}_{i} \in \mathbf{R}^{k \times k} GiRk×k,其中每个元素定义了不同shapelet之间的相似度
G i ( s i , j , s i , j ′ ) = exp ⁡ ( − d ( s i , j , s i , j ′ ) σ 2 ) \mathbf{G}_{i}\left(\mathbf{s}_{i, j}, \mathbf{s}_{i, j^{\prime}}\right)=\exp \left(-\frac{d\left(\mathbf{s}_{i, j}, \mathbf{s}_{i, j^{\prime}}\right)}{\sigma^{2}}\right) Gi(si,j,si,j)=exp(σ2d(si,j,si,j))
其中 d ( s i , j , s i , j ′ ) d\left(\mathbf{s}_{i, j}, \mathbf{s}_{i, j^{\prime}}\right) d(si,j,si,j)是是欧氏距离,是 σ \sigma σ是RBF核参数,这里默认为1

总LOSS

L c l s = − 1 n ∑ i = 1 n ∑ r = 1 c 1 { y i , r = 1 } log ⁡ exp ⁡ ( y ^ i , r ) ∑ l = 1 c exp ⁡ ( y ^ i , l ) L d i v = ∥ G 1 ⊕ G 2 ⊕ ⋯ ⊕ G n ∥ F 2 L a d v = − 1 n × k ∑ i = 1 n ∑ j = 1 k log ⁡ ( D ( s i , j ) ) L A D S N = L c l s + λ d i v L d i v + λ a d v L a d v \begin{array}{c} L_{c l s}=-\frac{1}{n} \sum_{i=1}^{n} \sum_{r=1}^{c} 1\left\{y_{i, r}=1\right\} \log \frac{\exp \left(\hat{y}_{i, r}\right)}{\sum_{l=1}^{c} \exp \left(\hat{y}_{i, l}\right)} \\ L_{d i v}=\left\|\mathbf{G}_{1} \oplus \mathbf{G}_{2} \oplus \cdots \oplus \mathbf{G}_{n}\right\|_{F}^{2} \\ L_{a d v}=-\frac{1}{n \times k} \sum_{i=1}^{n} \sum_{j=1}^{k} \log \left(D\left(\mathbf{s}_{i, j}\right)\right) \\ L_{A D S N}=L_{c l s}+\lambda_{d i v} L_{d i v}+\lambda_{a d v} L_{a d v} \end{array} Lcls=n1i=1nr=1c1{yi,r=1}logl=1cexp(y^i,l)exp(y^i,r)Ldiv=G1G2GnF2Ladv=n×k1i=1nj=1klog(D(si,j))LADSN=Lcls+λdivLdiv+λadvLadv

L c l s L_{cls} Lcls是分类误差, L d i v L_{div} Ldiv是多样性正则化, L a d v L_{adv} Ladv是对抗生成误差, ∥ ⋅ ∥ F 2 \|\cdot\|_{F}^{2} F2代表frobenius范数, λ d i v \lambda_{div} λdiv λ a d v \lambda_{adv} λadv是正则化参数

试验部分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述可以看出使用动态生成shapelet的方法的效果很好
在这里插入图片描述
在使用生成的shapelet对时间序列进行表示的过程中分类效果也是最好的

critical thinking:

  1. 动态生成的shapelet是否可以对长时间的时间序列建模,属于同类的时间序列生成的shapelet是否相似,能够代表该类所有代表性子序列
  2. 生成的shapelet是最优shapelet吗,是否能够证明最优问题
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值