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
gradient := getGradient(coefs) // distributed, 1 pass over data
history += (coefs, gradient) // local
dir := newDir(history, gradient) // local
1 L-BFGS iteration thus takes 2 passes over the (distributed) dataset.
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
L_BFGS.GradientInfo |
static class |
L_BFGS.GradientSolver
Provides gradient computation and line search evaluation specific to given problem.
|
static class |
L_BFGS.History
Keeps L-BFGS history ie curvature information recorded over the last m steps.
|
static class |
L_BFGS.LineSearchSol
Line search results.
|
static class |
L_BFGS.ProgressMonitor
Monitor progress and enable early termination.
|
static class |
L_BFGS.Result |
Modifier and Type | Field and Description |
---|---|
static double |
c1 |
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 |
setMinIter(int m) |
L_BFGS |
setObjEps(double d) |
L_BFGS.Result |
solve(L_BFGS.GradientSolver gslvr,
double[] coefs)
Solve the optimization problem defined by the user-supplied gradient function using L-BFGS algorithm.
|
L_BFGS.Result |
solve(L_BFGS.GradientSolver gslvr,
double[] beta,
L_BFGS.GradientInfo ginfo,
L_BFGS.ProgressMonitor pm)
Solve the optimization problem defined by the user-supplied gradient function using L-BFGS algorithm.
|
static double[] |
startCoefs(int n,
long seed) |
public static final double c1
public L_BFGS setMaxIter(int m)
public L_BFGS setMinIter(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(L_BFGS.GradientSolver gslvr, double[] coefs)
gslvr
- - user gradient functionpublic final L_BFGS.Result solve(L_BFGS.GradientSolver gslvr, double[] beta, L_BFGS.GradientInfo ginfo, L_BFGS.ProgressMonitor pm)
gslvr
- - user gradient functionbeta
- - starting solutionpublic static double[] startCoefs(int n, long seed)