com.rapidminer.operator.learner.functions.neuralnet
Class ImprovedNeuralNetLearner

java.lang.Object
  extended by com.rapidminer.operator.Operator
      extended by com.rapidminer.operator.learner.AbstractLearner
          extended by com.rapidminer.operator.learner.functions.neuralnet.ImprovedNeuralNetLearner
All Implemented Interfaces:
ConfigurationListener, PreviewListener, Learner, ParameterHandler, LoggingHandler

public class ImprovedNeuralNetLearner
extends AbstractLearner

This operator learns a model by means of a feed-forward neural network trained by a backpropagation algorithm (multi-layer perceptron). The user can define the structure of the neural network with the parameter list "hidden_layers". Each list entry describes a new hidden layer. The key of each entry must correspond to the layer name. The value of each entry must be a number defining the size of the hidden layer. A size value of -1 indicates that the layer size should be calculated from the number of attributes of the input example set. In this case, the layer size will be set to (number of attributes + number of classes) / 2 + 1.

If the user does not specify any hidden layers, a default hidden layer with sigmoid type and size (number of attributes + number of classes) / 2 + 1 will be created and added to the net. If only a single layer without nodes is specified, the input nodes are directly connected to the output nodes and no hidden layer will be used.

The used activation function is the usual sigmoid function. Therefore, the values ranges of the attributes should be scaled to -1 and +1. This is also done by this operator if not specified otherwise by the corresponding parameter setting. The type of the output node is sigmoid if the learning data describes a classification task and linear for numerical regression tasks.

Author:
Ingo Mierswa
Keywords:
Neural Net

Field Summary
static java.lang.String PARAMETER_DECAY
          Indicates if the learning rate should be cooled down.
static java.lang.String PARAMETER_ERROR_EPSILON
          The parameter name for "The optimization is stopped if the training error gets below this epsilon value.
static java.lang.String PARAMETER_HIDDEN_LAYERS
          The parameter name for "The number of hidden layers.
static java.lang.String PARAMETER_LEARNING_RATE
          The parameter name for "The learning rate determines by how much we change the weights at each step.
static java.lang.String PARAMETER_LOCAL_RANDOM_SEED
          The parameter name for "Use the given random seed instead of global random numbers (-1: use global)"
static java.lang.String PARAMETER_MOMENTUM
          The parameter name for "The momentum simply adds a fraction of the previous weight update to the current one (prevent local maxima and smoothes optimization directions).
static java.lang.String PARAMETER_NORMALIZE
          Indicates if the input data should be normalized between -1 and 1 before learning.
static java.lang.String PARAMETER_SHUFFLE
          Indicates if the input data should be shuffled before learning.
static java.lang.String PARAMETER_TRAINING_CYCLES
          The parameter name for "The number of training cycles used for the neural network training.
 
Fields inherited from class com.rapidminer.operator.learner.AbstractLearner
PROPERTY_RAPIDMINER_GENERAL_CAPABILITIES_WARN
 
Constructor Summary
ImprovedNeuralNetLearner(OperatorDescription description)
           
 
Method Summary
 java.util.List<ParameterType> getParameterTypes()
          Returns a list of ParameterTypes describing the parameters of this operator.
 Model learn(ExampleSet exampleSet)
          Trains a model.
 boolean supportsCapability(LearnerCapability lc)
          Returns true for all types of attributes and numerical and binominal labels.
 
Methods inherited from class com.rapidminer.operator.learner.AbstractLearner
apply, getEstimatedPerformance, getInputClasses, getInputDescription, getOptimizationPerformance, getOutputClasses, getWeights, onlyWarnForNonSufficientCapabilities, shouldCalculateWeights, shouldDeliverOptimizationPerformance, shouldEstimatePerformance
 
Methods inherited from class com.rapidminer.operator.Operator
addError, addValue, addWarning, apply, checkDeprecations, checkForStop, checkIO, checkProperties, clearErrorList, cloneOperator, createExperimentTree, createExperimentTree, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, createProcessTree, getAddOnlyAdditionalOutput, getApplyCount, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getEncoding, getErrorList, getExperiment, getInnerOperatorsXML, getInput, getInput, getInput, getIOContainerForInApplyLoopBreakpoint, getIODescription, getLog, getName, getOperatorClassName, getOperatorDescription, getParameter, getParameterAsBoolean, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsFile, getParameterAsInputStream, getParameterAsInt, getParameterAsMatrix, getParameterAsString, getParameterList, getParameters, getParameterType, getParent, getProcess, getStartTime, getStatus, getUserDescription, getValue, getValues, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isDebugMode, isEnabled, isExpanded, isParallel, isParameterSet, log, logError, logNote, logWarning, performAdditionalChecks, processFinished, processStarts, register, registerOperator, remove, rename, resume, setApplyCount, setBreakpoint, setEnabled, setExpanded, setInput, setListParameter, setOperatorParameters, setParameter, setParameters, setParent, setUserDescription, toString, unregisterOperator, writeXML
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.rapidminer.operator.learner.Learner
getName
 

Field Detail

PARAMETER_HIDDEN_LAYERS

public static final java.lang.String PARAMETER_HIDDEN_LAYERS
The parameter name for "The number of hidden layers. Only used if no layers are defined by the list hidden_layer_types."

See Also:
Constant Field Values

PARAMETER_TRAINING_CYCLES

public static final java.lang.String PARAMETER_TRAINING_CYCLES
The parameter name for "The number of training cycles used for the neural network training."

See Also:
Constant Field Values

PARAMETER_ERROR_EPSILON

public static final java.lang.String PARAMETER_ERROR_EPSILON
The parameter name for "The optimization is stopped if the training error gets below this epsilon value."

See Also:
Constant Field Values

PARAMETER_LEARNING_RATE

public static final java.lang.String PARAMETER_LEARNING_RATE
The parameter name for "The learning rate determines by how much we change the weights at each step."

See Also:
Constant Field Values

PARAMETER_MOMENTUM

public static final java.lang.String PARAMETER_MOMENTUM
The parameter name for "The momentum simply adds a fraction of the previous weight update to the current one (prevent local maxima and smoothes optimization directions)."

See Also:
Constant Field Values

PARAMETER_DECAY

public static final java.lang.String PARAMETER_DECAY
Indicates if the learning rate should be cooled down.

See Also:
Constant Field Values

PARAMETER_SHUFFLE

public static final java.lang.String PARAMETER_SHUFFLE
Indicates if the input data should be shuffled before learning.

See Also:
Constant Field Values

PARAMETER_NORMALIZE

public static final java.lang.String PARAMETER_NORMALIZE
Indicates if the input data should be normalized between -1 and 1 before learning.

See Also:
Constant Field Values

PARAMETER_LOCAL_RANDOM_SEED

public static final java.lang.String PARAMETER_LOCAL_RANDOM_SEED
The parameter name for "Use the given random seed instead of global random numbers (-1: use global)"

See Also:
Constant Field Values
Constructor Detail

ImprovedNeuralNetLearner

public ImprovedNeuralNetLearner(OperatorDescription description)
Method Detail

learn

public Model learn(ExampleSet exampleSet)
            throws OperatorException
Description copied from interface: Learner
Trains a model. This method should be called by apply() and is implemented by subclasses.

Throws:
OperatorException

supportsCapability

public boolean supportsCapability(LearnerCapability lc)
Returns true for all types of attributes and numerical and binominal labels.


getParameterTypes

public java.util.List<ParameterType> getParameterTypes()
Description copied from class: Operator
Returns a list of ParameterTypes describing the parameters of this operator. The default implementation returns an empty list if no input objects can be retained and special parameters for those input objects which can be prevented from being consumed.

Specified by:
getParameterTypes in interface ParameterHandler
Overrides:
getParameterTypes in class Operator


Copyright © 2001-2009 by Rapid-I