【发布时间】:2023-08-27 09:31:02
【问题描述】:
目标
尝试在多变量时间序列的数据集上运行 LSTM 自动编码器:
X_train (200, 23, 178) - X_val (100, 23, 178) - X_test (100, 23, 178)
现状
普通的自动编码器比 LSTM AE 的简单架构可以获得更好的结果。
我对如何使用 Repeat Vector 包装层有一些疑问,据我了解,该包装层应该简单地重复次数等于序列长度的最后一个状态LSTM/GRU 单元,用于馈送解码器层的输入形状。
模型架构不会出现任何错误,但结果仍然比简单的 AE 差一个数量级,而我希望它们至少是相同的,因为我使用的架构应该更适合时间问题。
首先,这些结果是否具有可比性?
我的 AE 模型:
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 178) 31862
_________________________________________________________________
batch_normalization (BatchNo (None, 178) 712
_________________________________________________________________
dense_1 (Dense) (None, 59) 10561
_________________________________________________________________
dense_2 (Dense) (None, 178) 10680
=================================================================
- 优化器:sgd
- 损失:mse
- 密集层的激活函数:relu
我的 LSTM/GRU AE:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 23, 178) 0
_________________________________________________________________
gru (GRU) (None, 59) 42126
_________________________________________________________________
repeat_vector (RepeatVector) (None, 23, 59) 0
_________________________________________________________________
gru_1 (GRU) (None, 23, 178) 127092
_________________________________________________________________
time_distributed (TimeDistri (None, 23, 178) 31862
=================================================================
- 优化器:sgd
- 损失:mse
- gru 层的激活函数:relu
【问题讨论】:
-
你能在这方面取得进展吗?如果你成功了,我会对你如何提高重建质量感兴趣。
-
刚刚设法提高了数据质量和样本。没有根据模型复杂性进一步管理任何事情。
-
有趣——它到底需要什么?例如,新的数据预处理、增加训练样本等。
-
抱歉耽搁了。是的,我用合成示例增加了训练集
标签: machine-learning lstm recurrent-neural-network autoencoder