From bf2d6411127429db08bac8e512e48c83f0a493b1 Mon Sep 17 00:00:00 2001 From: Nicolo Fusi Date: Fri, 15 Feb 2013 16:31:51 +0000 Subject: [PATCH] debugging BGPLVM --- GPy/examples/BGPLVM_demo.py | 18 ++++++++---------- GPy/examples/oil_flow_demo.py | 4 ++-- GPy/kern/bias.py | 18 +++++++++++------- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/GPy/examples/BGPLVM_demo.py b/GPy/examples/BGPLVM_demo.py index 0fd58571..57ab95d9 100644 --- a/GPy/examples/BGPLVM_demo.py +++ b/GPy/examples/BGPLVM_demo.py @@ -6,23 +6,21 @@ import pylab as pb import GPy np.random.seed(123344) -N = 10 -M = 3 -Q = 4 -D = 5 +N = 3 +M = 2 +Q = 2 +D = 4 #generate GPLVM-like data X = np.random.rand(N, Q) k = GPy.kern.rbf(Q) + GPy.kern.white(Q, 0.00001) K = k.K(X) Y = np.random.multivariate_normal(np.zeros(N),K,D).T -<<<<<<< HEAD -k = GPy.kern.rbf(Q) + GPy.kern.rbf(Q) + GPy.kern.white(Q) -# k = GPy.kern.linear(Q, ARD = True) + GPy.kern.white(Q, 0.00001) -======= +k = GPy.kern.bias(Q) #+ GPy.kern.white(Q) +# k = GPy.kern.rbf(Q) + GPy.kern.rbf(Q) + GPy.kern.white(Q) # k = GPy.kern.rbf(Q) + GPy.kern.bias(Q) + GPy.kern.white(Q, 0.00001) -k = GPy.kern.rbf(Q, ARD = False) + GPy.kern.white(Q, 0.00001) ->>>>>>> master +# k = GPy.kern.rbf(Q, ARD = False) + GPy.kern.white(Q, 0.00001) + m = GPy.models.Bayesian_GPLVM(Y, Q, kernel = k, M=M) m.constrain_positive('(rbf|bias|noise|white|S)') # m.constrain_fixed('S', 1) diff --git a/GPy/examples/oil_flow_demo.py b/GPy/examples/oil_flow_demo.py index 91fff4e4..70ddb727 100644 --- a/GPy/examples/oil_flow_demo.py +++ b/GPy/examples/oil_flow_demo.py @@ -41,9 +41,9 @@ m.constrain_positive('(rbf|bias|S|linear|white|noise)') # m.unconstrain('white') # m.constrain_bounded('white', 1e-6, 10.0) # plot_oil(m.X, np.array([1,1]), labels, 'PCA initialization') -m.optimize(messages = True) +# m.optimize(messages = True) # m.optimize('tnc', messages = True) -plot_oil(m.X, m.kern.parts[0].lengthscale, labels, 'B-GPLVM') +# plot_oil(m.X, m.kern.parts[0].lengthscale, labels, 'B-GPLVM') # # pb.figure() # m.plot() # pb.title('PCA initialisation') diff --git a/GPy/kern/bias.py b/GPy/kern/bias.py index d97f2f00..91594e4c 100644 --- a/GPy/kern/bias.py +++ b/GPy/kern/bias.py @@ -47,6 +47,10 @@ class bias(kernpart): def dKdiag_dX(self,partial,X,target): pass + #---------------------------------------# + # PSI statistics # + #---------------------------------------# + def psi0(self, Z, mu, S, target): target += self.variance @@ -59,27 +63,27 @@ class bias(kernpart): def dpsi0_dtheta(self, partial, Z, mu, S, target): target += partial.sum() + def dpsi1_dtheta(self, partial, Z, mu, S, target): + target += partial.sum() + + def dpsi2_dtheta(self, partial, Z, mu, S, target): + target += 2.*self.variance*partial.sum() + + def dpsi0_dZ(self, partial, Z, mu, S, target): pass def dpsi0_dmuS(self, partial, Z, mu, S, target_mu, target_S): pass - def dpsi1_dtheta(self, partial, Z, mu, S, target): - target += partial.sum() - def dpsi1_dZ(self, partial, Z, mu, S, target): pass def dpsi1_dmuS(self, partial, Z, mu, S, target_mu, target_S): pass - - def dpsi2_dtheta(self, partial, Z, mu, S, target): - target += np.sum(2.*self.variance*partial) def dpsi2_dZ(self, partial, Z, mu, S, target): pass def dpsi2_dmuS(self, partial, Z, mu, S, target_mu, target_S): pass -