public void BackpropError_AccumulatedErrorComputedCorrectly() { var zero = TermCore.Create(0); var one = TermCore.Create(1); var layers = new TermLayer <LinearMembershipFunction>(new[] { zero, one }, learningRate: 1e-1, smoothingAverageRate: 1e-1); for (var i = 0; i < 100; i++) { layers.BackpropError(0, 5); layers.BackpropError(1, -3); } Assert.AreEqual(5, zero.AccumulatedError, 1e-2); Assert.AreEqual(-3, one.AccumulatedError, 1e-2); }
public void BackpropError_CoresLearnedCorrectly(double initialZero, double initialOne) { var zero = TermCore.Create(initialZero); var one = TermCore.Create(initialOne); var layers = new TermLayer <LinearMembershipFunction>(new[] { zero, one }, learningRate: 1e-1); for (var i = 0; i < 100; i++) { layers.BackpropError(0, -zero.X); layers.BackpropError(1, 1.0 - one.X); } Assert.AreEqual(0, zero.X, 1e-2); Assert.AreEqual(1, one.X, 1e-2); }