report condition number of metric for HMC adaptive samplers
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 2.8k
- Forks
- 388
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 15
Description
Summary:
Extend the functionality added in https://github.com/stan-dev/stan/pull/3230 to return the Hessian and the condition number of the Hessian at the end of adaptation.
Description:
The Stan User's Guide chapter on efficiency tuning describes what the condition number is, but this is not exposed in the Stan services layer.
Now that it is possible to output the metric in a JSON file, we should be able to provide functionality available in BridgeStan https://github.com/roualdes/bridgestan/blob/36d391a6fc8ac8a8ddc901a66df56e9e1b73fb13/src/bridgestan.cpp#L184-L206
to get the Hessian, compute the Eigenvalues, and get the ratio of largest/smallest.
We should do this for Optimization, ADVI, and Pathfinder as well - Pathfinder's diagnostics files would allow this.
The other algorithms would need to add more output writers.
Expected Output:
Additional fields added to output file metric.json.
Current Version:
v2.34.1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the Stan services layer and trace how adaptation currently writes metric.json and how Pathfinder writes diagnostics. Review the linked Stan pull request and BridgeStan condition-number implementation for context. Done means exposing the Hessian and its condition number for HMC adaptation, then extending equivalent output to Optimization, ADVI, and Pathfinder.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100