This benchmark is dedicated to solver of TV-2D regularised regression problem:
-
$\boldsymbol{y} \in \mathbb{R}^{n \times m}$ is a vector of observations or targets. -
$A \in \mathbb{R}^{n \times n}$ is a design matrix or forward operator. -
$\lambda > 0$ is a regularization hyperparameter. -
$f(\boldsymbol{y}, A\boldsymbol{u}) = \sum\limits_{k=1}^{n} \sum\limits_{l=1}^{m} l(y_{k,l}, (A\boldsymbol{u})_{k,l})$ is a loss function, where$l$ can be quadratic loss as$l(y, x) = \frac{1}{2} \vert y - x \vert_2^2$ , or Huber loss$l(y, x) = h_{\delta} (y - x)$ defined by
-
$D_1 \in \mathbb{R}^{(n-1) \times n}$ and$D_2 \in \mathbb{R}^{(m-1) \times m}$ are finite difference operators, such that the regularised TV-2D term$g(\boldsymbol{u}) = \lambda \| \boldsymbol{u} \|_{TV}$ expressed as follows.
In isotropic cases:
In anisotropic cases:
where n (or height) and m (or width) stand for the dimension of targeted vector.
This benchmark can be run using the following commands:
$ pip install -U benchopt $ git clone https://github.com/benchopt/benchmark_tv_2d $ benchopt run benchmark_tv_2d
Apart from the problem, options can be passed to benchopt run, to restrict the benchmarks to some solvers or datasets, e.g.:
$ benchopt run benchmark_tv_2d --config benchmark_tv_2d/example_config.yml
Use benchopt run -h for more details about these options, or visit https://benchopt.github.io/api.html.