Add Linear Regression Rereferencing (LRR) #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
SelfSupervisedRegressionTransformer) and a concrete LRR implementation (LRRTransformer) inezmsg/learn/process/ssr.pyy = X @ (I - W)AffineTransformTransformer, which automatically exploits block-diagonal structure whenchannel_clustersare providedezmsg-sigprocdependency to>=2.13.1to useAffineTransformTransformer.set_weightsDetails
Framework (
SelfSupervisedRegressionTransformer):C = X^T Xand solves per-cluster ridge regressions via the block-inverse identity (one matrix inverse per cluster instead of a per-channel Cholesky loop)_on_weights_updatedand_processLRR (
LRRTransformer/LRRUnit):_on_weights_updatedcomputesI - Wand passes it to an internalAffineTransformTransformerset_weightsfor fast in-place updates without a full state resetLRRUnitprovides the ezmsg Unit wrapper withINPUT_SAMPLEsubscriber