【问题标题】:Teach LSTMs concept of different frequencies教授 LSTM 不同频率的概念
【发布时间】:2018-10-02 01:47:07
【问题描述】:

在正弦波上训练 LSTM 非常简单。 LSTM 很容易理解如何预测未来数百个时间步长的波浪。

但是,一旦我尝试让它预测不同频率的正弦波,LSTM 就会变得非常无能。即使我尝试在许多不同频率的波上训练它,它也会忘记第一个波来学习下一个波。当我更改测试数据的频率时,我的 LSTM 如何失败的示例:

如何训练我的 LSTM 识别频率概念并处理任何正弦曲线?

编辑:

我正在使用的模型:

inputs = Input(shape=(self.timesteps, self.features))

bd_seq = Bidirectional(LSTM(128, return_sequences=True,
                                    kernel_regularizer='l2'),
                               merge_mode='sum')(inputs)
bd_sin = Bidirectional(LSTM(32, return_sequences=True,
                                    kernel_regularizer='l2'),
                               merge_mode='sum')(bd_seq)

bd_1 = Bidirectional(LSTM(self.features, activation='linear'),
                             merge_mode='sum')(bd_seq)
bd_2 = Bidirectional(LSTM(self.features, activation='tanh'),
                             merge_mode='sum')(bd_sin)
output = Add()([bd_1, bd_2])

self.model = Model(inputs=inputs, outputs=output)

【问题讨论】:

  • 好问题!你试过多层 LSTM 吗?也就是说,一个 LSTM RNN 的输出馈送到另一个 LSTM(第二层)的输入,以此类推 3 或 4 层,直到最后一层输出到损失函数。这是一种常见的架构,可以提高准确性,并且可能会在这种情况下有所作为。
  • 我正在使用具有双向 LSTM 的多层。完整模型在上面

标签: python tensorflow neural-network keras lstm


【解决方案1】:

“......它忘记了第一波学习下一个......”

这让我想……你是在训练一个序列,然后是另一个序列,然后是另一个序列?

对于任何模型的任何问题,这自然会失败。

您必须在同一批次中训练大量序列,或者,如果一次只训练一个序列,则每个时期不得超过一次。

freqs = list_of_frequencies
sinusoids = []
for freq in freqs:
    sinusoids.append(create_a_sinusoid(freq))

training_data = np.array(sinusoids).reshape((freqs,timesteps,features))

帮助模型的可能技巧:

  • 在输入数据中添加频率作为特征(对于所有步骤)(如果您知道它作为输入)
  • 让模型输出频率(如果您知道它是输出)并在频率上训练它。
  • 您可以将识别频率的模型与读取这些频率以预测所需输出的模型相结合

【讨论】:

  • 嗨,丹,现在 +1,我仍然需要等待我的模型完成训练,然后才能将其标记为已接受。如果您能稍微扩展您的答案以包括处理在整个信号中变化的不同幅度/幅度,我将非常感激。谢谢!
  • 这变得更复杂了......你的意思是,简单地查看一个序列并尝试扩展它?还是您的意思是添加更多参数并尝试以某种方式控制它?
  • 查看一个序列并尝试扩展它
  • 然后就是用例子训练。如果层数相乘,您使用的两个分支想法可能会很好?就像一层只有很少的振幅参数,另一层有很多正弦曲线? (现在是猜测)
  • 你认为规范化数据是处理幅度的好方法吗?
猜你喜欢
  • 2023-03-30
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 2023-03-31
  • 2017-04-29
  • 2020-11-16
相关资源
最近更新 更多