Package edu.pitt.csb.mgm
Class ProximalGradient
java.lang.Object
edu.pitt.csb.mgm.ProximalGradient
Implementation of Nesterov's 83 method as described in Beck and Teboulle, 2009 aka Fast Iterative Shrinkage
Thresholding Algorithm
with step size scaling from Becker et all 2011
Created by ajsedgewick on 7/29/15.
- Version:
- $Id: $Id
- Author:
- josephramsey
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor using defaults from Becker et al 2011.ProximalGradient
(double beta, double alpha, boolean edgeConverge) Constructor, set parameters for a proximal gradient run -
Method Summary
Modifier and TypeMethodDescriptioncern.colt.matrix.DoubleMatrix1D
learnBackTrack
(ConvexProximal cp, cern.colt.matrix.DoubleMatrix1D Xin, double epsilon, int iterLimit) learnBackTrack.static double
norm2
(cern.colt.matrix.DoubleMatrix1D vec) norm2.void
setEdgeChangeTol
(int t) Positive edge change tolerance is the number of iterations with 0 edge changes needed to converge.
-
Constructor Details
-
ProximalGradient
public ProximalGradient(double beta, double alpha, boolean edgeConverge) Constructor, set parameters for a proximal gradient run- Parameters:
beta
- (0,1) factor to increase L when Lipshitz violated, L = L_old/betaalpha
- (0,1) factor to decrease L otherwise, L = L_old*alphaedgeConverge
- a boolean
-
ProximalGradient
public ProximalGradient()Constructor using defaults from Becker et al 2011. beta = .5, alpha = .9
-
-
Method Details
-
norm2
public static double norm2(cern.colt.matrix.DoubleMatrix1D vec) norm2.
- Parameters:
vec
- aDoubleMatrix1D
object- Returns:
- a double
-
setEdgeChangeTol
public void setEdgeChangeTol(int t) Positive edge change tolerance is the number of iterations with 0 edge changes needed to converge. Negative edge change tolerance means convergence happens when number of difference edges <= |edge change tol|. Default is 3.- Parameters:
t
- a int
-
learnBackTrack
public cern.colt.matrix.DoubleMatrix1D learnBackTrack(ConvexProximal cp, cern.colt.matrix.DoubleMatrix1D Xin, double epsilon, int iterLimit) learnBackTrack.
- Parameters:
cp
- aConvexProximal
objectXin
- aDoubleMatrix1D
objectepsilon
- a doubleiterLimit
- a int- Returns:
- a
DoubleMatrix1D
object
-