public class GHA extends java.lang.Object implements Projection<double[]>, java.io.Serializable
It guarantees that GHA finds the first k eigenvectors of the covariance matrix, assuming that the associated eigenvalues are distinct. The convergence theorem is formulated in terms of a timevarying learning rate η. In practice, the learning rate η is chosen to be a small constant, in which case convergence is guaranteed with meansquared error in synaptic weights of order η.
It also has a simple and predictable tradeoff between learning speed and accuracy of convergence as set by the learning rate parameter η. It was shown that a larger learning rate η leads to faster convergence and larger asymptotic meansquare error, which is intuitively satisfying.
Compared to regular batch PCA algorithm based on eigen decomposition, GHA is an adaptive method and works with an arbitrarily large sample size. The storage requirement is modest. Another attractive feature is that, in a nonstationary environment, it has an inherent ability to track gradual changes in the optimal solution in an inexpensive way.
PCA
,
Serialized FormConstructor and Description 

GHA(double[][] w,
double r)
Constructor.

GHA(int n,
int p,
double r)
Constructor.

Modifier and Type  Method and Description 

double 
getLearningRate()
Returns the learning rate.

DenseMatrix 
getProjection()
Returns the projection matrix.

double 
learn(double[] x)
Update the model with a new sample.

double[] 
project(double[] x)
Project a data point to the feature space.

double[][] 
project(double[][] x)
Project a set of data toe the feature space.

GHA 
setLearningRate(double r)
Set the learning rate.

public GHA(int n, int p, double r)
n
 the dimension of input space.p
 the dimension of feature space.r
 the learning rate.public GHA(double[][] w, double r)
w
 the initial projection matrix.r
 the learning rate.public DenseMatrix getProjection()
public double getLearningRate()
public GHA setLearningRate(double r)
public double[] project(double[] x)
Projection
project
in interface Projection<double[]>
public double[][] project(double[][] x)
Projection
project
in interface Projection<double[]>
public double learn(double[] x)
x
 the centered learning sample whose E(x) = 0.