Ejemplo n.º 1
0
def test_compute_C_matches_sym():
    sigma = 1.
    Z = np.random.randn(10, 2)

    K = gaussian_kernel(Z, sigma=sigma)
    C_sym = develop_gaussian.compute_C_sym(Z, K, sigma=sigma)
    C = gaussian.compute_C(Z, Z, K, sigma=sigma)
    assert_allclose(C, C_sym)
def test_compute_C_matches_sym():
    sigma = 1.
    Z = np.random.randn(10, 2)
    
    K = gaussian_kernel(Z, sigma=sigma)
    C_sym = develop_gaussian.compute_C_sym(Z, K, sigma=sigma)
    C = gaussian.compute_C(Z, Z, K, sigma=sigma)
    assert_allclose(C, C_sym)
Ejemplo n.º 3
0
def test_compute_C_sym_against_paper():
    sigma = 1.
    D = 1
    Z = np.random.randn(1, D)
    K = gaussian_kernel(Z, sigma=sigma)
    C = develop_gaussian.compute_C_sym(Z, K, sigma)

    # compute by hand, well, it's just zero (look at it)
    x = Z[0]
    k = K[0, 0]
    C_paper = (x * k - k * x) * (k * x - x * k)

    assert_equal(C, C_paper)
Ejemplo n.º 4
0
def test_objective_sym_same_as_from_estimation():
    sigma = 1.
    lmbda = 1.
    Z = np.random.randn(100, 2)

    K = gaussian_kernel(Z, sigma=sigma)
    a = develop_gaussian.fit_sym(Z, sigma, lmbda, K)
    C = develop_gaussian.compute_C_sym(Z, K, sigma)
    b = develop_gaussian.compute_b_sym(Z, K, sigma)
    J = develop_gaussian.objective_sym(Z, sigma, lmbda, a, K, b, C)

    J2 = develop_gaussian.objective_sym(Z, sigma, lmbda, a, K)
    assert_almost_equal(J, J2)
def test_apply_C_left_sym_matches_full():
    sigma = 1.
    N = 10
    Z = np.random.randn(N, 2)
    K = gaussian_kernel(Z, sigma=sigma)
    R = incomplete_cholesky_gaussian(Z, sigma, eta=0.1)["R"]
    
    v = np.random.randn(Z.shape[0])
    lmbda = 1.
    
    x = (develop_gaussian.compute_C_sym(Z, K, sigma) + lmbda * (K + np.eye(len(K)))).dot(v)
    y = develop_gaussian_low_rank.apply_left_C_sym(v, Z, R.T, lmbda)
    assert_allclose(x, y, atol=2e-1, rtol=2e-1)
Ejemplo n.º 6
0
def test_compute_C_sym_against_paper():
    sigma = 1.
    D = 1
    Z = np.random.randn(1, D)
    K = gaussian_kernel(Z, sigma=sigma)
    C = develop_gaussian.compute_C_sym(Z, K, sigma)
    
    # compute by hand, well, it's just zero (look at it)
    x = Z[0]
    k = K[0, 0]
    C_paper = (x * k - k * x) * (k * x - x * k)
    
    assert_equal(C, C_paper)
Ejemplo n.º 7
0
def test_objective_sym_same_as_from_estimation():
    sigma = 1.
    lmbda = 1.
    Z = np.random.randn(100, 2)
    
    K = gaussian_kernel(Z, sigma=sigma)
    a = develop_gaussian.fit_sym(Z, sigma, lmbda, K)
    C = develop_gaussian.compute_C_sym(Z, K, sigma)
    b = develop_gaussian.compute_b_sym(Z, K, sigma)
    J = develop_gaussian.objective_sym(Z, sigma, lmbda, a, K, b, C)
    
    J2 = develop_gaussian.objective_sym(Z, sigma, lmbda, a, K)
    assert_almost_equal(J, J2)
def test_apply_C_left_sym_matches_full():
    sigma = 1.
    N = 10
    Z = np.random.randn(N, 2)
    K = gaussian_kernel(Z, sigma=sigma)
    R = incomplete_cholesky_gaussian(Z, sigma, eta=0.1)["R"]

    v = np.random.randn(Z.shape[0])
    lmbda = 1.

    x = (develop_gaussian.compute_C_sym(Z, K, sigma) + lmbda *
         (K + np.eye(len(K)))).dot(v)
    y = develop_gaussian_low_rank.apply_left_C_sym(v, Z, R.T, lmbda)
    assert_allclose(x, y, atol=2e-1, rtol=2e-1)
Ejemplo n.º 9
0
def test_objective_matches_sym_precomputed_KbC():
    sigma = 1.
    lmbda = 1.
    Z = np.random.randn(100, 2)
    K = gaussian_kernel(Z, sigma=sigma)

    alpha = np.random.randn(len(Z))
    C = develop_gaussian.compute_C_sym(Z, K, sigma)
    b = develop_gaussian.compute_b_sym(Z, K, sigma)

    K = gaussian_kernel(Z, sigma=sigma)
    J_sym = develop_gaussian.objective_sym(Z, sigma, lmbda, alpha, K, b, C)
    J = gaussian.objective(Z, Z, sigma, lmbda, alpha, K_XY=K, b=b, C=C)

    assert_equal(J, J_sym)
Ejemplo n.º 10
0
def test_objective_matches_sym_precomputed_KbC():
    sigma = 1.
    lmbda = 1.
    Z = np.random.randn(100, 2)
    K = gaussian_kernel(Z, sigma=sigma)
    
    alpha = np.random.randn(len(Z))
    C = develop_gaussian.compute_C_sym(Z, K, sigma)
    b = develop_gaussian.compute_b_sym(Z, K, sigma)
    
    K = gaussian_kernel(Z, sigma=sigma)
    J_sym = develop_gaussian.objective_sym(Z, sigma, lmbda, alpha, K, b, C)
    J = gaussian.objective(Z, Z, sigma, lmbda, alpha, K_XY=K, b=b, C=C)
    
    assert_equal(J, J_sym)
Ejemplo n.º 11
0
def test_compute_C_against_initial_notebook():
    D = 2
    sigma = 1.
    Z = np.random.randn(100, D)
    K = gaussian_kernel(Z, sigma=sigma)
    
    # build matrix expressions from notes
    m = Z.shape[0]
    D = Z.shape[1]
    
    C = np.zeros((m, m))
    for l in np.arange(D):
        x_l = Z[:, l]
        C += (np.diag(x_l).dot(K) - K.dot(np.diag(x_l))).dot(K.dot(np.diag(x_l)) - np.diag(x_l).dot(K))
    
    C_test = develop_gaussian.compute_C_sym(Z, K, sigma)
    
    assert_allclose(C, C_test)
Ejemplo n.º 12
0
def test_compute_C_against_initial_notebook():
    D = 2
    sigma = 1.
    Z = np.random.randn(100, D)
    K = gaussian_kernel(Z, sigma=sigma)

    # build matrix expressions from notes
    m = Z.shape[0]
    D = Z.shape[1]

    C = np.zeros((m, m))
    for l in np.arange(D):
        x_l = Z[:, l]
        C += (np.diag(x_l).dot(K) - K.dot(
            np.diag(x_l))).dot(K.dot(np.diag(x_l)) - np.diag(x_l).dot(K))

    C_test = develop_gaussian.compute_C_sym(Z, K, sigma)

    assert_allclose(C, C_test)