org.encog.util.normalize.output.multiplicative

## Class OutputFieldMultiplicative

- java.lang.Object
- - org.encog.util.normalize.output.BasicOutputField
  - - org.encog.util.normalize.output.OutputFieldGrouped
    - - 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

    Constructors
    Constructor and Description
    `OutputFieldMultiplicative()` The default constructor.
    `OutputFieldMultiplicative(OutputFieldGroup group, InputField field)` Construct a multiplicative output field.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.