Я использую Keras с бэкэндом Tensorflow для прогнозирования временных рядов (в основном 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]
Это пример для сети RNN с размером скользящего окна 5. Рассматривая RNN как y (t) = Почему h (t) + от весы (ядро, смещение) полезны, но как получить весовые матрицы для скрытого вывода h (t) = H (Почему x (t) + Whh h (t - 1) + bh) ?В конце я хотел бы переписать RNN как динамическую систему управления с обратной связью, такую как xt + 1 = Axt + Bφ (xt, ut) , но поэтому мне нужны скрытые матрицы весов.
Или у вас есть другие варианты переписать модель KERAS, подобную этой?Я бы хотел применить устойчивость Ляпунова из теории динамических систем к RNN.
Я рад любым предложениям!