For almost all of the current implementations, it is possible to apply them in a block approximative fashion. In addition,
it is possible to not solve inverse Hessian problems, but a different kind of curvature approximation, as the Gauss-Newton matrix.
This issue is meant to implement a flexible backend, which makes it possible to:
compose block structures
easily replace Hessian by Gauss-Newton computations
The API for the existing implementations of InfluenceFunctionModel should not change doing this.
A first realization should be done with #499.
Proposed generic abstractions:
GradientProvider (computes per sampel gradients)
Operator (maps gradients to transformed gradients)
OperatorGradientComposition (combine the first two, to get something like a bi-linear form, which acts on (transformed-)gradients, these are the composable blocks for block diagonal approximations )
BlockMapper (represents an ordered collection of composable blocks of type OperatorGradientComposition )
For almost all of the current implementations, it is possible to apply them in a block approximative fashion. In addition, it is possible to not solve inverse Hessian problems, but a different kind of curvature approximation, as the Gauss-Newton matrix.
This issue is meant to implement a flexible backend, which makes it possible to:
The API for the existing implementations of
InfluenceFunctionModel
should not change doing this.A first realization should be done with #499.
Proposed generic abstractions:
GradientProvider
(computes per sampel gradients)Operator
(maps gradients to transformed gradients)OperatorGradientComposition
(combine the first two, to get something like a bi-linear form, which acts on (transformed-)gradients, these are the composable blocks for block diagonal approximations )BlockMapper
(represents an ordered collection of composable blocks of typeOperatorGradientComposition
)