-
Notifications
You must be signed in to change notification settings - Fork 31
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 conditional parameter fitting feature to the PEC. #2983
base: devel
Are you sure you want to change the base?
Conversation
Figured out a better way to reseed and already instatiated Optuna sampler. I was overwriting the RNG state in a hacky way before. I didn't realize there was a reseed_rng() method on the the base sampler class that can be called when the seed is re-initialized.
Test for CMA-ES sampler was actually just falling back to RandomSampler. I just want to test things work with another sampler so I switched to QMCSampler because it also supports 1D search spaces.
Added support for passing kwargs to un-instantiated optuna sampler.
…Link into fix_optuna_rng
Add argument to PEC that allows users to mask off trials for inclusion in the likelihood calculations.
…Link into feat/pec_cond_all
…Link into feat/pec_cond_all
…Link into feat/pec_cond_all
…Link into feat/pec_cond_all
…Link into feat/pec_cond_all
…Link into feat/pec_cond_all
psyneulink/core/compositions/parameterestimationcomposition.py
Dismissed
Show dismissed
Hide dismissed
psyneulink/core/compositions/parameterestimationcomposition.py
Dismissed
Show dismissed
Hide dismissed
psyneulink/core/compositions/parameterestimationcomposition.py
Dismissed
Show dismissed
Hide dismissed
psyneulink/core/compositions/parameterestimationcomposition.py
Dismissed
Show dismissed
Hide dismissed
psyneulink/core/compositions/parameterestimationcomposition.py
Dismissed
Show dismissed
Hide dismissed
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
The PEC conditional test was still marked skip. Now it is fixed and passing. I also lowered num_estimates on a lot of the PEC tests to make them faster. These are a low as I can go for the most part without having to change their expected test values.
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
psyneulink/core/compositions/parameterestimationcomposition.py
Dismissed
Show dismissed
Hide dismissed
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
…Link into feat/pec_cond_all
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
…Link into feat/pec_cond_all
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
Since Bryant is a main user of the PEC. Add his composition
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
Strange that the results are so different for fp64 vs fp32. I need to investigate further.
It runs faster, max_iterations controls the number of evaluations. It also seems to get rid of the issue of differences between fp32 and fp64 results. Will need to look into what is going on with differential evolution.
This PR causes the following changes to the html docs (ubuntu-latest-3.11):
See CI logs for the full diff. |
This PR adds a new parameter to the PEC constructor called
depends_on
that specifies conditions for parameters. This causes the PEC to fit a different parameter for each unique condition value in the dataframe. This PR also adds a new argument calledlikelihood_include_mask
which is a 1D bool array which specifies which rows of the data to include in the likelihood calculation. This lets users mask off specific rows in the data from the likelihood calculation. Note however, during estimation for a given parameter this trial will still be executed by the composition.Implementation of conditional parameter fitting required deep changes for how parameter values are passed to the simulation runs. This is because there was no support in the current compiled implementation for allowing for trial-by-trial variation of the parameters. To accomplish this, control mechanisms are now added to the inner composition for each parameter being estimated. These control mechanisms take the trial-by-trial values for each parameter from the composition input and override the values. Currently, the only parameter that is using the old control allocation approach of modulation is the random seed. A deeper refactoring might make sense in the future.