12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /**
- * @file TraceApproximation.h
- * @author Erik Rodner
- * @date 01/29/2010
- */
- #ifndef _NICE_OBJREC_TRACEAPPROXIMATIONINCLUDE
- #define _NICE_OBJREC_TRACEAPPROXIMATIONINCLUDE
- #include "core/vector/MatrixT.h"
- #include "vislearning/math/kernels/KernelData.h"
- #include "core/basics/Config.h"
- namespace OBJREC {
-
- /** @class TraceApproximation
- * approximation of the trace term within the gp regression gradient
- *
- * @author Erik Rodner
- */
- class TraceApproximation
- {
- protected:
- int numTraceSamples;
- int displayPoints;
- public:
-
- /** simple constructor */
- TraceApproximation( const NICE::Config *conf, const std::string & section = "TraceApproximation" );
-
- /** simple destructor */
- virtual ~TraceApproximation();
- /** stochastic approximation of the trace term $tr(K^{-1} jacobiMatrix)$
- * as described in "Efficient Implementation of Gaussian Processes ..." */
- double getApproximateTraceTerm ( const KernelData *kernelData, const NICE::Matrix & jacobiMatrix ) const;
-
- /** stochastic approximation of the trace term $tr(K^{-1} A (x) B)$
- * as described in "Efficient Implementation of Gaussian Processes ..." */
- double getApproximateTraceTermKronecker ( const KernelData *kernelData, const NICE::Matrix & A, const NICE::Matrix & B ) const;
- double getApproxTraceTermKroneckerPre ( NICE::Matrix & samples, NICE::Matrix & samplesPreMultiplied, const NICE::Matrix & A, const NICE::Matrix & B ) const;
- void preSampling ( const KernelData *kernelData, NICE::Matrix & samples, NICE::Matrix & samplesPreMultiplied ) const;
-
- };
- }
- #endif
|