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)
Created by ajsedgewick on 8/4/15.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoublenonSmooth(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.doublesmooth(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()
-
-
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)
-