@Override public Matrix gradient(Matrix W) { SparseMatrix ret = spf.createMatrix(W.getNumRows(), W.getNumColumns()); int allRowsY = Y.getNumRows()-1; int allRowsW = W.getNumRows()-1; for (int i = 0; i < Y.getNumColumns(); i++) { this.f.setY(Y.getSubMatrix(0, allRowsY, i, i)); if(bias!=null) this.f.setBias(bias.getSubMatrix(0, allRowsY, i, i)); Matrix w = W.getSubMatrix(0, allRowsW, i, i); Matrix submatrix = f.gradient(w); ret.setSubMatrix(0, i, submatrix); } return ret; }
public void setValue( Matrix value) { final int dim = this.conditionalDistribution.getInputDimensionality(); if( (value.getNumRows() != dim) || (value.getNumColumns() != (dim+1) ) ) { throw new IllegalArgumentException( "Expected (dim x dim+1) Matrix" ); } Vector mean = value.getColumn(0); Matrix covariance = value.getSubMatrix(0, dim-1, 1,dim); this.conditionalDistribution.setMean(mean); this.conditionalDistribution.setCovariance(covariance); }
public void setValue( Matrix value) { final int dim = this.conditionalDistribution.getInputDimensionality(); if( (value.getNumRows() != dim) || (value.getNumColumns() != (dim+1) ) ) { throw new IllegalArgumentException( "Expected (dim x dim+1) Matrix" ); } Vector mean = value.getColumn(0); Matrix covariance = value.getSubMatrix(0, dim-1, 1,dim); this.conditionalDistribution.setMean(mean); this.conditionalDistribution.setCovariance(covariance); }
public void setValue( Matrix value) { final int dim = this.conditionalDistribution.getInputDimensionality(); if( (value.getNumRows() != dim) || (value.getNumColumns() != (dim+1) ) ) { throw new IllegalArgumentException( "Expected (dim x dim+1) Matrix" ); } Vector mean = value.getColumn(0); Matrix covariance = value.getSubMatrix(0, dim-1, 1,dim); this.conditionalDistribution.setMean(mean); this.conditionalDistribution.setCovariance(covariance); }
public double logEvaluate( Matrix input) { final int d = input.getNumRows(); Vector mean = input.getColumn(0); Matrix C = input.getSubMatrix(0,d-1,1,d); C.scaleEquals(1.0/this.covarianceDivisor); double lpg = this.gaussian.getProbabilityFunction().logEvaluate(mean); double lpiw = this.inverseWishart.getProbabilityFunction().logEvaluate(C); return lpg + lpiw; }
public double logEvaluate( Matrix input) { final int d = input.getNumRows(); Vector mean = input.getColumn(0); Matrix C = input.getSubMatrix(0,d-1,1,d); C.scaleEquals(1.0/this.covarianceDivisor); double lpg = this.gaussian.getProbabilityFunction().logEvaluate(mean); double lpiw = this.inverseWishart.getProbabilityFunction().logEvaluate(C); return lpg + lpiw; }
public double logEvaluate( Matrix input) { final int d = input.getNumRows(); Vector mean = input.getColumn(0); Matrix C = input.getSubMatrix(0,d-1,1,d); C.scaleEquals(1.0/this.covarianceDivisor); double lpg = this.gaussian.getProbabilityFunction().logEvaluate(mean); double lpiw = this.inverseWishart.getProbabilityFunction().logEvaluate(C); return lpg + lpiw; }
singularValues = singularValues.getSubMatrix( 0, newRows - 1, 0, newCols - 1); termBasis = termBasis.getSubMatrix( 0, dimensionality - 1, 0, rank - 1);
singularValues = singularValues.getSubMatrix( 0, newRows - 1, 0, newCols - 1); termBasis = termBasis.getSubMatrix( 0, dimensionality - 1, 0, rank - 1);
singularValues = singularValues.getSubMatrix( 0, newRows - 1, 0, newCols - 1); termBasis = termBasis.getSubMatrix( 0, dimensionality - 1, 0, rank - 1);
y = smf.createMatrix(1, ntasks); for (int i = 0; i < this.ntasks; i++) { final Matrix subu = this.u.getSubMatrix(0, nusers - 1, i, i); final Matrix subw = this.w.getSubMatrix(0, nfeatures - 1, i, i); final Matrix yval = calcY(subu, x, subw);
Matrix discriminant = coefficients.getSubMatrix(0, N-1, 0, M-1); Vector bias = coefficients.getColumn(M);
Matrix discriminant = coefficients.getSubMatrix(0, N-1, 0, M-1); Vector bias = coefficients.getColumn(M);
Matrix discriminant = coefficients.getSubMatrix(0, N-1, 0, M-1); Vector bias = coefficients.getColumn(M);