/// <summary> /// Generate the RSOM network. /// </summary> /// <returns>The neural network.</returns> public BasicNetwork Generate() { ILayer output = new BasicLayer(new ActivationLinear(), false, this.outputNeurons); ILayer input = new BasicLayer(new ActivationLinear(), false, this.inputNeurons); BasicNetwork network = new BasicNetwork(); ILayer context = new ContextLayer(this.outputNeurons); network.AddLayer(input); network.AddLayer(output); output.AddNext(context, SynapseType.OneToOne); context.AddNext(input); int y = PatternConst.START_Y; input.X = PatternConst.START_X; input.Y = y; context.X = PatternConst.INDENT_X; context.Y = y; y += PatternConst.INC_Y; output.X = PatternConst.START_X; output.Y = y; network.Structure.FinalizeStructure(); network.Reset(); return(network); }
/// <summary> /// Generate the Hopfield neural network. /// </summary> /// <returns>The generated network.</returns> public BasicNetwork Generate() { ILayer layer = new BasicLayer(new ActivationBiPolar(), false, this.neuronCount); BasicNetwork result = new BasicNetwork(new HopfieldLogic()); result.AddLayer(layer); layer.AddNext(layer); layer.X = PatternConst.START_X; layer.Y = PatternConst.START_Y; result.Structure.FinalizeStructure(); result.Reset(); return(result); }
/// <summary> /// Generate the network. /// </summary> /// <returns>The generated network.</returns> public BasicNetwork Generate() { ILayer layer = new BasicLayer(new ActivationBiPolar(), true, this.neuronCount); BasicNetwork result = new BasicNetwork(new BoltzmannLogic()); result.SetProperty(BoltzmannLogic.PROPERTY_ANNEAL_CYCLES, this.annealCycles); result.SetProperty(BoltzmannLogic.PROPERTY_RUN_CYCLES, this.runCycles); result.SetProperty(BoltzmannLogic.PROPERTY_TEMPERATURE, this.temperature); result.AddLayer(layer); layer.AddNext(layer); layer.X = PatternConst.START_X; layer.Y = PatternConst.START_Y; result.Structure.FinalizeStructure(); result.Reset(); return(result); }
/// <summary> /// Generate a Jordan neural network. /// </summary> /// <returns>A Jordan neural network.</returns> public BasicNetwork Generate() { // construct an Jordan type network ILayer input = new BasicLayer(this.activation, false, this.inputNeurons); ILayer hidden = new BasicLayer(this.activation, true, this.hiddenNeurons); ILayer output = new BasicLayer(this.activation, true, this.outputNeurons); ILayer context = new ContextLayer(this.outputNeurons); BasicNetwork network = new BasicNetwork(); network.AddLayer(input); network.AddLayer(hidden); network.AddLayer(output); output.AddNext(context, SynapseType.OneToOne); context.AddNext(hidden); int y = PatternConst.START_Y; input.X = PatternConst.START_X; input.Y = y; y += PatternConst.INC_Y; hidden.X = PatternConst.START_X; hidden.Y = y; context.X = PatternConst.INDENT_X; context.Y = y; y += PatternConst.INC_Y; output.X = PatternConst.START_X; output.Y = y; network.Structure.FinalizeStructure(); network.Reset(); return(network); }