充分利用LSTM进行序列内事件预测
假设以下一维序列: A, B, C, Z, B, B, #, C, C, C, V, $, W, A, % ... A, B, C, ..这里的字母代表“普通”事件。 #, $, %, ...这里的符号代表“特殊”事件 所有事件之间的时间间隔是不均匀的(从几秒到几天),尽管过去的事件越远,影响未来事件的可能性就越小。理想情况下,我可以明确考虑这些时间延迟。 大约有10000个普通事件类型,而有大约100个特殊事件类型。特殊事件之前的普通事件数量有所不同,但不太可能超过100-300。 从根本上讲,我对在普通事件序列中寻找最终可预测特殊事件的模式感兴趣。 现在,您可以用不同的方法来实现:创建特征向量+标准分类,关联规则学习,HMM等。 在这种情况下,我对于基于LSTM的网络最适合的情况感到好奇。直截了当就是做类似Karparthy的char-rnn的事情,并根据历史预测下一个事件。然后换一个新序列 C, Z, Q, V, V, ... , V, W 您可以在模型中运行它,然后查看最有可能发生的特殊事件。但这并不太合适。 由于这是一个时间分类问题,因此似乎应该做的正确的事情是使用Alex Graves所描述的连接主义时间分类。 但是,在此刻投入过多之前,我正在寻找更容易,更快捷的方法来进行试验,以了解LSTM在这里的适用性。Tensorflow将会在某个时候看到CTC示例,但尚未出现。 所以我的(子)问题是: 鉴于上述问题,我想尝试使用LSTM值得尝试char-rnn类型的方法,是我该硬着头皮掌握CTC,还是有一个更好的起点。 您将如何明确纳入事件间计时信息。使用带有无操作事件的固定时钟显然可以,但是很难看。 假设我设法训练了LSTM,是否可以检查模型以查看其发生了哪种事件“主题”?(即类似于卷积网络中的过滤器) 任何示例代码(首选python)总是有帮助的。 编辑:只是要补充一下,序列中有一些噪音。有些事件可以安全地忽略,但是确切地说哪些事件并非总是可以预先说出来的。因此,理想情况下,模型(及其衍生的主题)对此具有鲁棒性。