/// <summary>
 /// Initializes weights of all backpropagation synapses in the backpropagation connector.
 /// </summary>
 /// <param name="connector">
 /// The backpropagation connector to initialize.
 /// </param>
 /// <exception cref="ArgumentNullException">
 /// If <c>connector</c> is <c>null</c>
 /// </exception>
 public void Initialize(ConexionBackpropagation connector)
 {
     Helper.ValidateNotNull(connector, "connector");
     foreach (BackpropagationSynapse synapse in connector.Synapses)
     {
         synapse.Weight = Helper.GetRandom(minLimit, maxLimit);
     }
 }
 /// <summary>
 /// Initializes weights of all backpropagation synapses in the backpropagation connector.
 /// </summary>
 /// <param name="connector">
 /// The backpropagation connector to initialize.
 /// </param>
 /// <exception cref="ArgumentNullException">
 /// If <c>connector</c> is <c>null</c>
 /// </exception>
 public void Initialize(ConexionBackpropagation connector)
 {
     Helper.ValidateNotNull(connector, "connector");
     foreach (BackpropagationSynapse synapse in connector.Synapses)
     {
         synapse.Weight = constant;
     }
 }
예제 #3
0
        /// <summary>
        /// Initializes weights of all backpropagation synapses in the backpropagation connector.
        /// </summary>
        /// <param name="connector">
        /// The backpropagation connector to initialize.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// If <c>connector</c> is <c>null</c>
        /// </exception>
        public void Initialize(ConexionBackpropagation connector)
        {
            Helper.ValidateNotNull(connector, "connector");

            int i = 0;

            double[] normalized = Helper.GetRandomVector(connector.SynapseCount, 1d);
            foreach (BackpropagationSynapse synapse in connector.Synapses)
            {
                synapse.Weight = normalized[i++];
            }
        }
예제 #4
0
        public BackpropagationSynapse(
            ActivationNeuron sourceNeuron, ActivationNeuron targetNeuron, ConexionBackpropagation parent)
        {
            Helper.ValidateNotNull(sourceNeuron, "sourceNeuron");
            Helper.ValidateNotNull(targetNeuron, "targetNeuron");
            Helper.ValidateNotNull(parent, "parent");

            this.weight = 1f;
            this.delta  = 0f;

            sourceNeuron.TargetSynapses.Add(this);
            targetNeuron.SourceSynapses.Add(this);

            this.sourceNeuron = sourceNeuron;
            this.targetNeuron = targetNeuron;
            this.parent       = parent;
        }
        /// <summary>
        /// Initializes weights of all backpropagation synapses in the backpropagation connector.
        /// </summary>
        /// <param name="connector">
        /// The backpropagation connector to initialize.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// If <c>connector</c> is <c>null</c>
        /// </exception>
        public void Initialize(ConexionBackpropagation connector)
        {
            Helper.ValidateNotNull(connector, "connector");

            double nGuyenWidrowFactor = NGuyenWidrowFactor(
                connector.SourceLayer.NeuronCount, connector.TargetLayer.NeuronCount);

            int synapsesPerNeuron = connector.SynapseCount / connector.TargetLayer.NeuronCount;

            foreach (INeuron neuron in connector.TargetLayer.Neurons)
            {
                int      i = 0;
                double[] normalizedVector = Helper.GetRandomVector(synapsesPerNeuron, nGuyenWidrowFactor);
                foreach (BackpropagationSynapse synapse in connector.GetSourceSynapses(neuron))
                {
                    synapse.Weight = normalizedVector[i++];
                }
            }
        }