如何识别LSTM中的重要功能

我有一个二进制分类问题,对于每个数据点,我有以下3个时间序列。

data_point,time_series1,time_series2,time_series3,label
d1,[0.1,.....,0.5],[0.8,0.6],0.8],1
and so on

我正在使用以下代码执行我的二进制分类。

model = Sequential()
model.add(LSTM(100,input_shape=(25,4)))
model.add(Dense(50))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])

因为,目前我正在考虑将其归类为黑匣子任务,所以我想更深入地研究一下内部发生的事情。

更具体地说,我想知道LSTM用于对我的数据点进行分类的重要功能。更重要的是,我想回答以下问题;

  • 哪个时间序列(即time_series1time_series2time_series3)在分类中的影响最大
  • 从受影响最大的时间序列中提取的特征是什么?

很高兴在需要时提供更多详细信息。

hanyudeng13105 回答:如何识别LSTM中的重要功能

注意机制用于此目的;程序化实现并不简单,但是存在可使用的存储库-参见下文。下面的示例输出。

关于“注意”是什么,请参见this SE answer和/或this Quora answer;简而言之,这是一种识别最重要的时间步长的方法,可以有效地绘制出时间上的“热图”。

最后,作为一个提示,放弃IndRNNs的LSTM;前者在800-1000步之间挣扎,后者在5000+时表现出成功。功能也更易于解释,因为每个通道都是独立的LSTM型门控机制。尽管如果速度很重要,则没有CuDNNIndRNN


本文链接:https://www.f2er.com/3155290.html

大家都在问