mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-24 14:15:14 +02:00
debugging BGPLVM
This commit is contained in:
parent
151c426a3a
commit
bf2d641112
3 changed files with 21 additions and 19 deletions
|
|
@ -6,23 +6,21 @@ import pylab as pb
|
||||||
import GPy
|
import GPy
|
||||||
np.random.seed(123344)
|
np.random.seed(123344)
|
||||||
|
|
||||||
N = 10
|
N = 3
|
||||||
M = 3
|
M = 2
|
||||||
Q = 4
|
Q = 2
|
||||||
D = 5
|
D = 4
|
||||||
#generate GPLVM-like data
|
#generate GPLVM-like data
|
||||||
X = np.random.rand(N, Q)
|
X = np.random.rand(N, Q)
|
||||||
k = GPy.kern.rbf(Q) + GPy.kern.white(Q, 0.00001)
|
k = GPy.kern.rbf(Q) + GPy.kern.white(Q, 0.00001)
|
||||||
K = k.K(X)
|
K = k.K(X)
|
||||||
Y = np.random.multivariate_normal(np.zeros(N),K,D).T
|
Y = np.random.multivariate_normal(np.zeros(N),K,D).T
|
||||||
|
|
||||||
<<<<<<< HEAD
|
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.rbf(Q) + GPy.kern.white(Q)
|
||||||
# k = GPy.kern.linear(Q, ARD = True) + GPy.kern.white(Q, 0.00001)
|
|
||||||
=======
|
|
||||||
# k = GPy.kern.rbf(Q) + GPy.kern.bias(Q) + GPy.kern.white(Q, 0.00001)
|
# 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)
|
# k = GPy.kern.rbf(Q, ARD = False) + GPy.kern.white(Q, 0.00001)
|
||||||
>>>>>>> master
|
|
||||||
m = GPy.models.Bayesian_GPLVM(Y, Q, kernel = k, M=M)
|
m = GPy.models.Bayesian_GPLVM(Y, Q, kernel = k, M=M)
|
||||||
m.constrain_positive('(rbf|bias|noise|white|S)')
|
m.constrain_positive('(rbf|bias|noise|white|S)')
|
||||||
# m.constrain_fixed('S', 1)
|
# m.constrain_fixed('S', 1)
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,9 @@ m.constrain_positive('(rbf|bias|S|linear|white|noise)')
|
||||||
# m.unconstrain('white')
|
# m.unconstrain('white')
|
||||||
# m.constrain_bounded('white', 1e-6, 10.0)
|
# m.constrain_bounded('white', 1e-6, 10.0)
|
||||||
# plot_oil(m.X, np.array([1,1]), labels, 'PCA initialization')
|
# plot_oil(m.X, np.array([1,1]), labels, 'PCA initialization')
|
||||||
m.optimize(messages = True)
|
# m.optimize(messages = True)
|
||||||
# m.optimize('tnc', 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()
|
# # pb.figure()
|
||||||
# m.plot()
|
# m.plot()
|
||||||
# pb.title('PCA initialisation')
|
# pb.title('PCA initialisation')
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,10 @@ class bias(kernpart):
|
||||||
def dKdiag_dX(self,partial,X,target):
|
def dKdiag_dX(self,partial,X,target):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
#---------------------------------------#
|
||||||
|
# PSI statistics #
|
||||||
|
#---------------------------------------#
|
||||||
|
|
||||||
def psi0(self, Z, mu, S, target):
|
def psi0(self, Z, mu, S, target):
|
||||||
target += self.variance
|
target += self.variance
|
||||||
|
|
||||||
|
|
@ -59,27 +63,27 @@ class bias(kernpart):
|
||||||
def dpsi0_dtheta(self, partial, Z, mu, S, target):
|
def dpsi0_dtheta(self, partial, Z, mu, S, target):
|
||||||
target += partial.sum()
|
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):
|
def dpsi0_dZ(self, partial, Z, mu, S, target):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def dpsi0_dmuS(self, partial, Z, mu, S, target_mu, target_S):
|
def dpsi0_dmuS(self, partial, Z, mu, S, target_mu, target_S):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def dpsi1_dtheta(self, partial, Z, mu, S, target):
|
|
||||||
target += partial.sum()
|
|
||||||
|
|
||||||
def dpsi1_dZ(self, partial, Z, mu, S, target):
|
def dpsi1_dZ(self, partial, Z, mu, S, target):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def dpsi1_dmuS(self, partial, Z, mu, S, target_mu, target_S):
|
def dpsi1_dmuS(self, partial, Z, mu, S, target_mu, target_S):
|
||||||
pass
|
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):
|
def dpsi2_dZ(self, partial, Z, mu, S, target):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def dpsi2_dmuS(self, partial, Z, mu, S, target_mu, target_S):
|
def dpsi2_dmuS(self, partial, Z, mu, S, target_mu, target_S):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue