From 47d10600d17a6c7577fb56bdca980afb552ec594 Mon Sep 17 00:00:00 2001 From: mzwiessele Date: Wed, 18 Jun 2014 08:52:27 -0700 Subject: [PATCH] [scg] minor adjustements based on original publication --- GPy/inference/optimization/scg.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/GPy/inference/optimization/scg.py b/GPy/inference/optimization/scg.py index 503c19be..e183b7a8 100644 --- a/GPy/inference/optimization/scg.py +++ b/GPy/inference/optimization/scg.py @@ -56,13 +56,13 @@ def SCG(f, gradf, x, optargs=(), maxiters=500, max_f_eval=np.inf, display=True, if gtol is None: gtol = 1e-5 - sigma0 = 1.0e-8 + sigma0 = 1.0e-7 fold = f(x, *optargs) # Initial function value. function_eval = 1 fnow = fold gradnew = gradf(x, *optargs) # Initial gradient. - if any(np.isnan(gradnew)): - raise UnexpectedInfOrNan, "Gradient contribution resulted in a NaN value" + #if any(np.isnan(gradnew)): + # raise UnexpectedInfOrNan, "Gradient contribution resulted in a NaN value" current_grad = np.dot(gradnew, gradnew) gradold = gradnew.copy() d = -gradnew # Initial search direction. @@ -168,13 +168,13 @@ def SCG(f, gradf, x, optargs=(), maxiters=500, max_f_eval=np.inf, display=True, if Delta < 0.25: beta = min(4.0 * beta, betamax) if Delta > 0.75: - beta = max(0.5 * beta, betamin) + beta = max(0.25 * beta, betamin) # Update search direction using Polak-Ribiere formula, or re-start # in direction of negative gradient after nparams steps. if nsuccess == x.size: d = -gradnew -# beta = 1. # TODO: betareset!! + beta = 1. # This is not in the original paper nsuccess = 0 elif success: Gamma = np.dot(gradold - gradnew, gradnew) / (mu)