在KERAS中计算最佳输入并提取神经网络的权重

时间:2018-09-23 16:21:58

标签: tensorflow keras theano lstm rnn

我使用带有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。

我对任何建议感到高兴!

0 个答案:

没有答案