mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-21 14:05:14 +02:00
[SSGPLVM] support linear kernel with ARD off
This commit is contained in:
parent
21ba9663b6
commit
a7b1f30c46
1 changed files with 5 additions and 1 deletions
|
|
@ -110,6 +110,7 @@ class Linear(Kern):
|
||||||
gamma = variational_posterior.binary_prob
|
gamma = variational_posterior.binary_prob
|
||||||
mu = variational_posterior.mean
|
mu = variational_posterior.mean
|
||||||
S = variational_posterior.variance
|
S = variational_posterior.variance
|
||||||
|
|
||||||
return np.einsum('q,nq,nq->n',self.variances,gamma,np.square(mu)+S)
|
return np.einsum('q,nq,nq->n',self.variances,gamma,np.square(mu)+S)
|
||||||
# return (self.variances*gamma*(np.square(mu)+S)).sum(axis=1)
|
# return (self.variances*gamma*(np.square(mu)+S)).sum(axis=1)
|
||||||
else:
|
else:
|
||||||
|
|
@ -150,7 +151,10 @@ class Linear(Kern):
|
||||||
_dpsi2_dvariance, _, _, _, _ = linear_psi_comp._psi2computations(self.variances, Z, mu, S, gamma)
|
_dpsi2_dvariance, _, _, _, _ = linear_psi_comp._psi2computations(self.variances, Z, mu, S, gamma)
|
||||||
grad = np.einsum('n,nq,nq->q',dL_dpsi0,gamma,mu2S) + np.einsum('nm,nq,mq,nq->q',dL_dpsi1,gamma,Z,mu) +\
|
grad = np.einsum('n,nq,nq->q',dL_dpsi0,gamma,mu2S) + np.einsum('nm,nq,mq,nq->q',dL_dpsi1,gamma,Z,mu) +\
|
||||||
np.einsum('nmo,nmoq->q',dL_dpsi2,_dpsi2_dvariance)
|
np.einsum('nmo,nmoq->q',dL_dpsi2,_dpsi2_dvariance)
|
||||||
|
if self.ARD:
|
||||||
self.variances.gradient = grad
|
self.variances.gradient = grad
|
||||||
|
else:
|
||||||
|
self.variances.gradient = grad.sum()
|
||||||
else:
|
else:
|
||||||
#psi1
|
#psi1
|
||||||
self.update_gradients_full(dL_dpsi1, variational_posterior.mean, Z)
|
self.update_gradients_full(dL_dpsi1, variational_posterior.mean, Z)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue