Skip to content
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

O3.1.1 Random Feature Development: Phase 2 #215

Open
6 of 8 tasks
odunbar opened this issue May 4, 2023 · 0 comments
Open
6 of 8 tasks

O3.1.1 Random Feature Development: Phase 2 #215

odunbar opened this issue May 4, 2023 · 0 comments
Assignees

Comments

@odunbar
Copy link
Collaborator

odunbar commented May 4, 2023

Following Issue #164 and after the PR #194 is merged, there are some subsequent work packages to do:

Tasks

@odunbar odunbar changed the title Random Feature Implementation: Phase 2 Random Feature Development: Phase 2 May 4, 2023
@odunbar odunbar mentioned this issue Sep 13, 2023
@odunbar odunbar changed the title Random Feature Development: Phase 2 O3.1 Random Feature Development: Phase 2 Sep 13, 2023
@odunbar odunbar changed the title O3.1 Random Feature Development: Phase 2 O3.1.1 Random Feature Development: Phase 2 Sep 13, 2023
bors bot added a commit that referenced this issue Oct 6, 2023
220: [WIP] Refactor and extend RF interface for more flexible kernels.  r=odunbar a=odunbar

<!--- THESE LINES ARE COMMENTED -->
## Purpose 
Addresses  points in #215 In particular:
- Closes #228 
- Closes #229 
- Closes #230
<!--- One sentence to describe the purpose of this PR, refer to any linked issues:
#14 -- this will link to issue 14
Closes #2 -- this will automatically close issue 2 on PR merge
-->


## To-do
<!---  list of proposed tasks in the PR, move to "Content" on completion 
- Proposed task
--> 

## Content
<!---  specific tasks that are currently complete 
- Solution implemented
-->
- Adds MCMC stage into `examples/GCM` and improves running interface
- Adds Shrinkage estimation into cross-validation for RF hyperparameter optimization.
- Adds Kernel interface for RF, where one specifies either a `Separable` or `Nonseparable` Kernel followed by the structure of the covariance to be used to sample the features.
    - `Nonseparable(cov)`: define one covariance structure on the `p * d`-dim space,
    -  `Separable(in_cov,out_cov)`: define one `d`-dim covariance for inputs and one `p`-dim covariance for outputs
- Choose covariance structures for `cov`,`in_cov`,`out_cov` from 
    - `OneDimFactor()`: Must be selected for 1D covariances
    - `DiagonalFactor(eps)`: Diagonal covariance plus `eps*I` 
    - `CholeskyFactor(eps)`: Cholesky representation `L*L^T` plus eps*I` 
    - `LowRankFactor(rank, eps)`: Symmetric factorization `W*W^T` where `W = 1+UDU'` D diag, U rectangular, plus `eps*I`
    - `HierarchicalLowRankFactor(rank, eps)`: Symmetric factorization `W*W^T` where `W = 1+UXU'` U rectangular, plus `eps*I` X cholesky factored
- Rebalancing the loss function seems to get far more robust results for vector RF
 
<!---
Review checklist

I have:
- followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/
- followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/
- followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy
- checked that this PR does not duplicate an open PR.

In the Content, I have included 
- relevant unit tests, and integration tests, 
- appropriate docstrings on all functions, structs, and modules, and included relevant documentation.

-->

----
- [ ] I have read and checked the items on the review checklist.


Co-authored-by: odunbar <[email protected]>
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

No branches or pull requests

1 participant