public void Execute(IExampleInterface app) { this.app = app; SetupInput(); var pattern = new ART1Pattern(); pattern.InputNeurons = INPUT_NEURONS; pattern.OutputNeurons = OUTPUT_NEURONS; var network = (ART1)pattern.Generate(); for (int i = 0; i < PATTERN.Length; i++) { var dataIn = new BiPolarMLData(input[i]); var dataOut = new BiPolarMLData(OUTPUT_NEURONS); network.Compute(dataIn, dataOut); if (network.HasWinner) { app.WriteLine(PATTERN[i] + " - " + network.Winner); } else { app.WriteLine(PATTERN[i] + " - new Input and all Classes exhausted"); } } }
public void Execute(IExampleInterface app) { this.app = app; // Create the neural network. BasicLayer hopfield; var network = new HopfieldNetwork(4); // This pattern will be trained bool[] pattern1 = { true, true, false, false }; // This pattern will be presented bool[] pattern2 = { true, false, false, false }; IMLData result; var data1 = new BiPolarMLData(pattern1); var data2 = new BiPolarMLData(pattern2); var set = new BasicMLDataSet(); set.Add(data1); // train the neural network with pattern1 app.WriteLine("Training Hopfield network with: " + FormatBoolean(data1)); network.AddPattern(data1); // present pattern1 and see it recognized result = network.Compute(data1); app.WriteLine("Presenting pattern:" + FormatBoolean(data1) + ", and got " + FormatBoolean(result)); // Present pattern2, which is similar to pattern 1. Pattern 1 // should be recalled. result = network.Compute(data2); app.WriteLine("Presenting pattern:" + FormatBoolean(data2) + ", and got " + FormatBoolean(result)); }
public void Execute(IExampleInterface app) { this.app = app; // Create the neural network. BasicLayer hopfield; var network = new HopfieldNetwork(4); // This pattern will be trained bool[] pattern1 = {true, true, false, false}; // This pattern will be presented bool[] pattern2 = {true, false, false, false}; IMLData result; var data1 = new BiPolarMLData(pattern1); var data2 = new BiPolarMLData(pattern2); var set = new BasicMLDataSet(); set.Add(data1); // train the neural network with pattern1 app.WriteLine("Training Hopfield network with: " + FormatBoolean(data1)); network.AddPattern(data1); // present pattern1 and see it recognized result = network.Compute(data1); app.WriteLine("Presenting pattern:" + FormatBoolean(data1) + ", and got " + FormatBoolean(result)); // Present pattern2, which is similar to pattern 1. Pattern 1 // should be recalled. result = network.Compute(data2); app.WriteLine("Presenting pattern:" + FormatBoolean(data2) + ", and got " + FormatBoolean(result)); }
public void Execute(IExampleInterface app) { this.app = app; IMLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT, XOR_IDEAL); BasicNetwork network = EncogUtility.SimpleFeedForward(2, 6, 0, 1, false); EncogUtility.TrainToError(network, trainingSet, 0.01); double error = network.CalculateError(trainingSet); EncogDirectoryPersistence.SaveObject(new FileInfo(FILENAME), network); double error2 = network.CalculateError(trainingSet); app.WriteLine("Error before save to EG: " + Format.FormatPercent(error)); app.WriteLine("Error before after to EG: " + Format.FormatPercent(error2)); }
public void TrainInstar(CPNNetwork network, IMLDataSet training) { int epoch = 1; IMLTrain train = new TrainInstar(network, training, 0.1, true); for (int i = 0; i < 1000; i++) { train.Iteration(); app.WriteLine("Training instar, Epoch #" + epoch); epoch++; } }
/// <summary> /// Display the cities in the final path. /// </summary> public void DisplaySolution() { int[] path = anneal.Array; for (int i = 0; i < path.Length; i++) { if (i != 0) { app.Write(">"); } app.Write("" + path[i]); } app.WriteLine(""); }
public void Execute(IExampleInterface app) { this.app = app; this.app = app; IMLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT, XOR_IDEAL); BasicNetwork network = EncogUtility.SimpleFeedForward(2, 6, 0, 1, false); EncogUtility.TrainToError(network, trainingSet, 0.01); double error = network.CalculateError(trainingSet); SerializeObject.Save("encog.ser", network); network = (BasicNetwork) SerializeObject.Load("encog.ser"); double error2 = network.CalculateError(trainingSet); app.WriteLine("Error before save to ser: " + Format.FormatPercent(error)); app.WriteLine("Error before after to ser: " + Format.FormatPercent(error2)); }
public void Execute(IExampleInterface app) { int inputNeurons = CHAR_WIDTH * CHAR_HEIGHT; int outputNeurons = DIGITS.Length; var pattern = new ADALINEPattern(); pattern.InputNeurons = inputNeurons; pattern.OutputNeurons = outputNeurons; var network = (BasicNetwork)pattern.Generate(); (new RangeRandomizer(-0.5, 0.5)).Randomize(network); // train it IMLDataSet training = GenerateTraining(); IMLTrain train = new TrainAdaline(network, training, 0.01); int epoch = 1; do { train.Iteration(); app.WriteLine("Epoch #" + epoch + " Error:" + train.Error); epoch++; } while (train.Error > 0.01); // app.WriteLine("Error:" + network.CalculateError(training)); // test it for (int i = 0; i < DIGITS.Length; i++) { int output = network.Winner(Image2data(DIGITS[i])); for (int j = 0; j < CHAR_HEIGHT; j++) { if (j == CHAR_HEIGHT - 1) { app.WriteLine(DIGITS[i][j] + " -> " + output); } else { app.WriteLine(DIGITS[i][j]); } } app.WriteLine(); } }
private double TrainNetwork(String what, BasicNetwork network, IMLDataSet trainingSet) { // train the neural network ICalculateScore score = new TrainingSetScore(trainingSet); IMLTrain trainAlt = new NeuralSimulatedAnnealing( network, score, 10, 2, 100); IMLTrain trainMain = new Backpropagation(network, trainingSet, 0.00001, 0.0); var stop = new StopTrainingStrategy(); trainMain.AddStrategy(new Greedy()); trainMain.AddStrategy(new HybridStrategy(trainAlt)); trainMain.AddStrategy(stop); int epoch = 0; while (!stop.ShouldStop()) { trainMain.Iteration(); app.WriteLine("Training " + what + ", Epoch #" + epoch + " Error:" + trainMain.Error); epoch++; } return(trainMain.Error); }
private double TrainNetwork(String what, BasicNetwork network, IMLDataSet trainingSet, string Method) { // train the neural network ICalculateScore score = new TrainingSetScore(trainingSet); IMLTrain trainAlt = new NeuralSimulatedAnnealing(network, score, 10, 2, 100); IMLTrain trainMain; if (Method.Equals("Leven")) { Console.WriteLine("Using LevenbergMarquardtTraining"); trainMain = new LevenbergMarquardtTraining(network, trainingSet); } else { trainMain = new Backpropagation(network, trainingSet); } var stop = new StopTrainingStrategy(); trainMain.AddStrategy(new Greedy()); trainMain.AddStrategy(new HybridStrategy(trainAlt)); trainMain.AddStrategy(stop); int epoch = 0; while (!stop.ShouldStop()) { trainMain.Iteration(); app.WriteLine("Training " + what + ", Epoch #" + epoch + " Error:" + trainMain.Error); epoch++; } return(trainMain.Error); }
public void Execute(IExampleInterface app) { this.app = app; var pattern = new BAMPattern(); pattern.F1Neurons = INPUT_NEURONS; pattern.F2Neurons = OUTPUT_NEURONS; var network = (BAMNetwork)pattern.Generate(); // train for (int i = 0; i < NAMES.Length; i++) { network.AddPattern( StringToBipolar(NAMES[i]), StringToBipolar(PHONES[i])); } // test for (int i = 0; i < NAMES.Length; i++) { var data = new NeuralDataMapping( StringToBipolar(NAMES[i]), RandomBiPolar(OUT_CHARS * BITS_PER_CHAR)); RunBAM(network, data); } app.WriteLine(); for (int i = 0; i < PHONES.Length; i++) { var data = new NeuralDataMapping( StringToBipolar(PHONES[i]), RandomBiPolar(IN_CHARS * BITS_PER_CHAR)); RunBAM(network, data); } app.WriteLine(); for (int i = 0; i < NAMES.Length; i++) { var data = new NeuralDataMapping( StringToBipolar(NAMES2[i]), RandomBiPolar(OUT_CHARS * BITS_PER_CHAR)); RunBAM(network, data); } }
public void Execute(IExampleInterface app) { this.app = app; var temp = new TemporalXOR(); IMLDataSet trainingSet = temp.Generate(100); var jordanNetwork = (BasicNetwork) CreateJordanNetwork(); var feedforwardNetwork = (BasicNetwork) CreateFeedforwardNetwork(); double elmanError = TrainNetwork("Jordan", jordanNetwork, trainingSet); double feedforwardError = TrainNetwork("Feedforward", feedforwardNetwork, trainingSet); app.WriteLine("Best error rate with Jordan Network: " + elmanError); app.WriteLine("Best error rate with Feedforward Network: " + feedforwardError); app.WriteLine("Jordan will perform only marginally better than feedforward.\nThe more output neurons, the better performance a Jordan will give."); }
public void Execute(IExampleInterface app) { this.app = app; var temp = new TemporalXOR(); IMLDataSet trainingSet = temp.Generate(100); var jordanNetwork = (BasicNetwork)CreateJordanNetwork(); var feedforwardNetwork = (BasicNetwork)CreateFeedforwardNetwork(); double elmanError = TrainNetwork("Jordan", jordanNetwork, trainingSet); double feedforwardError = TrainNetwork("Feedforward", feedforwardNetwork, trainingSet); app.WriteLine("Best error rate with Jordan Network: " + elmanError); app.WriteLine("Best error rate with Feedforward Network: " + feedforwardError); app.WriteLine("Jordan will perform only marginally better than feedforward.\nThe more output neurons, the better performance a Jordan will give."); }
public void Execute(IExampleInterface app) { this.app = app; this.app = app; IMLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT, XOR_IDEAL); BasicNetwork network = EncogUtility.SimpleFeedForward(2, 6, 0, 1, false); EncogUtility.TrainToError(network, trainingSet, 0.01); double error = network.CalculateError(trainingSet); SerializeObject.Save("encog.ser", network); network = (BasicNetwork)SerializeObject.Load("encog.ser"); double error2 = network.CalculateError(trainingSet); app.WriteLine("Error before save to ser: " + Format.FormatPercent(error)); app.WriteLine("Error before after to ser: " + Format.FormatPercent(error2)); }
public void Execute(IExampleInterface app) { this.app = app; var temp = new TemporalXOR(); IMLDataSet trainingSet = temp.Generate(100); var elmanNetwork = (BasicNetwork) CreateElmanNetwork(); var feedforwardNetwork = (BasicNetwork) CreateFeedforwardNetwork(); double elmanError = TrainNetwork("Elman", elmanNetwork, trainingSet); double feedforwardError = TrainNetwork("Feedforward", feedforwardNetwork, trainingSet); app.WriteLine("Best error rate with Elman Network: " + elmanError); app.WriteLine("Best error rate with Feedforward Network: " + feedforwardError); app.WriteLine("(Elman should outperform feed forward)"); app.WriteLine("If your results are not as good, try rerunning, or perhaps training longer."); }
public void RunBAM(BAMNetwork network, NeuralDataMapping data) { var line = new StringBuilder(); line.Append(MappingToString(data)); network.Compute(data); line.Append(" | "); line.Append(MappingToString(data)); app.WriteLine(line.ToString()); }
public void Execute(IExampleInterface app) { this.app = app; var pattern = new BoltzmannPattern(); pattern.InputNeurons = NEURON_COUNT; var network = (BoltzmannMachine) pattern.Generate(); CreateCities(); CalculateWeights(network); network.Temperature = 100; do { network.EstablishEquilibrium(); app.WriteLine(network.Temperature + " : " + DisplayTour(network.CurrentState)); network.DecreaseTemperature(0.99); } while (!IsValidTour(network.CurrentState)); app.WriteLine("Final Length: " + LengthOfTour(network.CurrentState)); }
private void ProcessCreateTraining() { String strWidth = GetArg("width"); String strHeight = GetArg("height"); String strType = GetArg("type"); downsampleHeight = int.Parse(strWidth); downsampleWidth = int.Parse(strHeight); if (strType.Equals("RGB")) { downsample = new RGBDownsample(); } else { downsample = new SimpleIntensityDownsample(); } training = new ImageMLDataSet(downsample, false, 1, -1); app.WriteLine("Training set created"); }
public void Execute(IExampleInterface app) { this.app = app; var pattern = new BoltzmannPattern(); pattern.InputNeurons = NEURON_COUNT; var network = (BoltzmannMachine)pattern.Generate(); CreateCities(); CalculateWeights(network); network.Temperature = 100; do { network.EstablishEquilibrium(); app.WriteLine(network.Temperature + " : " + DisplayTour(network.CurrentState)); network.DecreaseTemperature(0.99); } while (!IsValidTour(network.CurrentState)); app.WriteLine("Final Length: " + LengthOfTour(network.CurrentState)); }
public void Execute(IExampleInterface app) { this.app = app; var temp = new TemporalXOR(); IMLDataSet trainingSet = temp.Generate(100); if (app.Args.Length > 0) { trainingSet = temp.Generate(Convert.ToInt16(app.Args[0])); } var elmanNetwork = (BasicNetwork)CreateElmanNetwork(trainingSet.InputSize); var feedforwardNetwork = (BasicNetwork)CreateFeedforwardNetwork(trainingSet.InputSize); double elmanError = TrainNetwork("Elman", elmanNetwork, trainingSet, "Leven"); double feedforwardError = TrainNetwork("Feedforward", feedforwardNetwork, trainingSet, "Leven"); app.WriteLine("Best error rate with Elman Network: " + elmanError); app.WriteLine("Best error rate with Feedforward Network: " + feedforwardError); app.WriteLine("(Elman should outperform feed forward)"); app.WriteLine("If your results are not as good, try rerunning, or perhaps training longer."); }
public void Execute(IExampleInterface app) { this.app = app; SetupInput(); var pattern = new ART1Pattern(); pattern.InputNeurons = INPUT_NEURONS; pattern.OutputNeurons = OUTPUT_NEURONS; var network = (ART1) pattern.Generate(); for (int i = 0; i < PATTERN.Length; i++) { var dataIn = new BiPolarMLData(input[i]); var dataOut = new BiPolarMLData(OUTPUT_NEURONS); network.Compute(dataIn, dataOut); if (network.HasWinner) { app.WriteLine(PATTERN[i] + " - " + network.Winner); } else { app.WriteLine(PATTERN[i] + " - new Input and all Classes exhausted"); } } }
public void Execute(IExampleInterface app) { int inputNeurons = CHAR_WIDTH*CHAR_HEIGHT; int outputNeurons = DIGITS.Length; var pattern = new ADALINEPattern(); pattern.InputNeurons = inputNeurons; pattern.OutputNeurons = outputNeurons; var network = (BasicNetwork) pattern.Generate(); (new RangeRandomizer(-0.5, 0.5)).Randomize(network); // train it IMLDataSet training = GenerateTraining(); IMLTrain train = new TrainAdaline(network, training, 0.01); int epoch = 1; do { train.Iteration(); app.WriteLine("Epoch #" + epoch + " Error:" + train.Error); epoch++; } while (train.Error > 0.01); // app.WriteLine("Error:" + network.CalculateError(training)); // test it for (int i = 0; i < DIGITS.Length; i++) { int output = network.Winner(Image2data(DIGITS[i])); for (int j = 0; j < CHAR_HEIGHT; j++) { if (j == CHAR_HEIGHT - 1) app.WriteLine(DIGITS[i][j] + " -> " + output); else app.WriteLine(DIGITS[i][j]); } app.WriteLine(); } }
public void Execute(IExampleInterface app) { this.app = app; var pattern = new BAMPattern(); pattern.F1Neurons = INPUT_NEURONS; pattern.F2Neurons = OUTPUT_NEURONS; var network = (BAMNetwork) pattern.Generate(); // train for (int i = 0; i < NAMES.Length; i++) { network.AddPattern( StringToBipolar(NAMES[i]), StringToBipolar(PHONES[i])); } // test for (int i = 0; i < NAMES.Length; i++) { var data = new NeuralDataMapping( StringToBipolar(NAMES[i]), RandomBiPolar(OUT_CHARS*BITS_PER_CHAR)); RunBAM(network, data); } app.WriteLine(); for (int i = 0; i < PHONES.Length; i++) { var data = new NeuralDataMapping( StringToBipolar(PHONES[i]), RandomBiPolar(IN_CHARS*BITS_PER_CHAR)); RunBAM(network, data); } app.WriteLine(); for (int i = 0; i < NAMES.Length; i++) { var data = new NeuralDataMapping( StringToBipolar(NAMES2[i]), RandomBiPolar(OUT_CHARS*BITS_PER_CHAR)); RunBAM(network, data); } }