/src/main/java/org/encog/examples/neural/xor/XORPSO.java
http://github.com/encog/encog-java-examples · Java · 70 lines · 29 code · 10 blank · 31 comment · 0 complexity · 3de7a0182fb082a4a026923d67c8ed97 MD5 · raw file
- /*
- * Encog(tm) Java Examples v3.4
- * http://www.heatonresearch.com/encog/
- * https://github.com/encog/encog-java-examples
- *
- * Copyright 2008-2017 Heaton Research, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * For more information on Heaton Research copyrights, licenses
- * and trademarks visit:
- * http://www.heatonresearch.com/copyright
- */
- package org.encog.examples.neural.xor;
- import org.encog.Encog;
- import org.encog.mathutil.randomize.NguyenWidrowRandomizer;
- import org.encog.mathutil.randomize.Randomizer;
- import org.encog.ml.CalculateScore;
- import org.encog.ml.data.MLDataSet;
- import org.encog.ml.data.basic.BasicMLDataSet;
- import org.encog.ml.train.MLTrain;
- import org.encog.neural.networks.BasicNetwork;
- import org.encog.neural.networks.training.TrainingSetScore;
- import org.encog.neural.networks.training.pso.NeuralPSO;
- import org.encog.util.simple.EncogUtility;
- /**
- * XOR-PSO: This example solves the classic XOR operator neural
- * network problem. However, it uses PSO training.
- *
- * @author $Author$
- * @version $Revision$
- */
- public class XORPSO {
- public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 },
- { 0.0, 1.0 }, { 1.0, 1.0 } };
- public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } };
- public static void main(final String args[]) {
- MLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT, XOR_IDEAL);
- BasicNetwork network = EncogUtility.simpleFeedForward(2, 2, 0, 1, false);
- CalculateScore score = new TrainingSetScore(trainingSet);
- Randomizer randomizer = new NguyenWidrowRandomizer();
-
- final MLTrain train = new NeuralPSO(network,randomizer,score,20);
-
- EncogUtility.trainToError(train, 0.01);
- network = (BasicNetwork)train.getMethod();
- // test the neural network
- System.out.println("Neural Network Results:");
- EncogUtility.evaluate(network, trainingSet);
-
- Encog.getInstance().shutdown();
- }
- }