org.encog.examples.neural.benchmark
Class FahlmanEncoder
java.lang.Object
org.encog.examples.neural.benchmark.FahlmanEncoder
public class FahlmanEncoder
- extends Object
This example implements a Fahlman Encoder. Though probably not invented by Scott
Fahlman, such encoders were used in many of his papers, particularly:
"An Empirical Study of Learning Speed in Backpropagation Networks"
(Fahlman,1988)
It provides a very simple way of evaluating classification neural networks.
Basically, the input and output neurons are the same in count. However,
there is a smaller number of hidden neurons. This forces the neural
network to learn to encode the patterns from the input neurons to a
smaller vector size, only to be expanded again to the outputs.
The training data is exactly the size of the input/output neuron count.
Each training element will have a single column set to 1 and all other
columns set to zero. You can also perform in "complement mode", where
the opposite is true. In "complement mode" all columns are set to 1,
except for one column that is 0. The data produced in "complement mode"
is more difficult to train.
Fahlman used this simple training data to benchmark neural networks when
he introduced the Quickprop algorithm in the above paper.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
INPUT_OUTPUT_COUNT
public static final int INPUT_OUTPUT_COUNT
- See Also:
- Constant Field Values
HIDDEN_COUNT
public static final int HIDDEN_COUNT
- See Also:
- Constant Field Values
TRIES
public static final int TRIES
- See Also:
- Constant Field Values
COMPL
public static final boolean COMPL
- See Also:
- Constant Field Values
FahlmanEncoder
public FahlmanEncoder()
generateTraining
public static org.encog.ml.data.MLDataSet generateTraining(int inputCount,
boolean compl)
evaluate
public static void evaluate()
main
public static void main(String[] args)
Copyright © 2011. All Rights Reserved.