LSTM/RNN 多对一
LSTM/RNN many to one
我有以下化学过程的数据集,该过程由 5 个连续的输入向量组成以产生 1 个输出。每个输入每分钟采样一次,而输出 os 每 5 采样一次。
虽然我认为输出取决于之前的 5 个输入向量,但我还是决定为我的设计寻找 LSTM。在对我的 LSTM 架构应该如何进行大量研究后,我得出结论,我应该用 zeros 屏蔽一些输出序列,只保留最后一个输出。根据我的数据集,最终架构如下:
我的问题是:我的 3D 输入张量参数应该是什么?例如。 [5、5、?]?还有我的 "Batch size" 应该是什么?应该是我样品的数量吗?
由于您要进行多对一序列建模,因此不需要在输出中填充零(不需要)。最简单的事情是在最后一个时间步执行分类,即在 RNN/LSTM 看到第 5 个输入之后。您的 3D 输入张量的维度将为 [batch_size、sequence_length、input_dimensionality],其中 sequence_length 在您的情况下为 5(第 1-5、7-11 行, 13-17 等),并且 input_dimensionality 也是 5(即 A-E 列)。
Batch_size depends on the number of examples (also how much reliable is your data), if you have more than 10,000 examples then batch size of 30-50 should be okay (read this 关于选择合适批量大小的说明)。
看之前的回答,我会说你不必做多对一的架构。这真的取决于你遇到的问题。例如,如果您的系统过去有很多依赖项,即在您的案例中有超过 5 个样本,那么最好采用多对多架构,但输入和输出频率不同。但是,如果您认为前 5 个样本不会影响您接下来的 5 个样本。那么多对一的架构就可以做到。
此外,如果您的问题是回归,您可以使用密集层,因为 LSTM 单元格的输出是输出范围为 (-1, 1) 的 tanh。
我有以下化学过程的数据集,该过程由 5 个连续的输入向量组成以产生 1 个输出。每个输入每分钟采样一次,而输出 os 每 5 采样一次。
虽然我认为输出取决于之前的 5 个输入向量,但我还是决定为我的设计寻找 LSTM。在对我的 LSTM 架构应该如何进行大量研究后,我得出结论,我应该用 zeros 屏蔽一些输出序列,只保留最后一个输出。根据我的数据集,最终架构如下:
我的问题是:我的 3D 输入张量参数应该是什么?例如。 [5、5、?]?还有我的 "Batch size" 应该是什么?应该是我样品的数量吗?
由于您要进行多对一序列建模,因此不需要在输出中填充零(不需要)。最简单的事情是在最后一个时间步执行分类,即在 RNN/LSTM 看到第 5 个输入之后。您的 3D 输入张量的维度将为 [batch_size、sequence_length、input_dimensionality],其中 sequence_length 在您的情况下为 5(第 1-5、7-11 行, 13-17 等),并且 input_dimensionality 也是 5(即 A-E 列)。 Batch_size depends on the number of examples (also how much reliable is your data), if you have more than 10,000 examples then batch size of 30-50 should be okay (read this 关于选择合适批量大小的说明)。
看之前的回答,我会说你不必做多对一的架构。这真的取决于你遇到的问题。例如,如果您的系统过去有很多依赖项,即在您的案例中有超过 5 个样本,那么最好采用多对多架构,但输入和输出频率不同。但是,如果您认为前 5 个样本不会影响您接下来的 5 个样本。那么多对一的架构就可以做到。
此外,如果您的问题是回归,您可以使用密集层,因为 LSTM 单元格的输出是输出范围为 (-1, 1) 的 tanh。