Example #1
0
        public void KullbackLeiblerDivergencePrimeTest()
        {
            var actual = new Matrix(4, 1);

            actual.InRandomize();
            var expected = new Matrix(4, 1);

            expected.InRandomize();

            var gradMatrix = actual.Duplicate();

            for (var i = 0; i < actual.Rows; i++)
            {
                for (var j = 0; j < actual.Columns; j++)
                {
                    gradMatrix[i, j] = -(expected[i, j] / actual[i, j]);
                }
            }

            var cost             = new KullbackLeiblerDivergenceKernel();
            var calculatedMatrix = cost.Backward(actual, expected);

            Assert.IsTrue(gradMatrix == calculatedMatrix, "Kullback Leibler Divergence Derivative successful");
        }