Package edu.pitt.csb.mgm
Class ConvexProximal
java.lang.Object
edu.pitt.csb.mgm.ConvexProximal
- Direct Known Subclasses:
Mgm
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)
- Version:
- $Id: $Id
- Author:
- asedgewick 8/4/15
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondouble
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.
-
Constructor Details
-
ConvexProximal
public ConvexProximal()Constructor for 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 VectorXout
- 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 operatorX
- input vectorXout
- vector solution to prox_t(X)- Returns:
- value of h(X)
-