controlGIST
controlGIST.Rd
The following arguments can be used to adjust the GIST optimization. See Gong, P., Zhang, C., Lu, Z., Huang, J., & Ye, J. (2013). A General Iterative Shrinkage and Thresholding Algorithm for Non-convex Regularized Optimization Problems. Proceedings of the 30th International Conference on Machine Learning, 28(2)(2), 37–45. for more details.
Usage
controlGIST(
forceCpptsem = FALSE,
stepSize = 1,
sig = 10^(-5),
maxIter_out = 100,
maxIter_in = 1000,
break_outer = c(fitChange = 10^(-5)),
eta = 2,
stepsizeMin = 1/(10^30),
stepsizeMax = 10^30,
GISTLinesearchCriterion = "monotone",
GISTNonMonotoneNBack = 5,
approxFirst = TRUE,
numStart = 0,
nMultistart = 5,
controlApproxOptimizer = controlRsolnp(nudgeVariancesLambda = 0.2, nudgeVariancesTarget
= log(0.4), control = list(outer.iter = 50, trace = 0))
)
Arguments
- forceCpptsem
should cpptsem be enforced even if results differ from ctsem? Sometimes differences between cpptsem and ctsem can result from problems with numerical precision which will lead to the matrix exponential of RcppArmadillo differing from the OpenMx matrix exponential. If you want to ensure the faster optimization, set to TRUE. See vignette("MatrixExponential", package = "regCtsem") for more details
- stepSize
initial step size of the outer iteration
- sig
sigma value in Gong et al. (2013). Sigma controls the inner stopping criterion and must be in (0,1). Generally, a larger sigma enforce a steeper decrease in the regularized likelihood while a smaller sigma will result in faster acceptance of the inner iteration.
- maxIter_out
Maximal number of outer iterations
- maxIter_in
Maximal number of inner iterations
- break_outer
Stopping criterion for outer iterations; has to be a named value. By default the change in fit is used, with c("fitChange" = 1e-5) meaning that this change should be smaller than 1e-5. Additionally, a relative change in parameters is used as breaking criterion c("parameterChange" = .00001). Alternatively (name: gradient), a relative first-order condition is checked, where the maximum absolute value of the gradients is compared to break_outer (see https://de.mathworks.com/help/optim/ug/first-order-optimality-measure.html). Example: c("gradient" = "max(max(abs(startingValues))*.001, .001)") . Alternatively, an absolute tolerance can be passed to the function (e.g., break_outer = c("gradient" = .0001)).
- eta
if the current step size fails, eta will decrease the step size. Must be > 1
- stepsizeMin
Minimal acceptable step size. Must be > 0. A larger number corresponds to a smaller step from one to the next iteration. All step sizes will be computed as described by Gong et al. (2013)
- stepsizeMax
Maximal acceptable step size. Must be > stepsizeMin. A larger number corresponds to a smaller step from one to the next iteration. All step sizes will be computed as described by Gong et al. (2013)
- GISTLinesearchCriterion
criterion for accepting a step. Possible are 'monotone' which enforces a monotone decrease in the objective function or 'non-monotone' which also accepts some increase.
- GISTNonMonotoneNBack
in case of non-monotone line search: Number of preceding regM2LL values to consider
- approxFirst
Should approximate optimization be used first to obtain start values for exact optimization?
- numStart
Used if approxFirst = 3. regCtsem will try numStart+2 starting values (+2 because it will always try the current best and the parameters provided in sparseParameters)
- nMultistart
controls how many different starting values are tried when estimating lambda_max
- controlApproxOptimizer
settings passed to the optimizer in approximate optimization. Currently, Rsolnp and optimx are supported. See ?controlOptimx and ?controlSolnp for details on the lists passed to controlApprox