public final class L_BFGS
extends water.Iced
L-BFGS will then perform following loop:
while(not converged):
coefs := doLineSearch(coefs, dir) // distributed, 1 pass over data
ginfo := getGradient(coefs) // distributed, 1 pass over data
history += (coefs, ginfo) // local
dir := newDir(history, ginfo) // local
1 L-BFGS iteration thus takes 2 passes over the (distributed) dataset.
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
L_BFGS.History
Keeps L-BFGS history ie curvature information recorded over the last m steps.
|
static interface |
L_BFGS.ProgressMonitor
Monitor progress and enable early termination.
|
static class |
L_BFGS.Result |
Constructor and Description |
---|
L_BFGS() |
Modifier and Type | Method and Description |
---|---|
int |
k() |
int |
maxIter() |
L_BFGS |
setGradEps(double d) |
L_BFGS |
setHistorySz(int sz) |
L_BFGS |
setMaxIter(int m) |
L_BFGS |
setObjEps(double d) |
L_BFGS.Result |
solve(OptimizationUtils.GradientSolver gslvr,
double[] coefs)
Solve the optimization problem defined by the user-supplied ginfo function using L-BFGS algorithm.
|
L_BFGS.Result |
solve(OptimizationUtils.GradientSolver gslvr,
double[] beta,
OptimizationUtils.GradientInfo ginfo,
L_BFGS.ProgressMonitor pm)
Solve the optimization problem defined by the user-supplied ginfo function using L-BFGS algorithm.
|
static double[] |
startCoefs(int n,
long seed) |
public L_BFGS setMaxIter(int m)
public L_BFGS setGradEps(double d)
public L_BFGS setObjEps(double d)
public L_BFGS setHistorySz(int sz)
public int k()
public int maxIter()
public final L_BFGS.Result solve(OptimizationUtils.GradientSolver gslvr, double[] beta, OptimizationUtils.GradientInfo ginfo, L_BFGS.ProgressMonitor pm)
gslvr
- - user ginfo functionbeta
- - starting solutionpublic final L_BFGS.Result solve(OptimizationUtils.GradientSolver gslvr, double[] coefs)
gslvr
- - user ginfo functionpublic static double[] startCoefs(int n, long seed)