Exemple #1
0
 def test_safe_chol(self):
     with self.test_session():
         B=np.array([[1.0,1.1,1.2,1.3]]).T;B1=tf.constant(B,shape=[4,1],dtype=tf.float32)
         A=h.squared_diff(B1,B1);
         A=A+0.2*np.eye(4)
         x=h.safe_chol(A,B1)
         self.assertAllClose(tf.matmul(A,x).eval(),B1.eval(),atol=1e-1)
Exemple #2
0
def predict2():
    # predicitions
    cov=h.Mul(K_mm_2,tf.matrix_inverse(K_mm_2+K_mnnm_2/tf.square(sigma_2)),K_mm_2)
    cov_chol=tf.cholesky(cov)
    mu=h.Mul(K_mm_2,tf.cholesky_solve(cov_chol,K_mn_2),Ytr)/tf.square(sigma_2)
    mean=h.Mul(K_nm_2,tf.matrix_solve(K_mm_1,mu))
    variance=K_nn_2-h.Mul(K_nm_2,h.safe_chol(K_mm_2,tf.transpose(K_nm_2)))
    var_terms=2*tf.sqrt(tf.reshape(tf.diag_part(variance)+tf.square(sigma_2),[N,1]))
    return mean, var_terms
Exemple #3
0
def predict(K_mn,sigma,K_mm,K_nn):
    # predicitions
    K_nm=tf.transpose(K_mn)
    Sig_Inv=1e-1*np.eye(M)+K_mm+K_mnnm_2/tf.square(sigma)
    mu_post=h.Mul(tf.matrix_solve(Sig_Inv,K_mn),Ytr)/tf.square(sigma)
    mean=h.Mul(K_nm,mu_post)
    variance=K_nn-h.Mul(K_nm,h.safe_chol(K_mm,K_mn))+h.Mul(K_nm,tf.matrix_solve(Sig_Inv,K_mn))
    var_terms=2*tf.sqrt(tf.reshape(tf.diag_part(variance)+tf.square(sigma),[N,1]))

    return mean, var_terms
Exemple #4
0
def predict(K_mn,sigma,K_mm,K_nn):
    # predicitions
    K_nm=tf.transpose(K_mn)
    Sig_Inv=1e-1*np.eye(M)+K_mm+K_mnnm_2/tf.square(sigma)
    mu_post=h.Mul(tf.matrix_solve(Sig_Inv,K_mn),Ytr)/tf.square(sigma)
    mean=h.Mul(K_nm,mu_post)
    variance=K_nn-h.Mul(K_nm,h.safe_chol(K_mm,K_mn))+h.Mul(K_nm,tf.matrix_solve(Sig_Inv,K_mn))
    var_terms=2*tf.sqrt(tf.reshape(tf.diag_part(variance)+tf.square(sigma),[N,1]))

    return mean, var_terms
Exemple #5
0
sigma = tf.Variable(tf.ones([1, 1]), dtype=tf.float32, name='sigma')
noise = tf.Variable(tf.ones([1, 1]), dtype=tf.float32, name='sigma')
len_sc = tf.Variable(tf.ones([1, 1]), dtype=tf.float32, name='len_sc')

s.run(tf.initialize_all_variables())
print(s.run(X_m))

X_j_m = h.jitter(X_m)

K_nm = h.tf_SE_K(Xtr, X_m, len_sc, noise)
K_mm = h.tf_SE_K(X_m, X_m, len_sc, noise) + h.tol * np.eye(M, M)
K_nn = h.tf_SE_K(Xtr, Xtr, len_sc, noise)
K_mn = h.tf.transpose(K_nm)

Sig_Inv = K_mm + h.Mul(K_mn, K_nm) / (tf.square(sigma) + h.tol)
mu_post = h.Mul(h.safe_chol(Sig_Inv, K_mn), Ytr) / (tf.square(sigma) + h.tol)
mean = h.Mul(K_nm, mu_post)
variance = K_nn - h.Mul(K_nm, h.safe_chol(K_mm, K_mn)) + h.Mul(
    K_nm, h.safe_chol(Sig_Inv, K_mn))
var_terms = 2 * tf.sqrt(
    tf.reshape(tf.diag_part(variance) + tf.square(sigma), [N, 1]))

F_v = h.F_bound_v1(Ytr, K_mm, K_nm, K_nn, sigma)
tf.scalar_summary("F_v", F_v)

opt = tf.train.AdamOptimizer(0.5)
train = opt.minimize(-1 * F_v)
init = tf.initialize_all_variables()
s.run(init)

plt.ion()
Exemple #6
0


s.run(tf.initialize_all_variables())
print(s.run(X_m))


X_j_m=h.jitter(X_m)

K_nm=h.tf_SE_K(Xtr,X_m,len_sc,noise)
K_mm=h.tf_SE_K(X_m,X_m,len_sc,noise)+h.tol*np.eye(M,M)
K_nn=h.tf_SE_K(Xtr,Xtr,len_sc,noise)
K_mn=h.tf.transpose(K_nm)

Sig_Inv=K_mm+h.Mul(K_mn,K_nm)/(tf.square(sigma)+h.tol)
mu_post=h.Mul(h.safe_chol(Sig_Inv,K_mn),Ytr)/(tf.square(sigma)+h.tol)
mean=h.Mul(K_nm,mu_post)
variance=K_nn-h.Mul(K_nm,h.safe_chol(K_mm,K_mn))+h.Mul(K_nm,h.safe_chol(Sig_Inv,K_mn))
var_terms=2*tf.sqrt(tf.reshape(tf.diag_part(variance)+tf.square(sigma),[N,1]))

F_v=h.F_bound_v1(Ytr,K_mm,K_nm,K_nn,sigma)
tf.scalar_summary("F_v", F_v)

opt = tf.train.AdamOptimizer(0.5)
train=opt.minimize(-1*F_v)
init=tf.initialize_all_variables()
s.run(init)


plt.ion()
plt.axis([0, 10, -5, 5])