Pessoal,
To tentando implementar uma rede neural com Encog mas não to conseguindo, nem to achando nada que me ajude.
Meu problema deve passar 3 entradas para minha rede. Por exemplo, uma rede pra resolvero XOR recebe as seguintes entradas:
0 0
1 0
0 1
1 1
Agora, meu problema deve receber:
15, 0, 190
20, 40, 150
…
Estou usando rede com backpropagation.
Alguem já fez isso no Encog? Pode me passar o codigo de exemplo?
Obrigada.
Veja se este exemplo pode te ajudar.
[code]/*
-
Encog™ Examples v3.1 - Java Version
-
http://www.heatonresearch.com/encog/
-
http://code.google.com/p/encog-java/
-
Copyright 2008-2012 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.engine.network.activation.ActivationSigmoid;
import org.encog.ml.data.MLData;
import org.encog.ml.data.MLDataPair;
import org.encog.ml.data.MLDataSet;
import org.encog.ml.data.basic.BasicMLDataSet;
import org.encog.neural.networks.BasicNetwork;
import org.encog.neural.networks.layers.BasicLayer;
import org.encog.neural.networks.training.propagation.resilient.ResilientPropagation;
/**
- XOR: This example is essentially the “Hello World” of neural network
- programming. This example shows how to construct an Encog neural
- network to predict the output from the XOR operator. This example
- uses backpropagation to train the neural network.
-
- This example attempts to use a minimum of Encog features to create and
- train the neural network. This allows you to see exactly what is going
- on. For a more advanced example, that uses Encog factories, refer to
- the XORFactory example.
-
*/
public class XORHelloWorld {
/**
* The input necessary for XOR.
*/
public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 },
{ 0.0, 1.0 }, { 1.0, 1.0 } };
/**
* The ideal data necessary for XOR.
*/
public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } };
/**
* The main method.
* @param args No arguments are used.
*/
public static void main(final String args[]) {
// create a neural network, without using a factory
BasicNetwork network = new BasicNetwork();
network.addLayer(new BasicLayer(null,true,2));
network.addLayer(new BasicLayer(new ActivationSigmoid(),true,3));
network.addLayer(new BasicLayer(new ActivationSigmoid(),false,1));
network.getStructure().finalizeStructure();
network.reset();
// create training data
MLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT, XOR_IDEAL);
// train the neural network
final ResilientPropagation train = new ResilientPropagation(network, trainingSet);
int epoch = 1;
do {
train.iteration();
System.out.println("Epoch #" + epoch + " Error:" + train.getError());
epoch++;
} while(train.getError() > 0.01);
// test the neural network
System.out.println("Neural Network Results:");
for(MLDataPair pair: trainingSet ) {
final MLData output = network.compute(pair.getInput());
System.out.println(pair.getInput().getData(0) + "," + pair.getInput().getData(1)
+ ", actual=" + output.getData(0) + ",ideal=" + pair.getIdeal().getData(0));
}
Encog.getInstance().shutdown();
}
}
[/code]