LSTM Autoencoder用于预训练各种长度的输入序列

时间:2017-12-11 08:49:57

标签: deep-learning keras recurrent-neural-network sequences autoencoder

我需要一些帮助来了解使用深度学习解决问题的最佳方法。 我的数据库中有许多未标记的序列和一些标记的序列。 我想检索每个标记序列的标签。 序列具有各种长度,并且通常很长。 到目前为止,我一直在考虑做以下事情:

  1. 使用LSTM自动编码器作为"预训练步骤"使用未标记的数据学习序列的简化表示

  2. 使用相同的模型对标记的序列进行编码

  3. 使用其他模型从简化表示中检索标记数据(LSTM,SVM,...)

  4. 所以这是我的问题:

    如何处理不同长度的序列?

    到目前为止,我已经尝试了以下自动编码器部分(使用Keras后端Theano):

    model = Sequential()
    model.add(Masking(mask_value=0, input_shape=(None,2)))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(LSTM(32, input_shape = (8785,2)))
    model.add(RepeatVector(8785))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(TimeDistributed(Dense(2)))
    

    填充序列后。 但我不确定这样做是否可行,因为我的测试数据(标记序列)可能比列车数据的最长序列(未标记序列)长。

    没用说,所有这一切对我来说都是新鲜的,在看了很多文章/论坛后,我有点迷失方向。我也不确定这是处理这种问题的最佳方法。

    任何帮助将不胜感激。谢谢。

0 个答案:

没有答案