예제 #1
0
        public void preparePointList(TrainingResultP trainingResult, TrainingSetings.ActiviationFunction activationFunction)
        {
            float x1 = 0.01f;
            float x2 = 0.01f;

            for (int x = 0; x <= 100; x++)
            {
                x2 = 0.01f;
                for (int y = 0; y <= 100; y++)
                {
                    PointInfo point = preparePoint(trainingResult, x1, x2, activationFunction);

                    if (point.color == 0.00f)
                    {
                        list0.Add(point);
                    }
                    else
                    {
                        list1.Add(point);
                    }

                    x2 += 0.01f;
                }

                x1 += 0.01f;
            }
        }
예제 #2
0
        public void preparePointListForXor(XorTrResult xorTrResult, TrainingSetings.ActiviationFunction activationFunction)
        {
            float x1 = 0.01f;
            float x2 = 0.01f;

            for (int x = 0; x <= 100; x++)
            {
                x2 = 0.01f;
                for (int y = 0; y <= 100; y++)
                {
                    PointInfo point = preparePointForXor(xorTrResult, x1, x2, activationFunction);
                    point.color = activatonFunctions.correctionForSigmoid(point.color);

                    if (point.color == 0.00f)
                    {
                        list0.Add(point);
                    }
                    else
                    {
                        list1.Add(point);
                    }

                    x2 += 0.01f;
                }

                x1 += 0.01f;
            }
        }
예제 #3
0
        public PointInfo preparePoint(TrainingResultP trainingResult, float x, float y, TrainingSetings.ActiviationFunction activiationFunction)
        {
            float e      = x * trainingResult.w1 + y * trainingResult.w1 + trainingResult.biasI;
            float result = 0.00f;


            if (activiationFunction == TrainingSetings.ActiviationFunction.JUMP)
            {
                result = activatonFunctions.jumpActivationFuntion(e);
            }
            else
            {
                result = activatonFunctions.sigmoidActivationFunction(e);
                result = activatonFunctions.correctionForSigmoid(result);
            }

            return(new PointInfo(x, y, result));
        }
예제 #4
0
        public PointInfo preparePointForXor(XorTrResult xorTrResult, float x, float y, TrainingSetings.ActiviationFunction activiationFunction)
        {
            xorTrResult.hNeuron1.inputs = new float[] { x, y };
            xorTrResult.hNeuron2.inputs = new float[] { x, y };

            xorTrResult.oNeuron.inputs = new float[] { xorTrResult.hNeuron1.output(), xorTrResult.hNeuron2.output() };

            return(new PointInfo(x, y, xorTrResult.oNeuron.output()));
        }