org.encog.util.normalize.output.multiplicative
Class OutputFieldMultiplicative

java.lang.Object
  extended by org.encog.util.normalize.output.BasicOutputField
      extended by org.encog.util.normalize.output.OutputFieldGrouped
          extended by org.encog.util.normalize.output.multiplicative.OutputFieldMultiplicative
All Implemented Interfaces:
Serializable, OutputField

public class OutputFieldMultiplicative
extends OutputFieldGrouped

Both the multiplicative and z-axis normalization types allow a group of outputs to be adjusted so that the "vector length" is 1. Both go about it in different ways. Certain types of neural networks require a vector length of 1. The multiplicative normalization is more simple than Z-Axis normalization. Almost always Z=Axis normalization is a better choice. However, multiplicative can perform better than Z-Axis when all of the values are near zero most of the time. This can cause the "synthetic value" that z-axis uses to dominate and skew the answer. Multiplicative normalization works by calculating the vector length of the input fields and dividing each by that value. This also presents a problem, as the magnitude of the original fields is not used. For example, multiplicative normalization would not distinguish between (-2,1,3) and (-10,5,15). Both would result in the same output.

Author:
jheaton
See Also:
Serialized Form

Constructor Summary
OutputFieldMultiplicative()
          The default constructor.
OutputFieldMultiplicative(OutputFieldGroup group, InputField field)
          Construct a multiplicative output field.
 
Method Summary
 double calculate(int subfield)
          Calculate the value for this output field.
 int getSubfieldCount()
           
 void rowInit()
          Not needed for this sort of output field.
 
Methods inherited from class org.encog.util.normalize.output.OutputFieldGrouped
getGroup, getSourceField
 
Methods inherited from class org.encog.util.normalize.output.BasicOutputField
isIdeal, setIdeal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OutputFieldMultiplicative

public OutputFieldMultiplicative()
The default constructor. Used for reflection.


OutputFieldMultiplicative

public OutputFieldMultiplicative(OutputFieldGroup group,
                                 InputField field)
Construct a multiplicative output field.

Parameters:
group - The group this field belongs to.
field - The input field that this field is based on.
Method Detail

calculate

public double calculate(int subfield)
Calculate the value for this output field.

Parameters:
subfield - The subfield is not used.
Returns:
The value for this field.

getSubfieldCount

public int getSubfieldCount()
Returns:
Always returns 1, subfields are not used for this field.

rowInit

public void rowInit()
Not needed for this sort of output field.



Copyright © 2014. All Rights Reserved.