Example #1
0
 public void Train(int inputIndex, double[] inputs)
 {
     for (int i = 0; i < numNeurons; i++)//neuron
     {
         inputs[i] = 0.0;
         for (int j = 0; j < numLearnNeurons; j++)//weight
         {
             inputs[i] += inputData[inputIndex] * inputWeights[j, i];
         }
         inputs[i] = Sigmoid.Func(inputs[i]);
     }
     outputData[inputIndex] = 0.0;
     for (int i = 0; i < numNeurons; i++)
     {
         outputData[inputIndex] += hiddenWeights[i] * inputs[i];
     }
 }
Example #2
0
        public void Compute(double x)
        {
            double outpt;

            for (int i = 0; i < numNeurons; i++)//neuron
            {
                values[i] = 0.0;
                for (int j = 0; j < numLearnNeurons; j++)//weight
                {
                    values[i] += x * inputWeights[j, i];
                }
                values[i] = Sigmoid.Func(values[i]);
            }
            outpt = 0.0;
            for (int i = 0; i < numNeurons; i++)
            {
                outpt += hiddenWeights[i] * values[i];
            }

            Console.WriteLine("input = " + x.ToString("0.0000") + " result = " + outpt + " error = " + Math.Abs(((Math.Sqrt(x) - outpt) / outpt) * 100).ToString("0.0000"));
        }
Example #3
0
 public void AdjustWeights(int inputIndex, double[] inputs)
 {
     for (int i = 0; i < numNeurons; i++)
     {
         hiddenWeights[i] -= (outputData[inputIndex] - expectedOutput[inputIndex]) * inputs[i] * learnRate;
         for (int j = 0; j < numLearnNeurons; j++)
         {
             inputWeights[j, i] -= (outputData[inputIndex] - expectedOutput[inputIndex]) * Sigmoid.Derivative(inputs[i]) * hiddenWeights[i] * outputData[inputIndex] * learnRate;
         }
     }
 }