Beispiel #1
0
 protected override void CalculateDeltasErrorsForThisLayer(LayerEventArgs nextLayerEventArgs)
 {
     _DeltasErrorsOfNeurons = Backpropagation.GetDeltasOutputLayer(
         _OutputSignals[(int)nextLayerEventArgs.NumberOfActiveDataset],
         nextLayerEventArgs.ExpectedSignalsOutLayer[(int)nextLayerEventArgs.NumberOfActiveDataset],
         nextLayerEventArgs.ActivationFunc);
 }
        public void GetDeltasErrorsOutputLayer()
        {
            //Arrange
            float[] outputSignal = new float[]
            {
                0.95F,
                0.55F,
                0.40F,
                0.90F
            };

            float[] actualSignal = new float[]
            {
                1,
                0,
                0,
                1
            };

            float[] expected = new float[]
            {
                0.002375001F,
                -0.136125F,
                -0.096F,
                0.009000004F
            };

            //Act
            var actual = Backpropagation.GetDeltasOutputLayer(outputSignal, actualSignal, ActivationFunc.Sigmoid);

            //Assert
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], actual[i]);
            }
        }