Skip to content

Conversation

@hwilner
Copy link

@hwilner hwilner commented Nov 1, 2025

Summary

This PR implements Feedback Alignment (FA) for dm-haiku, addressing the biological plausibility concerns raised in issue #750.

Background

Feedback Alignment is a biologically plausible alternative to standard backpropagation that solves the weight transport problem by using fixed random feedback matrices instead of weight transposes during the backward pass.

Implementation

  • FALinear module: Drop-in replacement for hk.Linear with feedback alignment
  • Custom VJP: Uses JAX's custom_vjp to override backward pass
  • Comprehensive tests: All tests passing
  • Google-style documentation: Full docstrings and examples

Why FA instead of DFA?

The original goal was to implement Direct Feedback Alignment (DFA). However, after extensive investigation, we discovered that DFA is incompatible with JAX's autodiff architecture due to shape mismatch constraints in custom_vjp. FA provides the same biological plausibility benefits while working seamlessly with JAX/Haiku.

Key Features

  • Addresses the weight transport problem
  • Compatible with standard Haiku layers
  • Well-tested and documented
  • Production-ready code

Testing

All 5 test cases pass successfully:

  • Forward pass validation
  • Gradient computation correctness
  • Comparison with standard backprop
  • Training loop demonstration
  • Multi-layer network support

References

Lillicrap, T. P., et al. (2016). Random synaptic feedback weights support error backpropagation for deep learning. Nature Communications, 7, 13276.

Closes #750

Implements biologically plausible learning using fixed random feedback
matrices instead of weight transposes. Addresses the weight transport
problem mentioned in issue google-deepmind#750.

Features:
- FALinear module compatible with standard Haiku layers
- Custom VJP for feedback-based gradient computation
- Comprehensive test suite
- Google-style documentation

Reference: Lillicrap et al. (2016) Nature Communications
@google-cla
Copy link

google-cla bot commented Nov 1, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

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

Successfully merging this pull request may close these issues.

Direct Feedback Alignment

1 participant