def _param_grad_helper(self,dL_dK,X,X2,target):
        """derivative of the covariance matrix with respect to the parameters."""
        AX = np.dot(X,self.transform)
        if X2 is None:
            X2 = X
            ZX2 = AX
        else:
            AX2 = np.dot(X2, self.transform)
        self.k._param_grad_helper(dL_dK,X,X2,target)
        self.k._param_grad_helper(dL_dK,AX,X2,target)
        self.k._param_grad_helper(dL_dK,X,AX2,target)
        self.k._param_grad_helper(dL_dK,AX,AX2,target)