ElasticL2.h_transform(f, **kwargs)#

Compute the h-transform of a concave function.

Return a callable \(f_h\) defined as:

\[f_h(x) = \min_y h(x - y) - f(y)\]

This is equivalent, up to a change of variables, \(z = x - y\), to define

\[\begin{split}\min_z h(z) - f(x - z). \\ \min_z h(z) + \tilde{f}(z, x).\end{split}\]

where \(\tilde{f}(z, x) := -f(x - z)\).

This is solved using proximal gradient descent, which requires having access to the prox of \(\text{scaling_h} \cdot h\) and not only to that of h(). Given the properties of h(), the prox is obtained by rescaling the output of the prox of a suitable scaling of prox_reg().

Return type:

Callable[[Array], float]


The h-transform of f.