Class ProximalGradient

java.lang.Object
edu.pitt.csb.mgm.ProximalGradient

public class ProximalGradient extends Object
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.

  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor 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 Type
    Method
    Description
    cern.colt.matrix.DoubleMatrix1D
    learnBackTrack(ConvexProximal cp, cern.colt.matrix.DoubleMatrix1D Xin, double epsilon, int iterLimit)
     
    static double
    norm2(cern.colt.matrix.DoubleMatrix1D vec)
     
    void
    Positive edge change tolerance is the number of iterations with 0 edge changes needed to converge.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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/beta
      alpha - (0,1) factor to decrease L otherwise, L = L_old*alpha
      edgeConverge -
    • 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)
    • 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.
    • learnBackTrack

      public cern.colt.matrix.DoubleMatrix1D learnBackTrack(ConvexProximal cp, cern.colt.matrix.DoubleMatrix1D Xin, double epsilon, int iterLimit)