Beispiel #1
0
def test_calculate_mean_squared_error():
    input_dimensions = 5
    number_of_nodes = 5
    number_of_samples = 18
    model = LinearAssociator(input_dimensions=input_dimensions,
                             number_of_nodes=number_of_nodes,
                             transfer_function="Linear")
    model.initialize_weights(seed=1)
    X_train = np.random.randn(input_dimensions, number_of_samples)
    assert model.calculate_mean_squared_error(X_train,
                                              model.predict(X_train)) == 0
    target = np.random.randn(number_of_nodes, number_of_samples)
    mse = model.calculate_mean_squared_error(X_train, target)
    np.testing.assert_array_almost_equal(mse, 3.7144714504979635, decimal=4)

    model = LinearAssociator(input_dimensions=input_dimensions,
                             number_of_nodes=number_of_nodes,
                             transfer_function="Hard_limit")
    model.initialize_weights(seed=1)
    X_train = np.random.randn(input_dimensions, number_of_samples)
    assert model.calculate_mean_squared_error(X_train,
                                              model.predict(X_train)) == 0
    target = np.random.randn(number_of_nodes, number_of_samples)
    mse = model.calculate_mean_squared_error(X_train, target)
    np.testing.assert_array_almost_equal(mse, 1.1234558948088766, decimal=4)
Beispiel #2
0
def test_train_hardlim_delta():
    input_dimensions = 5
    number_of_nodes = 5
    for i in range(10):
        model = LinearAssociator(input_dimensions=input_dimensions, number_of_nodes=number_of_nodes,
                        transfer_function="Hard_limit")
        model.initialize_weights(seed=i + 1)
        X_train = np.random.randn(input_dimensions, 100)
        out = model.predict(X_train)
        model.set_weights(np.random.randn(*model.get_weights().shape))
        model.train(X_train, out, batch_size=10, num_epochs=200, alpha=0.1, gamma=0.1, learning="Delta")
        new_out = model.predict(X_train)
        np.testing.assert_array_almost_equal(out, new_out, decimal=4)
Beispiel #3
0
def test_pseudo_inverse_fit():
    input_dimensions = 5
    number_of_nodes = 5
    model = LinearAssociator(input_dimensions=input_dimensions, number_of_nodes=number_of_nodes,
                    transfer_function="Linear")
    model.initialize_weights(seed=1)
    X_train = np.random.randn(input_dimensions, 10)
    out = model.predict(X_train)

    model.set_weights(np.zeros_like(model.get_weights()))
    model.fit_pseudo_inverse(X_train, out)
    new_out = model.predict(X_train)
    np.testing.assert_array_almost_equal(out, new_out, decimal=4)
Beispiel #4
0
def test_predict_hard_limit():
    input_dimensions = 2
    number_of_nodes = 5
    model = LinearAssociator(input_dimensions=input_dimensions, number_of_nodes=number_of_nodes,
                    transfer_function="Hard_limit")
    model.initialize_weights(seed=1)
    X_train = np.array([[-1.43815556, 0.10089809, -1.25432937, 1.48410426],
                        [-1.81784194, 0.42935033, -1.2806198, 0.06527391]])
    y = np.array([[0, 0, 0, 1], [1, 0, 1, 0], [1, 0, 1, 1], [0, 0, 0, 1], [0, 0, 0, 1]])

    y_hat = model.predict(X_train)
    np.testing.assert_array_almost_equal(y_hat, y, decimal=4)
Beispiel #5
0
def test_predict_linear():
    input_dimensions = 2
    number_of_nodes = 5
    model = LinearAssociator(input_dimensions=input_dimensions, number_of_nodes=number_of_nodes,
                    transfer_function="Linear")
    model.initialize_weights(seed=1)
    X_train = np.array([[-1.43815556, 0.10089809, -1.25432937, 1.48410426],
                        [-1.81784194, 0.42935033, -1.2806198, 0.06527391]])
    y = np.array([[-1.22398485, -0.09876447, -1.25403672,  2.37076614],
       [ 2.7100805 , -0.51397095,  2.0365662 , -0.8538988 ],
       [ 2.93924278, -0.90084842,  1.86188982,  1.13412472],
       [-1.12555691, -0.15077626, -1.21375201,  2.53979562],
       [-0.00551192, -0.07487682, -0.08083147,  0.4572099 ]])

    y_hat = model.predict(X_train)
    np.testing.assert_array_almost_equal(y_hat, y, decimal=4)