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

gov.sandia.cognition.learning.algorithm.BatchCostMinimizationLearner Maven / Gradle / Ivy

There is a newer version: 4.0.1
Show newest version
/*
 * File:                BatchCostMinimizationLearner.java
 * Authors:             Justin Basilico and Kevin R. Dixon
 * Company:             Sandia National Laboratories
 * Project:             Cognitive Foundry
 *
 * Copyright July 19, 2006, 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;

import gov.sandia.cognition.annotation.CodeReview;
import gov.sandia.cognition.annotation.CodeReviews;
import gov.sandia.cognition.learning.function.cost.CostFunction;

/**
 * The {@code BatchCostMinimizationLearner} interface defines the functionality
 * of a cost-minimization learning algorithm should follow.
 * (These algorithms typically fall into the categories of "supervised" and 
 * "reinforcement" learning algorithms, but I don't like anthropomorphic terms.)
 * A {@code BatchLearner} takes two generics to parameterize it: 
 * {@code LearnableType} is the class of thing we're going to minimize and the 
 * second parameter {@code CostFunctionType} is a class of {@code CostFunction}
 * that can evaluate the {@code LearnableType}.
 * 
 * @param    The type of parameters that the cost function 
 *          takes. For example, a Collection of InputOutputPairs.
 * @param    The type of object created by the learning algorithm.
 *          For example, a {@code FeedforwardNeuralNetwork}.
 * @author  Justin Basilico
 * @author  Kevin R. Dixon
 * @since   1.0
 */
@CodeReviews(
    reviews={
        @CodeReview(
            reviewer="Kevin R. Dixon",
            date="2008-07-22",
            changesNeeded=false,
            comments={
                "Moved previous code review to annotation.",
                "Interface looks fine."
            }
        )
        ,
        @CodeReview(
            reviewer="Justin Basilico",
            date="2006-10-03",
            changesNeeded=false,
            comments={
                "Added some missing documentation.",
                "Interface looks fine."
            }
        )
    }
)
public interface BatchCostMinimizationLearner
    extends BatchLearner
{

    /**
     * Invokes the minimization (learning) call using the given cost function
     * parameters.
     *
     * @param   minimizationParameters The parameters for the cost function to
     *          minimize against.
     * @return  The object learned by the learning algorithm.
     */
    ResultType learn(
        CostParametersType minimizationParameters);

    /**
     * Gets the cost function that the learner is minimizing.
     *
     * @return  The CostFunction that the learner's algorithm is minimizing.
     */
    CostFunction 
        getCostFunction();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy