public void LearnNeverTest() { int[] layers = new int[] { 2,1 }; // no linear separity MLPWatchdog nn = new WatchdogGenerator().Create(layers,1,new Sigmoid()); nn.LearnFactor=0.9; nn.Momentum=0.5; var response= nn.BPWatched(new BPWDRequest(XOR,10000,0,0.1,10)); Assert.AreEqual(response.Count,10); Assert.AreEqual(response[9].Estimate,BPResponseEstimate.Failure); }
public void LearnXORTest() { for(var x=0; x<5; x++) { int[] layers = new int[] { 2,2,1 }; // linear separity MLPWatchdog nn = new WatchdogGenerator().Create(layers,1,new Sigmoid()); nn.LearnFactor=0.9; nn.Momentum=0.5; var response= nn.BPWatched(new BPWDRequest(XOR,10000,0,0.001,10)); Assert.IsTrue(response.Count<10); // should learn faster Assert.AreEqual(response.Last().Estimate,BPResponseEstimate.Success); //sanity check IsBetween(nn.Pulse(new double[] { 0,0 })[0],0,0.05); IsBetween(nn.Pulse(new double[] { 0,1 })[0],0.95,1); IsBetween(nn.Pulse(new double[] { 1,0 })[0],0.95,1); IsBetween(nn.Pulse(new double[] { 1,1 })[0],0,0.05); } }