使用Pybrain进行序列模式识别
我正在尝试使用递归神经网络(RNN)来对一系列连续的数据进行分类。更具体地说,我有一组来自传感器的时间连续的读数,我需要学习一个算法,通过观察这些读数的变化,来检测与这种模式相关的状态。
举个例子:
时间步骤1:1.4
时间步骤2:1
时间步骤3:0.8
状态 = 行走。
新序列:
时间步骤1:0.4
时间步骤2:0.3
时间步骤3:0.1
状态 = 坐着。
实际上,我有12个传感器,这里只是为了方便展示一个数字序列。(这些数字不是真实的,我只是想传达这个概念!)
我正在尝试用Pybrain的RNN来构建我的网络,但我找不到可以检测这种信息的数据集容器。我试过使用SequentialData,但经过一些测试,我觉得它学到的只是数字序列中的下一个元素。以下是我构建数据集的方式:
self.alldata = SequentialDataSet(ds.num_features, 1)
# Now add the samples to the data set.
idx = 1
self.alldata.newSequence()
for sample in ds.all_moves:
self.alldata.addSample(sample.get_features(), [ds.get_classes().index(sample.class_)])
idx += 1
if (idx%6 == 0): #I want every 6 consecutive readings at a time
pdb.set_trace()
self.alldata.newSequence()
self.tstdata, self.trndata = self.alldata.splitWithProportion(0.25)
有没有什么想法可以让我以不同的方式做到这一点?Pybrain能处理这种分类问题吗?
1 个回答
1
一个解决方案
你可以这样来实现这个策略:

你可能需要12个传感器输入,再加上一个额外的输入,用来表示上一个时间点(t-1)的分类。我把图简化了,只显示了4个输入。