使用TensorFlow和Keras进行时间序列与文本数据的RNN建模
1. 时间序列数据的RNN建模
1.1 TensorFlow中的RNN变体
1.1.1 LSTM在TensorFlow中的应用
简单RNN架构由于梯度爆炸和梯度消失问题,并不总是有效,因此常使用改进的RNN架构,如LSTM网络。TensorFlow提供了创建LSTM RNN架构的API。在之前的示例中,将简单RNN更改为LSTM网络,只需更改单元类型,代码如下:
cell = tf.nn.rnn_cell.LSTMCell(state_size)
其余代码保持不变,因为TensorFlow会为你创建LSTM单元内的门。完整的LSTM模型代码可在指定的笔记本中找到。不过,使用LSTM时,为了获得与基本RNN相近的结果,需要运行600个周期。这是因为LSTM需要学习更多参数,所以需要更多的训练迭代。对于简单示例,这似乎有些过度,但对于大型数据集,LSTM比简单RNN表现更好。LSTM架构模型的输出如下:
| 指标 | 值 |
| ---- | ---- |
| train mse | 0.0020806745160371065 |
| test mse | 0.01499235536903143 |
| test rmse | 0.12244327408653947 |
以下是将简单RNN转换为LSTM的流程:
graph LR
超级会员免费看
订阅专栏 解锁全文
1284

被折叠的 条评论
为什么被折叠?



