From a03b0f117929b74db092dc71345950f734490fc3 Mon Sep 17 00:00:00 2001 From: James Hensman Date: Thu, 11 Apr 2013 10:07:56 +0100 Subject: [PATCH] fixed Browninan motion kern (doesnt seem to have a unittest?) --- GPy/kern/Brownian.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/GPy/kern/Brownian.py b/GPy/kern/Brownian.py index fd19137c..4393ed1b 100644 --- a/GPy/kern/Brownian.py +++ b/GPy/kern/Brownian.py @@ -41,20 +41,21 @@ class Brownian(kernpart): def Kdiag(self,X,target): target += self.variance*X.flatten() - def dK_dtheta(self,X,X2,target): - target += np.fmin(X,X2.T) + def dK_dtheta(self,dL_dK,X,X2,target): + target += np.sum(np.fmin(X,X2.T)*dL_dK) - def dKdiag_dtheta(self,X,target): - target += X.flatten() + def dKdiag_dtheta(self,dL_dKdiag,X,target): + target += np.dot(X.flatten(), dL_dKdiag) - def dK_dX(self,X,X2,target): - target += self.variance - target -= self.variance*theta(X-X2.T) - if X.shape==X2.shape: - if np.all(X==X2): - np.add(target[:,:,0],self.variance*np.diag(X2.flatten()-X.flatten()),target[:,:,0]) + def dK_dX(self,dL_dK,X,X2,target): + raise NotImplementedError, "TODO" + #target += self.variance + #target -= self.variance*theta(X-X2.T) + #if X.shape==X2.shape: + #if np.all(X==X2): + #np.add(target[:,:,0],self.variance*np.diag(X2.flatten()-X.flatten()),target[:,:,0]) - def dKdiag_dX(self,X,target): - target += self.variance + def dKdiag_dX(self,dL_dKdiag,X,target): + target += self.variance*dL_dKdiag[:,None]