我的任务是使用MATLAB和任何神经网络框架对时间序列数据进行分类。
更具体地描述任务: 是计算机视觉领域的问题。是场景边界检测任务。
源数据是来自视频流的4个相邻帧直方图相关阵列。 根据这些数据,我们必须将这个时间序列分为两类:
因此,每个源数据条目的网络输入为4个双精度值,输出为一个二进制值。我将在下面展示src数据的示例:
0.997894,0.999413,0.982098,0.992164
0.998964,0.999986,0.999127,0.982068
0.993807,0.998823,0.994008,0.994299
0.225917,0.000000,0.407494,0.400424
0.881150,0.999427,0.949031,0.994918
问题是来自Matlab Neural Toolbox(如patternnet)的模式识别工具威胁源数据,如独立的entrues。但我坚信,只有在根据先前相关性的历史做出决定时,结果才是准确的。
但我也无法从提供时间序列分析的reccurent网络(如delaynet和narxnet)获得有效回应。
narxnet和delaynet返回糟糕的结果,看起来这些类型的网络不应该解决分类任务。我不是在这里插入任何代码,而是使用Matlab Neural Toolbox GUI完全自动生成。
我很感激任何帮助。特别是,一些建议哪种工具更适合完成我的任务。
答案 0 :(得分:1)
我不确定这个问题的分类有多难。 鉴于您的样本,4输入和1输出前馈神经网络就足够了。
如果您坚持使用历史输入,则只需预处理输入d
,以便
您的新输入D(t)
(时间为t
的向量)由d(t)
组成,是时间t
的1x4向量; d(t-1)
在时间t-1
是1x4向量; ... d(t-k)
是时间t-k
的1x4向量。
如果t-k <0
,请将其视为“0”。
所以你有1x(4(k + 1))向量作为输入,1输出。
与Dan提到的类似,你需要找到一个好的k
。
说到权重,我认为没有必要对输入进行额外的预处理,如窗口化方法,因为神经网络将被训练为每个输入维度分配权重。
听起来有点乱,因为神经网络会独立地考虑每个输入维度。这意味着您将信息丢失为四个相邻的相关性。
一种可能的解决方案是预处理提取邻域特征,例如使用 mean 和 std 作为两个代表原件的功能。