All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gov.sandia.cognition.learning.algorithm.gradient.ParameterGradientEvaluator Maven / Gradle / Ivy

There is a newer version: 4.0.1
Show newest version
/*
 * File:                ParameterGradientEvaluator.java
 * Authors:             Kevin R. Dixon
 * Company:             Sandia National Laboratories
 * Project:             Cognitive Foundry
 *
 * Copyright September 10, 2007, Sandia Corporation.  Under the terms of Contract
 * DE-AC04-94AL85000, there is a non-exclusive license for use of this work by
 * or on behalf of the U.S. Government. Export of this program may require a
 * license from the United States Government. See CopyrightHistory.txt for
 * complete details.
 *
 */

package gov.sandia.cognition.learning.algorithm.gradient;

import gov.sandia.cognition.annotation.CodeReview;
import gov.sandia.cognition.math.matrix.Vectorizable;
import gov.sandia.cognition.evaluator.Evaluator;
import gov.sandia.cognition.math.matrix.Matrix;
import gov.sandia.cognition.math.matrix.Vector;

/**
 * Interface for computing the derivative of the output with respect to the
 * parameters for a given input. The parameters are exposed through a vector
 * on this object, which implements {@link Vectorizable}.
 *
 * @param  
 *      Input type of the {@link Evaluator}. For example, {@link Vector}.
 * @param  
 *      Input type of the {@link Evaluator}. For example, {@link Vector}.
 * @param  
 *     Type of the gradient. For example, {@link Matrix} when the parameter
 *     and output types are a {@link Vector}.
 * @author Kevin R. Dixon
 * @since  2.0
 */
@CodeReview(
    reviewer="Kevin R. Dixon",
    date="2008-07-23",
    changesNeeded=false,
    comments={
        "Minor change to javadoc.",
        "Looks fine."
    }
)
public interface ParameterGradientEvaluator
    extends Evaluator,
        Vectorizable
{
    
    /**
     * Computes the derivative of the output with respect to the parameters for
     * a particular input.
     * 
     * @param   input 
     *      Input about which to compute the parameter gradient.
     * @return 
     *      Change of the parameters with respect to the output.
     */
    public GradientType computeParameterGradient(
        final InputType input);
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy