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
Add explanation for the assumption of what counts as signal in BRSA, correct default optimizer of BRSA #337
Conversation
…rom traditional RSA on what counts as signal. Also corrected the mismatch between documentation and actual implementation of the default optimizer. L-BFGS-B appears to require less memory and fits faster in each iteration than BFGS. But it is possible that more iterations are needed because Hessian is approximated, so the default max number of iteration is increased
brainiak/reprsimil/brsa.py
Outdated
Please note that the model assumes that the covariance matrix U which | ||
all \\beta_i follow is zero-meaned. For more details of its implication, | ||
see documentation of `.BRSA` | ||
|
||
Parameters | ||
---------- | ||
n_iter : int. Default: 50 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same.
brainiak/reprsimil/brsa.py
Outdated
under the assumption in BRSA, their similarity is 1; under the assumption | ||
that only deviation of pattern from average patterns is signal of interest, | ||
their similarity should be -1. | ||
|
||
Parameters | ||
---------- | ||
n_iter : int. Default: 50 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This a good example for why we should not list defaults in docstrings: it creates the need to change values in an additional place, which is frequently forgotten, such as in this PR.
My recommendation: do not list the default in the docstring; it is already visible in the HTML docs in the function definition.
tests/reprsimil/test_brsa.py
Outdated
@@ -178,7 +178,7 @@ def test_fit(): | |||
rank = n_C - 1 | |||
n_nureg = 1 | |||
brsa = BRSA(rank=rank, n_nureg=n_nureg, tol=2e-3, | |||
n_iter=4, init_iter=4, auto_nuisance=True) | |||
n_iter=20, init_iter=4, auto_nuisance=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this the minimum number that works with L-BFGS-B? Just trying to minimize required time for tests.
@mihaic Yes! I will resubmit today :) |
…educed number of iteration in test code and increased that in brsa module.
add notes in the documentation for the different assumption in BRSA from traditional RSA on what counts as signal. Also corrected the mismatch between documentation and actual implementation of the default optimizer. L-BFGS-B appears to require less memory and fits faster in each iteration than BFGS. But it is possible that more iterations are needed because Hessian is approximated, so the default max number of iteration is increased