Ejemplo n.º 1
0
        public Tuple <double, TimeSpan> Train()
        {
            if (SourceMatrix == null)
            {
                return(null);
            }

            List <int> listColumns = new List <int>();

            for (int i = 0; i < FeaturesAmount; i++)
            {
                listColumns.Add(i);
            }

            double[][] inputs  = SourceMatrix.GetColumns(listColumns.ToArray()).ToJagged();
            double[][] outputs = SourceMatrix.GetColumn(FeaturesAmount).Transpose().ToJagged();

            Network = new ActivationNetwork(new BipolarSigmoidFunction(SigmoidAlphaValue), NeuronsInFirstLayer, NeuronsInHiddenLayer, 1);

            BackPropagationLearning teacher = new BackPropagationLearning(Network);

            teacher.LearningRate = LearningRate;

            Network.Randomize();

            var    sw    = Stopwatch.StartNew();
            double error = double.PositiveInfinity;
            double previous;

            for (int i = 1; i <= EpochCount; i++)
            {
                previous = error;


                error = teacher.RunEpoch(inputs, outputs);

                if (error == 0)
                {
                    break;
                }

                //Console.WriteLine(String.Format("Epoch={0} Error={1}", i, error));
            }
            sw.Stop();

            return(Tuple.Create(error, sw.Elapsed));
        }
Ejemplo n.º 2
0
 void IMatrix.SetValue(int rowNumber, int columnNumber, double value)
 {
     SourceMatrix.SetValue(rowNumber, columnNumber, value);
 }
Ejemplo n.º 3
0
 double IMatrix.GetValue(int rowNumber, int columnNumber)
 {
     return(SourceMatrix.GetValue(rowNumber, columnNumber));
 }
        void IMatrix.SetValue(int rowNumber, int columnNumber, double value)
        {
            int actualColumnNumber = GetActualColumnNumber(rowNumber);

            SourceMatrix.SetValue(rowNumber, actualColumnNumber, value);
        }
        double IMatrix.GetValue(int rowNumber, int columnNumber)
        {
            int actualColumnNumber = GetActualColumnNumber(columnNumber);

            return(SourceMatrix.GetValue(rowNumber, actualColumnNumber));
        }