dymad.modules.krr¶
Classes
|
Base class for Kernel Ridge Regression, in particular: |
|
Scalar KRR for multiple outputs, and one kernel per output |
|
Scalar KRR for multiple outputs but one single kernel |
|
Operator-valued kernel K(X,Z) -> (N,M,Dy,Dy). |
|
KRR for vector fields on a manifold, using a specialized tangent kernel. |
- class dymad.modules.krr.KRRBase(kernel, ridge_init=0, jitter=1e-10, device=None)¶
Bases:
ModuleBase class for Kernel Ridge Regression, in particular:
Multi-output single scalar kernel (the most common case)
Multi-output multiple scalar kernel (i.e., one kernel per output)
True operator-valued kernel (i.e., matrix-valued)
Subclasses must implement:
_ensure_solved(self)
_predict_from_solution(self, Xnew) -> (M, Dy)
- fit()¶
Precompute the linear solve, which can be backprop’d.
- Return type:
Tensor
- forward(Xnew)¶
Define the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- property ridge: Tensor¶
- set_train_data(X, Y)¶
- Return type:
None
- class dymad.modules.krr.KRRMultiOutputIndep(kernel, ridge_init=0, jitter=1e-10, device=None)¶
Bases:
KRRBaseScalar KRR for multiple outputs, and one kernel per output
A ModuleList of Dy scalar kernels (one per output).
Dy independent NxN Choleskys; Dy ridges (vector).
Bases:
KRRBaseScalar KRR for multiple outputs but one single kernel
One NxN Cholesky; solve Dy outputs together. One lambda (scalar) by default.
- class dymad.modules.krr.KRROperatorValued(kernel, ridge_init=0, jitter=1e-10, device=None)¶
Bases:
KRRBaseOperator-valued kernel K(X,Z) -> (N,M,Dy,Dy).
Solves (Kxx + lambda I) vec(alpha) = vec(Y), using a single (N*Dy)x(N*Dy) Cholesky.
- class dymad.modules.krr.KRRTangent(kernel, ridge_init=0, jitter=1e-10, device=None)¶
Bases:
KRRBaseKRR for vector fields on a manifold, using a specialized tangent kernel.
The formulation is based on Geometrically constraint Multivariate KRR (GMKRR) from
Huang, He, Harlim, Li, ICLR2025
Solves (Kxx + lambda I) vec(alpha) = vec(Y), but Kxx is given in a factorized form, so effectively we solve a smaller system in intrinsic dimension d << Dy.
(kxx + lambda I) vec(alpha) = vec(T^T * Y)
- set_manifold(manifold)¶
- Return type:
None