mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-18 13:55:14 +02:00
About to rip out old chain rule method of learning gradients
This commit is contained in:
parent
146d7e2458
commit
d63d370641
2 changed files with 4 additions and 3 deletions
|
|
@ -87,7 +87,7 @@ class Laplace(likelihood):
|
|||
#dL_dytil_simple_term = -0.5*np.dot(inv(self.K+self.Sigma_tilde),
|
||||
#dL_dytil_simple_term = -np.dot(self.Y.T, inv(self.K+self.Sigma_tilde), self.Y)
|
||||
c = inv(self.K+self.Sigma_tilde)
|
||||
dL_dytil_simple_term = -0.5*np.diag(np.dot(c, self.Y) + np.dot(self.Y.T, c))
|
||||
dL_dytil_simple_term = -0.5*np.diag(2*np.dot(c, self.Y))
|
||||
|
||||
P = np.diagflat(1/np.dot(Ki, self.f_hat))
|
||||
K_Wi_i = inv(self.K+self.Sigma_tilde)
|
||||
|
|
@ -96,6 +96,7 @@ class Laplace(likelihood):
|
|||
+0.5*mdot(K_Wi_i, self.Y, self.Y.T, K_Wi_i, P)
|
||||
) * np.eye(self.N))
|
||||
dL_dytil = dL_dytil_simple_term + dL_dytil_difficult_term
|
||||
dL_dytil = dL_dytil.reshape(1, self.N)
|
||||
|
||||
d3likelihood_d3fhat = self.likelihood_function.d3link(self.data, self.f_hat, self.extra_data)
|
||||
Wi = np.diagonal(self.Sigma_tilde) #Convenience
|
||||
|
|
@ -329,6 +330,7 @@ class Laplace(likelihood):
|
|||
#+ y_W_f
|
||||
#+ self.ln_z_hat
|
||||
#)
|
||||
self.Z_tilde = 0
|
||||
|
||||
##Check it isn't singular!
|
||||
if cond(self.W) > epsilon:
|
||||
|
|
|
|||
|
|
@ -62,8 +62,6 @@ class Likelihood_F_Grad(LikelihoodParamGrad):
|
|||
|
||||
def log_likelihood(self):
|
||||
ll = self.func(self)
|
||||
if self.param_name == "dL_dfhat_":
|
||||
import ipdb; ipdb.set_trace() ### XXX BREAKPOINT
|
||||
if len(ll.shape) == 0 or len(ll.shape) == 1:
|
||||
return ll.sum()
|
||||
elif len(ll.shape) == 2:
|
||||
|
|
@ -128,6 +126,7 @@ class LaplaceTests(unittest.TestCase):
|
|||
|
||||
def test_dL_dfhat(self):
|
||||
def L(self):
|
||||
#return np.array(-0.5 * self.D * self.K_logdet + self._model_fit_term()) #Ignore Z for now
|
||||
return np.array(-0.5 * self.D * self.K_logdet + self._model_fit_term() + self.likelihood.Z)
|
||||
|
||||
self.m = Likelihood_F_Grad(X=self.X, likelihood_function=self.stu_t_likelihood,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue