使用神经网络提取模式

时间:2016-06-05 06:56:03

标签: neural-network deep-learning pattern-recognition

我正在尝试提取在某个事件发生时始终出现的常见模式。

例如,患者A,B和C均有心脏病发作。利用脉搏读数,我想找到心脏病发作前的常见模式。

在下一阶段,我想使用多个维度来完成此操作。例如,使用患者脉搏,温度和血压的读数,考虑到每个维度之间的时间和顺序,三维中出现的常见模式是什么。

使用神经网络解决此问题的最佳方法是什么?哪种类型的网络最好? (只需要指向正确的方向)

感谢所有人阅读

1 个答案:

答案 0 :(得分:3)

描述的问题看起来像时间序列预测问题。这意味着由某些现有过程生成的连续或离散现象的基本预测问题。作为此问题的原始数据,我们将有一系列样本 x(t),x(t + 1),x(t + 2),... ,其中x()表示考虑过程的输出,t表示某个任意时间点。

对于人工神经网络解决方案,我们将考虑时间序列预测,我们将组织我们的原始数据到新的序列。如您所知,我们将X视为将在ANN学习中使用的输入向量矩阵。对于时间序列预测,我们将构建一个关于以下模式的新集合。

在最基本的形式中,输入向量x将是一系列样本(x(tk),x(t-k + 1),...,x(t-1),x(t))在某个任意时间点t,从时间点tk,t-k + 1,...,t-1附加到它的前任样本。您应该为每个可能的时间点t生成每个示例。

但关键是预处理数据,以便我们获得最佳预测结果。

假设您的数据(现象)是连续的,您应该考虑应用一些采样技术。你可以从一个实验开始一些天真的采样周期Δt,但有更强的方法。参见例如Nyquist–Shannon Sampling Theorem,其中关键思想是允许从离散的x(Δt)样本中恢复连续的x(t)。当我们考虑到我们可能期望人工神经网络这样做时,这是合理的。

假设您的数据是离散的......您仍然需要尝试采样,因为这会加快您的计算速度,并可能提供更好的泛化。但关键建议是:做实验!因为最好的架构取决于数据,还需要正确预处理它们。

接下来是网络输出层。从您的问题来看,这似乎是二进制类预测。但也许更广泛的预测向量值得考虑?如何预测所考虑样本的未来,即x(t + 1),x(t + 2),并尝试不同的视野(未来的长度) ?

进一步阅读:

  1. 有人在这里提到了Python。以下是Keras对时间序列预测的一些很好的教程:Victor Schmidt, Keras recurrent tutorial, Deep Learning Tutorials
  2. 如果你需要一些真实的例子,本文很好:Fessant, Francoise, Samy Bengio, and Daniel Collobert. "On the prediction of solar activity using different neural network models." Annales Geophysicae. Vol. 14. No. 1. 1996.