示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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);
        }