{ "cells": [ { "cell_type": "markdown", "id": "cb1e03ec-c339-4bd3-b492-a402b85413f6", "metadata": {}, "source": [ "# Optimisation Framework\n", "\n", "The $\\textbf{cil.optimisation}$ framework contains three structures, namely $\\texttt{Function}$\\, $\\texttt{Operator}$ and $\\texttt{Algorithm}$ that formalise a generic optimisation problem for imaging applications as\n", "$$\n", "u^{*} =\\argmin_{u\\in\\mathbb{X}} f(Ku) + g(u) \\equiv \\argmin_{u\\in \\mathbb{X}} \\sum_{i=0}^{n-1}f_{i}K_{i}(u) + g(u).\n", "\\tag{1}\n", "$$\n", "\n", "We let $\\mathbb{X}, \\mathbb{Y}$ denote finite-dimensional vector spaces, $K:\\mathbb{X}\\rightarrow \\mathbb{Y}$ a linear operator with operator norm $\\|K\\| = \\max \\{ \\|Ku\\|_{Y}: \\|u\\|_{\\mathbb{X}}\\leq 1 \\}$ and proper, convex functions \n", "- $f: \\mathbb{Y}\\rightarrow\\overline{\\mathbb{R}}$\n", "- $g: \\mathbb{X}\\rightarrow\\overline{\\mathbb{R}}$\n", "\n", "---\n", "\n", "**Note:** In certain cases, it is convenient to decompose $\\mathbb{Y}=Y_{0}\\times\\dots \\times Y_{n-1}$, $n\\geq1$ and consider a separable function, e.g., $\\texttt{BlockFunction}$, \n", "\n", "- $f(y) := f(y_{0},\\dots,y_{n-1}) = \\sum_{i=0}^{n-1}f_{i}(y_{i})$\n", "\n", "which results to the right-side formulation in $eqn.(1)$.\n", "\n", "With the above form, $f(y)$ is a __separable sum__ of decoupled functions, which is useful when we need to compute the proximal operator of $f$, i.e., \n", "\n", "$$\\mathrm{prox}_{\\tau f}(z) = \n", "\\begin{bmatrix}\n", "\\mathrm{prox}_{\\tau f_0}(z_0)\\\\\n", "\\mathrm{prox}_{\\tau f_1}(z_1)\\\\\n", "\\vdots\\\\\n", "\\mathrm{prox}_{\\tau f_{n-1}}(z_{n-1})\n", "\\end{bmatrix} = \n", "\\begin{bmatrix}\n", "\\underset{y_{0}\\in \\mathbb{Y_{0}}}{\\operatorname{argmin}} \\tau f_{0}(y_{0}) + \\frac{1}{2}\\|y_{0} - z_{0}\\|^{2}\\\\\n", "\\underset{y_{1}\\in \\mathbb{Y_{1}}}{\\operatorname{argmin}} \\tau f_{1}(y_{1}) + \\frac{1}{2}\\|y_{1} - z_{1}\\|^{2}\\\\\n", "\\vdots\\\\\n", "\\underset{y_{{n-1}}\\in \\mathbb{Y_{n-1}}}{\\operatorname{argmin}} \\tau f_{{n-1}}(y_{{n-1}}) + \\frac{1}{2}\\|y_{{n-1}} - z_{{n-1}}\\|^{2}\\\\\n", "\\end{bmatrix}\n", "$$\n", "\n", "---\n", "\n", "\n", "# Gallery Algorithms\n", "\n", "1. [Simultaneous Iterative Reconstruction Technique](#SIRT)\n", "2. [A Fast Iterative Shrinkage-Thresholding Algorithm](#FISTA)\n", "3. [Primal Dual Hybrid Gradient](#PDHG)\n", "4. [Stochastic Primal Dual Hybrid Gradient](#SPDHG)\n", "\n", "