mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-04-29 23:06:22 +02:00
Update LFM kernel backlog items - complete code review, start design phase
This commit is contained in:
parent
de37894a56
commit
c8e98f99ee
2 changed files with 29 additions and 8 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
id: "design-modern-lfm-kernel"
|
id: "design-modern-lfm-kernel"
|
||||||
title: "Design modern LFM kernel architecture"
|
title: "Design modern LFM kernel architecture"
|
||||||
status: "Proposed"
|
status: "In Progress"
|
||||||
priority: "High"
|
priority: "High"
|
||||||
created: "2025-08-15"
|
created: "2025-08-15"
|
||||||
last_updated: "2025-08-15"
|
last_updated: "2025-08-15"
|
||||||
|
|
@ -38,8 +38,8 @@ Design a modern LFM kernel implementation that follows GPy's current architectur
|
||||||
- [ ] Design parameter handling for mass, damper, spring, sensitivity, delay
|
- [ ] Design parameter handling for mass, damper, spring, sensitivity, delay
|
||||||
- [ ] Plan integration with GPy's multioutput framework
|
- [ ] Plan integration with GPy's multioutput framework
|
||||||
- [ ] Design cross-kernel computation methods
|
- [ ] Design cross-kernel computation methods
|
||||||
- [ ] Plan parameter tying and constraint handling
|
|
||||||
- [ ] Design efficient computation methods for large datasets
|
- [ ] Design efficient computation methods for large datasets
|
||||||
|
- [x] Plan parameter tying and constraint handling (assumed to be addressed separately)
|
||||||
|
|
||||||
## Acceptance Criteria
|
## Acceptance Criteria
|
||||||
- [ ] Complete design specification document
|
- [ ] Complete design specification document
|
||||||
|
|
@ -50,10 +50,20 @@ Design a modern LFM kernel implementation that follows GPy's current architectur
|
||||||
|
|
||||||
## Implementation Notes
|
## Implementation Notes
|
||||||
- Study how other multioutput kernels in GPy handle output indices
|
- Study how other multioutput kernels in GPy handle output indices
|
||||||
- Consider parameter tying approaches from MATLAB implementation
|
|
||||||
- Design for extensibility to different differential equation types
|
- Design for extensibility to different differential equation types
|
||||||
- Plan for efficient computation of cross-kernel terms
|
- Plan for efficient computation of cross-kernel terms
|
||||||
|
- **Parameter Tying**: Assumed to be addressed by separate CIP-0002 work
|
||||||
|
- **Design Focus**: Clean LFM implementation without parameter tying workarounds
|
||||||
|
|
||||||
## Related
|
## Related
|
||||||
- CIP: 0001 (LFM kernel implementation)
|
- CIP: 0001 (LFM kernel implementation)
|
||||||
- Backlog: lfm-kernel-code-review
|
- Backlog: lfm-kernel-code-review
|
||||||
|
|
||||||
|
## Progress Updates
|
||||||
|
|
||||||
|
### 2025-08-15
|
||||||
|
Design task started after completion of code review:
|
||||||
|
- Code review identified parameter tying as a fundamental limitation
|
||||||
|
- Decision made to proceed with clean LFM implementation assuming parameter tying addressed separately
|
||||||
|
- Focus on core LFM functionality without parameter tying workarounds
|
||||||
|
- Ready to begin detailed design of modern LFM kernel architecture
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
id: "lfm-kernel-code-review"
|
id: "lfm-kernel-code-review"
|
||||||
title: "Review existing LFM kernel implementations"
|
title: "Review existing LFM kernel implementations"
|
||||||
status: "In Progress"
|
status: "Completed"
|
||||||
priority: "High"
|
priority: "High"
|
||||||
created: "2025-08-15"
|
created: "2025-08-15"
|
||||||
last_updated: "2025-08-15"
|
last_updated: "2025-08-15"
|
||||||
|
|
@ -28,7 +28,7 @@ Conduct a comprehensive review of existing LFM (Latent Force Model) kernel imple
|
||||||
## Tasks
|
## Tasks
|
||||||
- [x] Review `GPy/kern/src/eq_ode1.py` and `eq_ode2.py` implementations
|
- [x] Review `GPy/kern/src/eq_ode1.py` and `eq_ode2.py` implementations
|
||||||
- [x] Analyze MATLAB LFM implementation structure and patterns
|
- [x] Analyze MATLAB LFM implementation structure and patterns
|
||||||
- [ ] Document current limitations and inconsistencies
|
- [x] Document current limitations and inconsistencies
|
||||||
- [ ] Identify reusable components and design patterns
|
- [ ] Identify reusable components and design patterns
|
||||||
- [ ] Compare parameter handling approaches
|
- [ ] Compare parameter handling approaches
|
||||||
- [ ] Review cross-kernel computation methods
|
- [ ] Review cross-kernel computation methods
|
||||||
|
|
@ -50,6 +50,7 @@ Conduct a comprehensive review of existing LFM (Latent Force Model) kernel imple
|
||||||
## Related
|
## Related
|
||||||
- CIP: 0001 (LFM kernel implementation)
|
- CIP: 0001 (LFM kernel implementation)
|
||||||
- Papers: Álvarez et al. (2009, 2012), Lawrence et al. (2006)
|
- Papers: Álvarez et al. (2009, 2012), Lawrence et al. (2006)
|
||||||
|
- Backlog: parameter-tying-framework (fundamental dependency)
|
||||||
|
|
||||||
## Progress Updates
|
## Progress Updates
|
||||||
|
|
||||||
|
|
@ -63,13 +64,23 @@ Started code review task. Initial findings:
|
||||||
- Complex kernel computation with multiple covariance types (Kuu, Kfu, Kuf, Kusu)
|
- Complex kernel computation with multiple covariance types (Kuu, Kfu, Kuf, Kusu)
|
||||||
- Uses `@Cache_this` decorator for performance optimization
|
- Uses `@Cache_this` decorator for performance optimization
|
||||||
|
|
||||||
**MATLAB Implementation:**
|
**GPmat Implementation:**
|
||||||
- More complete framework with `lfmCreate`, `lfmKernCompute`, `lfmKernParamInit`
|
- More complete framework with `lfmCreate`, `lfmKernCompute`, `lfmKernParamInit`
|
||||||
- Uses multi-kernel approach with parameter tying
|
- Uses multi-kernel approach with parameter tying
|
||||||
- Supports multiple displacements driven by multiple forces
|
- Supports multiple displacements driven by multiple forces
|
||||||
- Cleaner separation of concerns with dedicated model creation
|
- Cleaner separation of concerns with dedicated model creation
|
||||||
|
|
||||||
**Key Differences:**
|
**Key Differences:**
|
||||||
- GPy uses single kernel class per ODE order, MATLAB uses multi-kernel composition
|
- GPy uses single kernel class per ODE order, GPmat uses multi-kernel composition
|
||||||
- GPy has more complex index handling for multioutput
|
- GPy has more complex index handling for multioutput
|
||||||
- MATLAB has better parameter organization and tying mechanisms
|
- GPmat has better parameter organization and tying mechanisms
|
||||||
|
- **Critical Gap**: GPy lacks parameter tying framework (GPmat has `modelTieParam()`)
|
||||||
|
|
||||||
|
### 2025-08-15 (Parameter Tying Discovery)
|
||||||
|
**Major Finding**: Identified parameter tying as a fundamental limitation affecting LFM implementation:
|
||||||
|
- Created backlog item for parameter tying investigation
|
||||||
|
- Found 5+ years of GitHub issues requesting this functionality
|
||||||
|
- Related to paramz framework limitation (documented but not implemented)
|
||||||
|
- Created CIP-0002 for community discussion of parameter tying solutions
|
||||||
|
- **Decision**: Proceed with LFM implementation assuming parameter tying will be addressed separately
|
||||||
|
- **Rationale**: Keeps implementation clean and focused on core LFM functionality
|
||||||
Loading…
Add table
Add a link
Reference in a new issue