Skip to content

Conversation

@JesusEV
Copy link
Owner

@JesusEV JesusEV commented Jun 26, 2024

This PR introduces modifications to handle the propagation delay of spikes propagating from the recurrent layer to the readout layer when this delay surpasses one resolution step. It also supports learning signals with delays exceeding one resolution step.

Additionally, the PR implements a series of consistency checks to ensure the proper configuration of generalized delay parameters (d_rec_out and d_out_rec) across various types of eprop neurons throughout the neural network.

Consistency Check for Recurrent and Output Neurons (d_out_rec):

  • Step 1: Recurrent neurons (eprop_iaf, eprop_iaf_adapt, eprop_iaf_psc_delta) transmit a test event using a delay specified by their own d_rec_out value.
  • Step 2: Output neurons (eprop_readout) receive the test event and compare the actual delay against their own d_rec_out parameter.

Connection-Specific Consistency Checks:

  • Rec-Rec Connection:

    • Connections between recurrent neurons can retrieve the delay parameters (d_rec_out and d_out_rec) from the target recurrent neuron.
  • Rec-Out Connection:

    • For connections from recurrent to output neurons, the delay is verified to match the d_rec_out set by the target output neuron using the check_connection function.
  • Out-Rec Connection (Feedback Connection):

    • For feedback connections from output to recurrent neurons, the delay is verified to match the d_out_rec set by the target output neuron using the check_connection function.

The following diagram illustrates these consistency checks.
support

@JesusEV JesusEV requested a review from akorgor June 26, 2024 12:17
@akorgor
Copy link
Collaborator

akorgor commented Jun 26, 2024

  • Could you please also adjust the eprop_supervised_classification_evidence-accumulation.py script?

@JesusEV JesusEV force-pushed the generalize-delays-recurrent-readout branch from 973e0bb to b1d0289 Compare July 3, 2024 10:01
@JesusEV JesusEV force-pushed the generalize-delays-recurrent-readout branch from b1d0289 to 0197878 Compare August 1, 2024 11:02
@github-actions
Copy link

Pull request automatically marked stale!

@github-actions github-actions bot added the stale label Nov 27, 2024
@JesusEV JesusEV force-pushed the generalize-delays-recurrent-readout branch from 0197878 to aa13386 Compare March 20, 2025 09:17
@github-actions github-actions bot removed the stale label Mar 21, 2025
Copy link
Collaborator

@akorgor akorgor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this nice feature! As discussed this would be ultimately best as a NEST extension module.

Comment on lines 167 to 171
if ( delay_out_rec_ < 1 )
{
throw BadProperty( "Broadcast delay of learning signals ≥ 1 required." );
}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if ( delay_out_rec_ < 1 )
{
throw BadProperty( "Broadcast delay of learning signals ≥ 1 required." );
}
if ( delay_out_rec_ < 1 )
{
throw BadProperty( "Connection delay from readout to recurrent neuron ≥ 1 required." );
}

JesusEV and others added 9 commits March 28, 2025 13:49
Co-authored-by: Agnes Korcsak-Gorzo <[email protected]>

Co-authored-by: Agnes Korcsak-Gorzo <[email protected]>
Co-authored-by: Agnes Korcsak-Gorzo <[email protected]>
Co-authored-by: Agnes Korcsak-Gorzo <[email protected]>
Co-authored-by: Agnes Korcsak-Gorzo <[email protected]>
Co-authored-by: Agnes Korcsak-Gorzo <[email protected]>
Co-authored-by: Agnes Korcsak-Gorzo <[email protected]>
@github-actions
Copy link

Pull request automatically marked stale!

@github-actions github-actions bot added the stale label May 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants