目前周期性时间序列 (PTS) 预测存在两大阻碍:
本文提出的DEPTS模型就是为了解决这两个问题而设计的。
x t : t + H = f θ ( x t − L : t , z t − L : t + H ) + ϵ t : t + H , z t = g ϕ ( t ) (3) \mathbf x_{t:t+H} = f_\theta(\mathbf x_{t-L:t},\mathbf z_{t-L:t+H})+\mathbf{\epsilon}_{t:t+H},\quad z_t = g_\phi(t) \tag{3} xt:t+H=fθ(xt−L:t,zt−L:t+H)+ϵt:t+H,zt=gϕ(t)(3)
其中:
f θ f_\theta fθ 共包含 N N N 层。对于其中的第 ℓ \ell ℓ 层,有3个残差分支:
这3个残差分支由2个参数化块指定:
将上一层的周期状态 z t − L : t + H ( ℓ − 1 ) \mathbf z^{(\ell-1)}_{t-L:t+H} zt−L:t+H(ℓ−1) 输入周期块 f θ p ( ℓ ) p f^p_{\theta_p(\ell)} fθp(ℓ)p,得到周期状态的第 ℓ \ell ℓ 个扩展项 v t − L : t + H ( ℓ ) \mathbf v^{(\ell)}_{t-L:t+H} vt−L:t+H(ℓ)
v t − L : t + H ( ℓ ) \mathbf v^{(\ell)}_{t-L:t+H} vt−L:t+H(ℓ) 分为两部分:
更新周期状态: z t − L : t + H ( ℓ ) = z t − L : t + H ( ℓ − 1 ) − v t − L : t + H ( ℓ ) \mathbf z^{(\ell)}_{t-L:t+H} = \mathbf z^{(\ell-1)}_{t-L:t+H} - \mathbf v^{(\ell)}_{t-L:t+H} zt−L:t+H(ℓ)=zt−L:t+H(ℓ−1)−vt−L:t+H(ℓ)
x ^ t : t + H ( ℓ ) = x ^ t : t + H ( ℓ − 1 ) + u t : t + H ( ℓ ) + v t : t + H ( ℓ ) \hat{\mathbf{x}}_{t: t+H}^{(\ell)}=\hat{\mathbf{x}}_{t: t+H}^{(\ell-1)}+\mathbf{u}_{t: t+H}^{(\ell)}+\mathbf{v}_{t: t+H}^{(\ell)} x^t:t+H(ℓ)=x^t:t+H(ℓ−1)+ut:t+H(ℓ)+vt:t+H(ℓ)(目的是将第 ℓ \ell ℓ 层的预测拆分为两部分)
z t − L : t + H = z t − L : t + H ( 0 ) = ∑ ℓ = 1 N v t − L : t + H ( ℓ ) + z t − L : t + H ( N ) , x t − L : t = x t − L : t ( 0 ) = ∑ ℓ = 1 N ( u t − L : t ( ℓ ) + v t − L : t ( ℓ ) ) + x t − L : t ( N ) , x ^ t : t + H = x ^ t : t + H ( N ) = ∑ ℓ = 1 N ( u t : t + H ( ℓ ) + v t : t + H ( ℓ ) ) (4) zt−L:t+H=z(0)t−L:t+H=N∑ℓ=1v(ℓ)t−L:t+H+z(N)t−L:t+H,xt−L:t=x(0)t−L:t=N∑ℓ=1(u(ℓ)t−L:t+v(ℓ)t−L:t)+x(N)t−L:t,ˆxt:t+H=ˆx(N)t:t+H=N∑ℓ=1(u(ℓ)t:t+H+v(ℓ)t:t+H) \tag{4} zt−L:t+Hxt−L:tx^t:t+H=zt−L:t+H(0)=ℓ=1∑Nvt−L:t+H(ℓ)+zt−L:t+H(N),=xt−L:t(0)=ℓ=1∑N(ut−L:t(ℓ)+vt−L:t(ℓ))+xt−L:t(N),=x^t:t+H(N)=ℓ=1∑N(ut:t+H(ℓ)+vt:t+H(ℓ))(4)
其中,
将 g ϕ g_\phi gϕ 建模为 K K K 个余弦函数之和: g ϕ ( t ) = A 0 + ∑ k = 1 K A k cos ( 2 π F k t + P k ) g_\phi(t)=A_0+\sum_{k=1}^K A_k \cos \left(2 \pi F_k t+P_k\right) gϕ(t)=A0+∑k=1KAkcos(2πFkt+Pk)
构造代替函数: g ϕ M ( t ) = A 0 + ∑ k = 1 K M k ⋅ A k cos ( 2 π F k t + P k ) g^M_\phi(t)=A_0+\sum_{k=1}^K M_k \cdot A_k \cos \left(2 \pi F_k t+P_k\right) gϕM(t)=A0+∑k=1KMk⋅Akcos(2πFkt+Pk),其中 M k ∈ { 0 , 1 } M_k \in \{0,1\} Mk∈{0,1}, M = { M 1 , ⋯ , M k } M = \{M_1,\cdots,M_k\} M={M1,⋯,Mk}
两步最优化:
M
∗
=
arg
min
∥
M
∥
1
<
=
J
L
D
val
(
g
ϕ
∗
M
(
t
)
)
,
ϕ
∗
=
arg
min
ϕ
L
D
train
(
g
ϕ
(
t
)
)
(5)
M^*=\underset{\|M\|_1<=J}{\arg \min }\ \mathcal{L}_{D_{\text {val}}}\left(g_{\phi^*}^M(t)\right), \quad \phi^*=\underset{\phi}{\arg \min } \ \mathcal{L}_{D_{\text {train}}}\left(g_\phi(t)\right) \tag{5}
M∗=∥M∥1<=Jargmin LDval(gϕ∗M(t)),ϕ∗=ϕargmin LDtrain(gϕ(t))(5)
将完整的PTS信号划分为训练集 D train = x 0 : T v D_{\text {train}}=\mathbf x_{0:T_\mathrm v} Dtrain=x0:Tv 和验证集 D val = x T v : T D_{\text {val}} =\mathbf x_{T_\mathrm v:T} Dval=xTv:T
对训练集执行DCT变换,选取振幅最大的 K K K 个余弦基底,将参数合并起来作为 ϕ ~ ∗ = { A ~ 0 ∗ } ∪ { A ~ k ∗ , F ~ k ∗ , P ~ k ∗ } k = 1 K \tilde{\phi}^*=\left\{\tilde{A}_0^*\right\} \cup\left\{\tilde{A}_k^*, \tilde{F}_k^*, \tilde{P}_k^*\right\}_{k=1}^K ϕ~∗={A~0∗}∪{A~k∗,F~k∗,P~k∗}k=1K
初始化 M ~ ∗ = { 0 , ⋯ , 0 } \tilde M^*=\{0,\cdots,0\} M~∗={0,⋯,0}
按振幅值降序遍历
K
K
K 个余弦基底,采用贪婪策略,根据第
k
k
k 个周期能否进一步减少验证集上的损失来来为
M
k
M_k
Mk 分配1或0。
具体来说,假设按振幅值降序排列的
K
K
K 个余弦基底索引为
k
k
k,对于贪婪算法的第
j
j
j 步(
j
=
1
,
2
,
⋯
,
K
j = 1,2,\cdots, K
j=1,2,⋯,K),替代函数:
g
ϕ
∗
M
j
(
t
)
=
M
j
⋅
A
j
∗
cos
(
2
π
F
j
∗
t
+
P
j
∗
)
+
[
A
0
∗
+
∑
k
=
1
j
M
~
k
∗
⋅
A
k
∗
cos
(
2
π
F
k
∗
t
+
P
k
∗
)
]
(9)
g^{M_j}_{\phi^*}(t)=M_j \cdot A^*_j\cos\left(2πF^*_j t +P^*_j\right) + \left[A^*_0+\sum_{k=1}^j \tilde M^*_k \cdot A^*_k \cos \left(2 \pi F^*_k t+P^*_k\right)\right] \tag{9}
gϕ∗Mj(t)=Mj⋅Aj∗cos(2πFj∗t+Pj∗)+[A0∗+k=1∑jM~k∗⋅Ak∗cos(2πFk∗t+Pk∗)](9)
其中,
M
~
1
∗
,
M
~
2
∗
,
⋯
,
M
~
j
−
1
∗
\tilde M^*_1,\tilde M^*_2,\cdots,\tilde M^*_{j-1}
M~1∗,M~2∗,⋯,M~j−1∗ 是在前面的贪婪步骤中确定的;当前步骤的目标是通过下面的公式确定
M
j
M_j
Mj:
M
~
j
∗
=
arg
min
M
j
∈
{
0
,
1
}
L
D
v
a
l
(
g
ϕ
∗
M
j
(
t
)
)
(10)
\tilde M ^*_j=\underset{M_j\in \{0,1\}}{\arg\min}\ \mathcal L_{D_{\mathrm{val}}}\left(g^{M_j}_{\phi^*}(t)\right) \tag{10}
M~j∗=Mj∈{0,1}argmin LDval(gϕ∗Mj(t))(10)
其中
L
\mathcal L
L 为Dynamic Time Warping。
最终贪婪算法在选取了
J
J
J 个周期(或遍历了全部
K
K
K 个周期)后停止,自此获得了
M
~
∗
\tilde M^*
M~∗ 的近似解。
令 M = M ~ ∗ M = \tilde M^* M=M~∗, ϕ = ϕ ~ ∗ \phi = \tilde \phi^* ϕ=ϕ~∗
按照解耦公式 ( 3 ) (3) (3) 对 ϕ \phi ϕ 和 θ \theta θ 进行联合学习
Normalised deviation & normalised root mean square error:
nd
=
1
∣
Ω
∣
∑
(
i
,
t
)
∈
Ω
∣
x
t
i
−
x
^
t
i
∣
1
∣
Ω
∣
∑
(
i
,
t
)
∈
Ω
∣
x
t
i
∣
,
nrmse
=
1
∣
Ω
∣
∑
(
i
,
t
)
∈
Ω
(
x
t
i
−
x
^
t
i
)
2
1
∣
Ω
∣
∑
(
i
,
t
)
∈
Ω
∣
x
t
i
∣
(6)
\text{nd}=\frac{\frac{1}{|\Omega|} \sum_{(i, t) \in \Omega}\left|x_t^i-\hat{x}_t^i\right|}{\frac{1}{|\Omega|} \sum_{(i, t) \in \Omega}\left|x_t^i\right|}, \quad \text { nrmse }=\frac{\sqrt{\frac{1}{|\Omega|} \sum_{(i, t) \in \Omega}\left(x_t^i-\hat{x}_t^i\right)^2}}{\frac{1}{|\Omega|} \sum_{(i, t) \in \Omega}\left|x_t^i\right|} \tag{6}
nd=∣Ω∣1∑(i,t)∈Ω∣
∣xti∣
∣∣Ω∣1∑(i,t)∈Ω∣
∣xti−x^ti∣
∣, nrmse =∣Ω∣1∑(i,t)∈Ω∣
∣xti∣
∣∣Ω∣1∑(i,t)∈Ω(xti−x^ti)2(6)
根据数据集的周期效应的复杂度的不同,DEPTS相对于N-BEATS的领先幅度也有所不同,但多数时间里DEPTS都能给出稳定的性能增益。