Esempio n. 1
0
        public List <Synapse> BuildSynapses()
        {
            Synapses = new List <Synapse>();

            var seq = 0;

            Hiddens.ForEach(p => p.Seq = ++seq);

            var hiddens = Hiddens.OrderBy(p => p.Seq);

            var orig = Inputs.ToList();

            var id = 0;

            foreach (var h in hiddens)
            {
                var dest = h;
                Build(orig, dest, ref id);
                orig = dest;
            }

            Build(orig, Outputs, ref id);

            return(Synapses);
        }
Esempio n. 2
0
        public void FeedForward()
        {
            CalculateNeurons(Inputs);

            foreach (var hiddens in Hiddens.OrderBy(p => p.Seq))
            {
                CalculateNeurons(hiddens);
            }
        }
Esempio n. 3
0
 private void CalculateHiddenErrors()
 {
     foreach (var hiddens in Hiddens.OrderByDescending(p => p.Seq))
     {
         foreach (var neuron in hiddens)
         {
             neuron.Error = Synapses.Where(p => p.Orig == neuron).Sum(p => p.Dest.Error * dActivation(p.Dest.Value) * p.Weight);
         }
     }
 }
Esempio n. 4
0
        public void BackPropagation()
        {
            CalculateErrors();

            CalculateSynapse(Outputs);

            foreach (var hiddens in Hiddens.OrderByDescending(p => p.Seq))
            {
                CalculateSynapse(hiddens);
            }
        }
Esempio n. 5
0
        public void FeedForward(float[] inputs)
        {
            ActivateFunction activateFunction = ActivateFunctions.Sigmoid;

            Hiddens[0] = ApplyActivationFunction(Task.Run(() => Feed(WeightsIH, Matrix.ArrayToMatrix(inputs), Bias[0, 0])).Result, activateFunction);
            for (int i = 0; i < Hiddens.Count() - 1; i++)
            {
                Hiddens[i + 1] = ApplyActivationFunction(Task.Run(() => Feed(WeightsH[i], Matrix.ArrayToMatrix(Hiddens[i].Items), Bias[i + 1, 0])).Result, activateFunction);
            }
            var lastBias = Bias.GetLength(0) - 1;

            Outputs = ApplyActivationFunction(Task.Run(() => Feed(WeightsHO, Matrix.ArrayToMatrix(Hiddens.LastOrDefault().Items), Bias[lastBias, 0])).Result, activateFunction);
        }
Esempio n. 6
0
 public IEnumerable <CstToken> TokenWithHiddens()
 {
     return(Hiddens.Concat(Value));
 }