【问题标题】:How to predict the class before the sequence ends : Sequence classification (using RNN's/LSTM's in Keras)?如何在序列结束前预测类别:序列分类(在 Keras 中使用 RNN/LSTM)?
【发布时间】:2019-11-25 02:50:58
【问题描述】:

我一直在 Ke​​ras 中使用 LSTM 进行序列分类。 我有 200 个序列属于 0 或 1 两个类 每个序列都有一个从 T1、T2、T3 .....T50 开始的时间步长

如何在训练后的时间步 T40(序列结束之前)更早地​​预测类?

例如:培训

给定:1、2、3、4、5 --> 预测:“好”

给定:6、7、8、9、10 --> 预测:“坏”

预测:(我需要的)

给定 [1,2,3] --> 预测:'好'

我确信会有一些方法/论文/资源来满足我的上述要求。

我的工作模式

我的数据包含车辆 CAN 信号、动态数据。

X.shape = (195,100,4) 
# 195 segments, each segment is of shape 100*4 
# every row in 100*4 corresponds to each Time step 
# each time step in 100*4 represented as t1, t2, t3,.....t100

Y.shape(195,)
# each segment out of 195 segments belongs to either 0 or 1 (2 classes)

Keras 代码

input_ = Input(shape=(100,4))

x = LSTM(10, return_sequences= True, activation='tanh')(input_)

x = GlobalMaxPool1D()(x) 

output = Dense(1, activation="sigmoid")(x)

model = Model(inputs=input_, outputs=output)

model.compile(
  loss='binary_crossentropy',
  optimizer=Adam(lr=1e-3),
  metrics=['accuracy']
)

# Training
r = model.fit(
  X,
  Y,
  batch_size=5,
  epochs=100,
  validation_split=0.1
)

【问题讨论】:

  • 最好不要,句子内容可能会因为结尾词而有很大差异
  • 我无法理解您的意思..@user8426627 供您参考,我不使用 NLP 或句子、嵌入层。我正在处理一段时间内的车辆动力学数据
  • 请发布一个基本模型作为一个可行的例子。
  • 好的,如果你想要它只是训练不同的长度。您想要 1,2,3,4,5->good, 1 2 3-> good,第二个只是数据集中的另一个数据,很容易创建:1-> good, 1,2, - > 好,等等...我对于动态数据随着时间的推移可能 1D CNN 或 RCNN(1D CNN -> RNN)是更好的选择
  • @NathanMcCoy 请看我上面编辑过的问题 这是我到目前为止所做的..我不确定我所做的是否正确.. 如果我错了,请纠正我

标签: python keras deep-learning lstm recurrent-neural-network


【解决方案1】:

学习如何在您的 API 中进行一维卷积的教程。我没有使用过 Keras,但它会是这样的:

1) 具有大小(批次、序列、项目)的数据集,其中项目的大小为 1 ,因此您有:[[[1]、[2]、[3]、[4]、[5] ] ... [[1],[2],[0]] [[1],[0],[0]] ...] 等等。如果 convo if 大小为 1,则用零填充它。 例如,大小为 3 的 Convo 层适用于每个序列: [[1],[2],[3],[4],[5]] -> convo1d -> (1,2,3)(2,3,4)(3,4,5) ,其中 ( 1,2,3) 是map apply的结果

2) 然后大小为 (batch, sequence-map_size+1, items) 的 convo 的输出进入某个循环层,在您的情况下,它将是多对多的,这意味着在每个输入后创建输出并反向传播项顺序。

如果您要向我发送数据,我会在 Pytorch 中实现,非常简单

【讨论】:

猜你喜欢
  • 2021-11-03
  • 2021-04-21
  • 1970-01-01
  • 2015-08-11
  • 2018-09-04
  • 1970-01-01
  • 2021-01-25
  • 1970-01-01
  • 2018-12-23
相关资源
最近更新 更多