Esempio n. 1
0
        public void LinkedLayers()
        {
            var inputs =
                new InputLayer(
                    new InputNeurone(1, 1),
                    new InputNeurone(2, 2)
                    );

            var resultLayer =
                new LinkedPrevLayer(
                    inputs,
                    new DeepLayer(
                        new DeepNeurone(
                            1,
                            new Synapse(1, 1, 0.5),
                            new Synapse(2, 1, 0.6)
                            ),
                        new DeepNeurone(
                            2,
                            new Synapse(1, 2, 0.7),
                            new Synapse(2, 2, 0.8)
                            )
                        ),
                    new DeepLayer(
                        new DeepNeurone(
                            1,
                            new Synapse(1, 1, 0.5),
                            new Synapse(2, 1, 0.6)
                            ),
                        new DeepNeurone(
                            2,
                            new Synapse(1, 2, 0.7),
                            new Synapse(2, 2, 0.8)
                            )
                        )
                    ).link().lastLayer();

            resultLayer = resultLayer.propagate();
            Assert.AreEqual(
                resultLayer.propagate().neuroneValue(1).value(),
                new TanH(
                    new Add(
                        new Mult(
                            new TanH(1 * 0.5 + 2 * 0.6),
                            new DefaultNumber(0.5)
                            ),
                        new Mult(
                            new TanH(1 * 0.7 + 2 * 0.8),
                            new DefaultNumber(0.6)
                            )
                        )
                    ).value()
                );
        }
Esempio n. 2
0
        public void TestNetworkErrors()
        {
            var inputs =
                new InputLayer(
                    new InputNeurone(1, 1),
                    new InputNeurone(2, 2)
                    );

            var resultLayer =
                new LinkedPrevLayer(
                    inputs,
                    new DeepLayer(
                        new DeepNeurone(
                            1,
                            new SigmoidFnc(),
                            new Synapse(1, 1, 0.5),
                            new Synapse(2, 1, 0.6)
                            ),
                        new DeepNeurone(
                            2,
                            new SigmoidFnc(),
                            new Synapse(1, 2, 0.7),
                            new Synapse(2, 2, 0.8)
                            )
                        ),
                    new DeepLayer(
                        new DeepNeurone(
                            1,
                            new SigmoidFnc(),
                            new Synapse(1, 1, 0.5),
                            new Synapse(2, 1, 0.6)
                            )
                        )
                    ).link().lastLayer();

            resultLayer = resultLayer.propagate();

            var expectedValue =
                new Sigmoid(
                    new Add(
                        new Mult(
                            new Sigmoid(1 * 0.5 + 2 * 0.6),
                            new DefaultNumber(0.5)
                            ),
                        new Mult(
                            new Sigmoid(1 * 0.7 + 2 * 0.8),
                            new DefaultNumber(0.6)
                            )
                        )
                    ).value();

            Assert.AreEqual(
                resultLayer.propagate().neuroneValue(1).value(),
                expectedValue
                );

            /*Assert.AreEqual(
             *      new Network(resultLayer, new List<Error>()
             *       {
             *              new OutputExpected(1, 1),
             *       }).errors().First().asNumber().value(),
             *      1 - expectedValue
             * );*/
        }