edu.udo.cs.myGP
Class Regression

java.lang.Object
  extended by edu.udo.cs.myGP.GPBase
      extended by edu.udo.cs.myGP.Regression

public class Regression
extends GPBase

Gaussian Process Regression. REFERENCES: Lehel Csato. Gaussian Processes --- Iterative Sparse Approximations. PhD thesis, Aston University, Birmingham, UK, March 2002. TODO: - own Matrix implementation with SE-cholesky-decomposition and the ability to constrain matrix operation on sub matrices - CompositeKernel implementation for kernels based on finite basis functions

Version:
$Id: Regression.java,v 1.5 2006/08/03 14:39:35 ingomierswa Exp $
Author:
Piotr Kasprzak

Nested Class Summary
protected  class Regression.Score
          Used to hold a score value with an associated index
 
Field Summary
 
Fields inherited from class edu.udo.cs.myGP.GPBase
model, parameter, problem
 
Constructor Summary
Regression(RegressionProblem problem, Parameter parameter)
          Constructor
 
Method Summary
private  void deleteBV(Jama.Matrix alpha, Jama.Matrix C, Jama.Matrix Q, double[][] basisVectors, int d, int index)
          Delete the given BV from the BV set by adjusting the parametrisation of the GP using eqs. (3.19), (3.21) and (3.22): alpha_t+1 = alpha^{(r)} - alpha^star / (c^star + q^star) * (Q^star + C^star) C_t+1 = C^{(r)} + Q^star * Q^star^T / q^star - (Q^star + C^star) * (Q^star + C^star)^T / (q^star + c^star) Q_t+1 = Q^{(r)} - Q^star * Q^star^T / q^star
private  java.util.TreeSet getMinScoresGeometrical(Jama.Matrix alpha, Jama.Matrix C, Jama.Matrix Q, int d)
          Return the scores of all BVs.
private  java.util.TreeSet getMinScoresKLApprox(Jama.Matrix alpha, Jama.Matrix C, Jama.Matrix Q, int d)
          Return the scores of all BVs.
 Model learn()
          The hard work is done here
private  double scalarProduct(double[][] x, double[][] y, int d)
          Compute the (canonical) scalar product between x and y, using only the first d components of the vectors
private  void swapRowsAndColumns(double[][] A, int i, int j)
          Swap the rows / columns of a symmetric n x n matrix, which is represented as a double[][].
 java.lang.String toString()
          Identify the GP
 
Methods inherited from class edu.udo.cs.myGP.GPBase
getModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Regression

public Regression(RegressionProblem problem,
                  Parameter parameter)
Constructor

Method Detail

scalarProduct

private double scalarProduct(double[][] x,
                             double[][] y,
                             int d)
                      throws java.lang.Exception
Compute the (canonical) scalar product between x and y, using only the first d components of the vectors

Throws:
java.lang.Exception


swapRowsAndColumns

private void swapRowsAndColumns(double[][] A,
                                int i,
                                int j)
Swap the rows / columns of a symmetric n x n matrix, which is represented as a double[][].


learn

public Model learn()
            throws java.lang.Exception
The hard work is done here

Specified by:
learn in class GPBase
Throws:
java.lang.Exception


getMinScoresKLApprox

private java.util.TreeSet getMinScoresKLApprox(Jama.Matrix alpha,
                                               Jama.Matrix C,
                                               Jama.Matrix Q,
                                               int d)
Return the scores of all BVs. The score used is a mean based approximation to the true KL-distance between the full GP and the GP without the current BV for which the score is calculated.


getMinScoresGeometrical

private java.util.TreeSet getMinScoresGeometrical(Jama.Matrix alpha,
                                                  Jama.Matrix C,
                                                  Jama.Matrix Q,
                                                  int d)
Return the scores of all BVs. The score used is based on the euclidean distance between the current BV and it's orthogonal projection into the span of all the other BVs. This score is especially important since it can (must!) be used to prevent the kernel gram matrix from becoming too badly conditioned.


deleteBV

private void deleteBV(Jama.Matrix alpha,
                      Jama.Matrix C,
                      Jama.Matrix Q,
                      double[][] basisVectors,
                      int d,
                      int index)
Delete the given BV from the BV set by adjusting the parametrisation of the GP using eqs. (3.19), (3.21) and (3.22): alpha_t+1 = alpha^{(r)} - alpha^star / (c^star + q^star) * (Q^star + C^star) C_t+1 = C^{(r)} + Q^star * Q^star^T / q^star - (Q^star + C^star) * (Q^star + C^star)^T / (q^star + c^star) Q_t+1 = Q^{(r)} - Q^star * Q^star^T / q^star


toString

public java.lang.String toString()
Identify the GP

Overrides:
toString in class java.lang.Object



Copyright © 2001-2006