
使用
RNN
和
CNN
处理序列
|
437
Y
(0)
X
(0)
X
(1)
X
(2)
X
(3)
X
(4)
Y
(1)
Y
(2)
C(Y
(2)
, Y
(3)
, Y
(4)
)
W,b W,b W,b W,b W,b
Y
(3)
Y
(4)
图 15-5:时间反向传播
15.3 预测时间序列
假设你正在研究网站上每小时的活跃用户数、城市的每日温度或使用多个指标来评估每
个季度公司的财务状况。在所有这些情况下,数据是每个时间步长一个或多个值的序
列。这称为时间序列。在前两个示例中,每个时间步长只有一个值,因此它们是单变量
时间序列,而在财务示例中,每个时间步长有多个值(例如,公司的收入、债务等),因
此它是一个多变量时间序列。典型的任务是预测未来值,这称为预测。另一个常见任务
是填补空白:预测过去的缺失值。这称为插补。例如,图 15-6 显示了 3 个单变量时间序
列,每个时间序列的长度是 50 个时间步长,此处的目标是预测它们下一个时间步长的
值(用 X 表 示 )。
x
(
t
)
t t t
图 15-6:时间序列预测
为简单起见,我们使用由 generate_time_series() 函数生成的时间序列,如下所示:
def
generate_time_series(batch_size, n_steps):
freq1, freq2, offsets1, offsets2 = np.random.rand(4, batch_size, 1)
time = np.linspace(0, 1, n_steps)
series = 0.5 * np.sin((time ...