我使用带有Tensorflow后端的Keras进行时间序列预测(大多数是3-6个输入,1个输出)。它们在预测任务中表现良好,但是我想从训练有素的网络中提取知识。
1。最佳输入集的计算 我想使用网络为给定的所需输出提供最佳输入集。有可能这样做吗?我只知道有关最大或最小输出推导的方法。
2。提取所有重量 使用Keras,我能够提取RNN的权重,例如喜欢:
Param tf.Variable 'simple_rnn_1/kernel:0' shape=(5, 1) dtype=float32_ref: [[ 0.32823798]
[ 0.35204217]
[-0.2824467 ]
[ 0.09021389]
[ 0.54498464]]
Param tf.Variable 'simple_rnn_1/recurrent_kernel:0' shape=(1, 1) dtype=float32_ref:
[[-1.]]
Param tf.Variable 'simple_rnn_1/bias:0' shape=(1,) dtype=float32_ref:
[0.01360767]
这是一个滑动窗口大小为5的RNN网络的示例。将RNN视为 y(t)=为什么h(t)+权重(内核,偏差)有用,但是如何获得隐藏输出 h(t)= H(为什么x(t)+ Whh h(t − 1)+ bh)的权重矩阵?最后,我想将RNN重写为动态反馈控制系统,例如 xt + 1 = Axt +Bφ(xt,ut),但是因此我需要隐藏的权重矩阵。
或者您可能还有其他选择来重写这样的KERAS模型吗?我想将动力学系统理论中的lyapunov稳定性应用于RNN。
我对任何建议感到高兴!