Ejemplo n.º 1
0
        private void CalculateGradient()
        {
            var gradientP  = HelperFunctions.ArrayInitializer(NumberOfRules, false);
            var gradientQ  = HelperFunctions.ArrayInitializer(NumberOfRules, false);
            var gradientR  = HelperFunctions.ArrayInitializer(NumberOfRules, false);
            var gradientA1 = HelperFunctions.ArrayInitializer(NumberOfRules, false);
            var gradientA2 = HelperFunctions.ArrayInitializer(NumberOfRules, false);
            var gradientB1 = HelperFunctions.ArrayInitializer(NumberOfRules, false);
            var gradientB2 = HelperFunctions.ArrayInitializer(NumberOfRules, false);

            foreach (var sample in TrainingData)
            {
                var f = CalculateF(sample.X, sample.Y, out var w, out var z);


                for (int i = 0; i < NumberOfRules; i++)
                {
                    gradientP[i] += GradientP(i, sample, f, w);
                    gradientQ[i] += GradientQ(i, sample, f, w);
                    gradientR[i] += GradientR(i, sample, f, w);

                    gradientA1[i] += GradientA1(sample, i, f, w, z);
                    gradientA2[i] += GradientA2(sample, i, f, w, z);
                    gradientB1[i] += GradientB1(sample, i, f, w, z);
                    gradientB2[i] += GradientB2(sample, i, f, w, z);
                }
            }

            for (int i = 0; i < NumberOfRules; i++)
            {
                Update(i, gradientP[i], gradientQ[i], gradientR[i], gradientA1[i], gradientA2[i], gradientB1[i], gradientB2[i]);
            }
        }
Ejemplo n.º 2
0
 private void InitArrays()
 {
     A1 = HelperFunctions.ArrayInitializer(NumberOfRules);
     A2 = HelperFunctions.ArrayInitializer(NumberOfRules);
     B1 = HelperFunctions.ArrayInitializer(NumberOfRules);
     B2 = HelperFunctions.ArrayInitializer(NumberOfRules);
     P  = HelperFunctions.ArrayInitializer(NumberOfRules);
     Q  = HelperFunctions.ArrayInitializer(NumberOfRules);
     R  = HelperFunctions.ArrayInitializer(NumberOfRules);
 }