gov.sandia.cognition.learning.algorithm.perceptron
Class AggressiveRelaxedOnlineMaximumMarginAlgorithm

java.lang.Object
  extended by gov.sandia.cognition.util.AbstractCloneableSerializable
      extended by gov.sandia.cognition.learning.algorithm.AbstractBatchAndIncrementalLearner<InputOutputPair<? extends InputType,OutputType>,ResultType>
          extended by gov.sandia.cognition.learning.algorithm.AbstractSupervisedBatchAndIncrementalLearner<Vectorizable,Boolean,LinearBinaryCategorizer>
              extended by gov.sandia.cognition.learning.algorithm.perceptron.AbstractOnlineLinearBinaryCategorizerLearner
                  extended by gov.sandia.cognition.learning.algorithm.perceptron.AbstractKernelizableBinaryCategorizerOnlineLearner
                      extended by gov.sandia.cognition.learning.algorithm.perceptron.AggressiveRelaxedOnlineMaximumMarginAlgorithm
All Implemented Interfaces:
BatchAndIncrementalLearner<InputOutputPair<? extends Vectorizable,Boolean>,LinearBinaryCategorizer>, BatchLearner<Collection<? extends InputOutputPair<? extends Vectorizable,Boolean>>,LinearBinaryCategorizer>, IncrementalLearner<InputOutputPair<? extends Vectorizable,Boolean>,LinearBinaryCategorizer>, KernelizableBinaryCategorizerOnlineLearner, SupervisedBatchAndIncrementalLearner<Vectorizable,Boolean,LinearBinaryCategorizer>, SupervisedBatchLearner<Vectorizable,Boolean,LinearBinaryCategorizer>, SupervisedIncrementalLearner<Vectorizable,Boolean,LinearBinaryCategorizer>, VectorFactoryContainer, CloneableSerializable, Serializable, Cloneable

@PublicationReference(title="Ultraconservative online algorithms for multiclass problems",
                      author={"Koby Crammer","Yoram Singer"},
                      year=2003,
                      type=Journal,
                      publication="The Journal of Machine Learning Research",
                      pages={951,991},
                      url="http://portal.acm.org/citation.cfm?id=944936")
public class AggressiveRelaxedOnlineMaximumMarginAlgorithm
extends AbstractKernelizableBinaryCategorizerOnlineLearner

An implementation of the Aggressive Relaxed Online Maximum Margin Algorithm (AROMMA). It is an online learner for a linear binary categorizer that also has a kernel form.

Since:
3.3.0
Author:
Justin Basilico
See Also:
Serialized Form

Field Summary
 
Fields inherited from class gov.sandia.cognition.learning.algorithm.perceptron.AbstractOnlineLinearBinaryCategorizerLearner
vectorFactory
 
Constructor Summary
AggressiveRelaxedOnlineMaximumMarginAlgorithm()
          Creates a new AggressiveRelaxedOnlineMaximumMarginAlgorithm.
AggressiveRelaxedOnlineMaximumMarginAlgorithm(VectorFactory<?> vectorFactory)
          Creates a new AggressiveRelaxedOnlineMaximumMarginAlgorithm with the given vector factory.
 
Method Summary
<InputType>
void
update(DefaultKernelBinaryCategorizer<InputType> target, InputType input, boolean label)
          Performs a kernel-based incremental update step on the given object using the given supervised data.
 void update(LinearBinaryCategorizer target, Vector input, boolean label)
          The update method updates an object of ResultType using the given a new supervised input-output pair, using some form of "learning" algorithm.
 
Methods inherited from class gov.sandia.cognition.learning.algorithm.perceptron.AbstractKernelizableBinaryCategorizerOnlineLearner
createInitialLearnedObject, createKernelLearner, learn, update, update, update
 
Methods inherited from class gov.sandia.cognition.learning.algorithm.perceptron.AbstractOnlineLinearBinaryCategorizerLearner
createInitialLearnedObject, getVectorFactory, setVectorFactory, update
 
Methods inherited from class gov.sandia.cognition.learning.algorithm.AbstractSupervisedBatchAndIncrementalLearner
update
 
Methods inherited from class gov.sandia.cognition.learning.algorithm.AbstractBatchAndIncrementalLearner
clone, learn, learn, update
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gov.sandia.cognition.learning.algorithm.SupervisedIncrementalLearner
update
 
Methods inherited from interface gov.sandia.cognition.learning.algorithm.BatchAndIncrementalLearner
learn
 
Methods inherited from interface gov.sandia.cognition.learning.algorithm.BatchLearner
learn
 
Methods inherited from interface gov.sandia.cognition.learning.algorithm.IncrementalLearner
createInitialLearnedObject, update, update
 
Methods inherited from interface gov.sandia.cognition.util.CloneableSerializable
clone
 

Constructor Detail

AggressiveRelaxedOnlineMaximumMarginAlgorithm

public AggressiveRelaxedOnlineMaximumMarginAlgorithm()
Creates a new AggressiveRelaxedOnlineMaximumMarginAlgorithm.


AggressiveRelaxedOnlineMaximumMarginAlgorithm

public AggressiveRelaxedOnlineMaximumMarginAlgorithm(VectorFactory<?> vectorFactory)
Creates a new AggressiveRelaxedOnlineMaximumMarginAlgorithm with the given vector factory.

Parameters:
vectorFactory - The vector factory to use.
Method Detail

update

public void update(LinearBinaryCategorizer target,
                   Vector input,
                   boolean label)
Description copied from class: AbstractOnlineLinearBinaryCategorizerLearner
The update method updates an object of ResultType using the given a new supervised input-output pair, using some form of "learning" algorithm.

Specified by:
update in class AbstractOnlineLinearBinaryCategorizerLearner
Parameters:
target - The object to update.
input - The supervised input vector to learn from.
label - The supervised output label to learn from.

update

public <InputType> void update(DefaultKernelBinaryCategorizer<InputType> target,
                               InputType input,
                               boolean label)
Description copied from interface: KernelizableBinaryCategorizerOnlineLearner
Performs a kernel-based incremental update step on the given object using the given supervised data.

Type Parameters:
InputType - The input type for supervised learning. Will be passed to the kernel function.
Parameters:
target - The target object to update.
input - The supervised input value.
label - The supervised output value (label).