Class ConvexProximal

java.lang.Object
edu.pitt.csb.mgm.ConvexProximal
Direct Known Subclasses:
Mgm

public abstract class ConvexProximal extends Object
This interface should be used for non-differentiable convex functions that are decomposable such that f(x) = g(x) + h(x) where g(x) is a differentiable convex function (i.e. smooth) and h(x) is a convex but not necessarily differentiable (i.e. non-smooth) and has a proximal operator prox_t(x) = argmin_z 1/(2t) norm2(x-z)^2 + h(z) has a solution for any t > 0. Typically g(x) will be a likelihood, and h(x) is a penalty term (as in l_1 in the lasso)
Author:
asedgewick 8/4/15
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    nonSmooth(double t, cern.colt.matrix.DoubleMatrix1D X, cern.colt.matrix.DoubleMatrix1D Xout)
    Calculate value of h(X) and proxOperator of h(X) at the same time for efficiency reasons.
    double
    smooth(cern.colt.matrix.DoubleMatrix1D X, cern.colt.matrix.DoubleMatrix1D Xout)
    Calculate value of g(X) and gradient of g(X) at the same time for efficiency reasons.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ConvexProximal

      public ConvexProximal()
  • Method Details

    • smooth

      public double smooth(cern.colt.matrix.DoubleMatrix1D X, cern.colt.matrix.DoubleMatrix1D Xout)
      Calculate value of g(X) and gradient of g(X) at the same time for efficiency reasons.
      Parameters:
      X - input Vector
      Xout - gradient of g(X)
      Returns:
      value of g(X)
    • nonSmooth

      public double nonSmooth(double t, cern.colt.matrix.DoubleMatrix1D X, cern.colt.matrix.DoubleMatrix1D Xout)
      Calculate value of h(X) and proxOperator of h(X) at the same time for efficiency reasons.
      Parameters:
      t - positive parameter for prox operator
      X - input vector
      Xout - vector solution to prox_t(X)
      Returns:
      value of h(X)