Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Jacobian along Trajectory #169

Open
jClugstor opened this issue Mar 24, 2023 · 7 comments
Open

Feature Request: Jacobian along Trajectory #169

jClugstor opened this issue Mar 24, 2023 · 7 comments

Comments

@jClugstor
Copy link

I think it would be very good if we were able to calculate the jacobian of the system along the trajectory. Among other advantages, this would allow us to find the lyapunov exponent spectrum of the attractor. Is this a possibility? I would be willing to help with this in anyway possible, if this is feasible.

@MartinuzziFrancesco
Copy link
Member

This is very doable, it just needs the esn to be a callable function of the input esn(x) and call the jacobian from ForwadDiff. This will need a little re arranging of the internals and also some API calls, but I think this is long overdue. I'll write a high level post under this issue detailing the changes and we can split some of the work if you want

@jClugstor
Copy link
Author

Sorry for waiting so long to reply, that sounds great to me!

@jClugstor
Copy link
Author

Any updates on this? The semester is finally over, so I'll have a lot of time to help for a couple of months.

@MartinuzziFrancesco
Copy link
Member

Sorry it took me a while to get back at you, I initially thought that the solution would have involved a little more foundation work but I think that there is a quick solution. In order to get the Jacobian we would need a model that inputs and outputs a vector, that at the moment we don't have since the esn and the output_layer are not in the same struct. I think it would suffice the have a build_model function that takes as input the ESN struct and the output_layer struct and return a single function based on a mutable struct that also recursively saves the reservoir state for each input. I can get some starting code done later this week if you think this description feels convoluted

@jClugstor
Copy link
Author

I think I see what you're getting at, but I'll be on vacation for the next two weeks so I won't have much of a chance to look at it. When I get back though I can definitely take a look.

@jClugstor
Copy link
Author

Alright, so I think what you're saying is that there could be some function like
function build_model(esn::ESN, opl::OutputLayer) . . end
that should return a function that will take a vector, and output the next prediction?

@MartinuzziFrancesco
Copy link
Member

yes, that is more or less what is on my mind!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants