Ejemplo n.º 1
0
        public void CalculateDeltas(ref IFeedForwardNetLayerRepository currentLayer, ITrainingSetItemRepository trainingSetItem)
        {
            double outputDelta;

            for (int toNo = 0; toNo < currentLayer.GetToUnitCount(); toNo++)
            {
                double outputActivation = currentLayer.GetToUnitActivation(toNo);
                outputDelta = (trainingSetItem.GetOutputNodeValue(toNo) - outputActivation) * outputActivation * (1 - outputActivation);
                currentLayer.SetToUnitDelta(toNo, outputDelta);
            }
        }
Ejemplo n.º 2
0
        ErrorMeasure ForwardPassError(ITrainingSetItemRepository trainingSetItem)
        {
            ErrorMeasure errorMeasure;
            double       sumError = 0.0;
            double       localError;
            Boolean      hasLearned = true;

            FeedForwardNetLayer outputLayer = feedForwardNet.GetOutputLayer();

            for (int outputNo = 0; outputNo < outputLayer.GetToUnitCount(); outputNo++)
            {
                localError = Math.Abs(trainingSetItem.GetOutputNodeValue(outputNo) - outputLayer.GetToUnitActivation(outputNo));
                if (localError > backPropagationConstants.OutputTolerance)
                {
                    hasLearned = false;
                }
                sumError += localError;
            }
            errorMeasure = new ErrorMeasure(hasLearned, sumError);
            return(errorMeasure);
        }