Skip to content

Sparse reservoir topologies #268

@MartinuzziFrancesco

Description

@MartinuzziFrancesco

Description

Introduced in Cossu2025, these topologies are built to increase performance while reducing complexity and randomness in reservoir initializations. They provide alternative constructions, some following the minimal complexity esn approach, others being created using a deterministic alternative to the usual rand_sparse approach. I believe all of these can implemented using the building blocks introduced in #267.

Description

  • Lower triangular (lower_triangular()): sampled uniformly in (-1, 1) and scaled. It provides weights on the diagonal and "lower" diagonals until a given sparsity is reached. This can be built stacking delay_line!s and a scale_radius! at the end.
  • Band (band_init()): sampled uniformly in (-1, 1) and scaled. Elements on the diagonal, and upper and lower diagonals until a given sparsity is reached. This is a self_loop! plus however many delay_line!s and backward_connection!s are needed. Closing with a scale_radius!
  • Ring: Essentially simple_cycle, rescaled to a chosen spectral radius. Stack simple_cycle and scale_radius!.
  • Toepliz (toepliz_init): essentially band_init but for each diagonal the elements are the same (think minimal complexity esn).
  • Circulant (circulant_init): Essentially simple_cycle, but with added diagonals below the top right element and the lower diagonal. This would be easy to obtain if we generalize the simple_cycle! function.

Metadata

Metadata

Assignees

No one assigned

    Labels

    good first issueGood for newcomersinitsinitializers for internal matrices

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions