Exemplo n.º 1
0
    def test_hidden_layer_net_on_XOR(self):

        network = self.setup1()
        training_set = [
            Instance([0.0, 0.0], [0.0]),
            Instance([0.0, 1.0], [1.0]),
            Instance([1.0, 0.0], [1.0]),
            Instance([1.0, 1.0], [0.0])
        ]
        # train
        epoch, MSE = network.backpropagation(training_set, ERROR_LIMIT=1e-2)

        assert epoch == 4098
        assert MSE == 0.0099993587735512333
Exemplo n.º 2
0
    def test_single_layer_net_on_OR(self):

        network = self.setup0()
        training_set = [
            Instance([0.0, 0.0], [0.0]),
            Instance([0.0, 1.0], [1.0]),
            Instance([1.0, 0.0], [1.0]),
            Instance([1.0, 1.0], [1.0])
        ]
        # train
        epoch, MSE = network.backpropagation(training_set, ERROR_LIMIT=1e-2)

        assert epoch == 340
        assert MSE == 0.0099759064076452887
Exemplo n.º 3
0
 def test_2(self):
     aTrainingExample = Instance([1.0], [0])
     network = self.setup1()
     network.layers[0].neurons[0].weights = [1.0, -1.0]
     outputs = network.calc_networks_output(aTrainingExample.features)
     result = outputs[0]
     expected = 0.0
     diff = abs(result - expected)
     assert diff < 0.00001
Exemplo n.º 4
0
    def test_hidden_layer_net0(self):
        aTrainingExample = Instance([2.5], [0])
        network = self.setup_single_hidden_layer_net()
        network.layers[0].neurons[0].weights = [1.0, 0.0]
        network.layers[1].neurons[0].weights = [1.0, 0.0]
        outputs = network.calc_networks_output(aTrainingExample.features)
        result = outputs[0]
        expected = 2.5
        diff = abs(result - expected)
        assert diff < 0.00001

        aTrainingExample = Instance([2.5], [1.0])
        network.layers[0].neurons[0].weights = [1.0, 1.0]
        outputs = network.calc_networks_output(aTrainingExample.features)
        result = outputs[0]
        expected = 3.5
        diff = abs(result - expected)
        assert diff < 0.00001
Exemplo n.º 5
0
 def test_hidden_layer_net1(self):
     aTrainingExample = Instance([2.0], [1.0])
     network = self.setup_single_hidden_layer_net1()
     network.layers[0].neurons[0].weights = [1.0, 1.0]
     network.layers[1].neurons[0].weights = [1.0, 0.0]
     network.activation_functions = [sigmoid_function, linear_function]
     outputs = network.calc_networks_output(aTrainingExample.features)
     result = outputs[0]
     expected = 1.0 / (1.0 + math.exp(-3.0))
     diff = abs(result - expected)
     assert diff < 0.00001
Exemplo n.º 6
0
    def test_hidden_layer_net2(self):
        aTrainingExample = Instance([0.5], [0.0])
        network = self.setup_single_hidden_layer_net2()
        network.layers[0].neurons[0].weights = [1.0, 1.0]
        network.layers[1].neurons[0].weights = [1.0, 1.0]

        outputs = network.calc_networks_output(aTrainingExample.features)

        result = network.layers[0].neurons[0].output
        expected_hidden_layer_output = 1.0 / (1.0 + math.exp(-1.5))
        diff = abs(result - expected_hidden_layer_output)
        assert diff < 0.00001

        sum_of_weighted_inputs_to_output_neuron = expected_hidden_layer_output + 1.0
        expected_output_neuron_output = 1.0 / (
            1.0 + math.exp(-1.0 * sum_of_weighted_inputs_to_output_neuron))
        result = outputs[0]
        diff = abs(result - expected_output_neuron_output)
        assert diff < 0.00001