Chambolle–Pock algorithm: Difference between revisions

Content deleted Content added
Tag: references removed
Citation bot (talk | contribs)
Add: authors 1-1. Removed URL that duplicated identifier. Removed parameters. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 406/1032
 
(12 intermediate revisions by 6 users not shown)
Line 1:
{{Short description|Primal-Dual algorithm optimization for convex problems}}
{{multiple image
| align = right
| direction = vertical
| width = 300
| image1 = Inpainting large missing regions original vs damaged.png
| alt1 = Original image and damaged
| caption1 = Original test image and damaged one
| image2 = Inpainting large missing regions reconstruction.png
| alt2 = Original image and damaged
| caption2 = Example of application of the Chambolle-Pock algorithm to image reconstruction.
}}
In [[mathematics]], the '''Chambolle-PockChambolle–Pock algorithm''' is an [[algorithm]] used to solve [[convex optimization]] problems. It was introduced by Antonin Chambolle and Thomas Pock<ref name=":0">{{Cite journal |last1=Chambolle |first1=Antonin |last2=Pock |first2=Thomas |date=2011-05-01 |title=A First-Order Primal-Dual Algorithm for Convex Problems with Applications to Imaging |url=https://doi.org/10.1007/s10851-010-0251-1 |journal=Journal of Mathematical Imaging and Vision |language=en |volume=40 |issue=1 |pages=120–145 |doi=10.1007/s10851-010-0251-1 |bibcode=2011JMIV...40..120C |s2cid=207175707 |issn=1573-7683}}</ref> in 2011 and has since become a widely used method in various fields, including [[Digital image processing|image processing]],<ref name=":1" /><ref name=":2" /><ref name=":3" /> [[computer vision]],<ref>{{Cite book |last1=Pock |first1=Thomas |last2=Cremers |first2=Daniel |last3=Bischof |first3=Horst |last4=Chambolle |first4=Antonin |title=2009 IEEE 12th International Conference on Computer Vision |chapter=An algorithm for minimizing the Mumford-Shah functional |date=2009 |chapter-url=https://ieeexplore.ieee.org/document/5459348 |pages=1133–1140 |doi=10.1109/ICCV.2009.5459348|isbn=978-1-4244-4420-5 |s2cid=15991312 }}</ref> and [[signal processing]].<ref>{{Cite journal |last1=Condat |first1=Laurent |date=2014 |title=A Generic Proximal Algorithm for Convex Optimization—Application to Total Variation Minimization |url=https://ieeexplore.ieee.org/document/6810809 |journal=IEEE Signal Processing Letters |volume=21 |issue=8 |pages=985–989 |doi=10.1109/LSP.2014.2322123 |bibcode=2014ISPL...21..985. |s2cid=8976837 |issn=1070-9908}}</ref>
 
The Chambolle-PockChambolle–Pock algorithm is specifically designed to efficiently solve convex optimization problems that involve the minimization of a non-smooth [[Loss function|cost function]] composed of a data fidelity term and a regularization term.<ref name=":0" /> This is a typical configuration that commonly arises in ill-posed imaging [[Inverse problem|inverse problems]] such as [[image reconstruction]],<ref name=":1">{{Cite journal |last1=Sidky |first1=Emil Y |last2=Jørgensen |first2=Jakob H |last3=Pan |first3=Xiaochuan |date=2012-05-21 |title=Convex optimization problem prototyping for image reconstruction in computed tomography with the Chambolle–Pock algorithm |journal=Physics in Medicine and Biology |volume=57 |issue=10 |pages=3065–3091 |doi=10.1088/0031-9155/57/10/3065 |issn=0031-9155 |pmc=3370658 |pmid=22538474|arxiv=1111.5632 |bibcode=2012PMB....57.3065S }}</ref> [[Noise reduction|denoising]]<ref name=":2">{{Cite journal |last1=Fang |first1=Faming |last2=Li |first2=Fang |last3=Zeng |first3=Tieyong |date=2014-03-13 |title=Single Image Dehazing and Denoising: A Fast Variational Approach |url=http://epubs.siam.org/doi/10.1137/130919696 |journal=SIAM Journal on Imaging Sciences |language=en |volume=7 |issue=2 |pages=969–996 |doi=10.1137/130919696 |issn=1936-4954|url-access=subscription }}</ref> and [[inpainting]].<ref name=":3">{{Cite journal |last1=Allag |first1=A. |last2=Benammar |first2=A. |last3=Drai |first3=R. |last4=Boutkedjirt |first4=T. |date=2019-07-01 |title=Tomographic Image Reconstruction in the Case of Limited Number of X-Ray Projections Using Sinogram Inpainting |url=https://doi.org/10.1134/S1061830919070027 |journal=Russian Journal of Nondestructive Testing |language=en |volume=55 |issue=7 |pages=542–548 |doi=10.1134/S1061830919070027 |s2cid=203437503 |issn=1608-3385|url-access=subscription }}</ref>
 
The algorithm is based on a primal-dual formulation, which allows for simultaneous updates of primal and [[Duality (mathematics)|dual]] variables. By employing the [[proximal operator]], the Chambolle-PockChambolle–Pock algorithm efficiently handles non-smooth and non-convex regularization terms, such as the [[total variation]], specific in imaging framework.<ref name=":0" />
 
==Problem statement==
Line 47:
where <math> \partial F^* </math> and <math> \partial G</math> are the [[Subderivative|subgradient]] of the convex functions <math> F^* </math> and <math> G </math>, respectively.<ref name=":4" />
 
The Chambolle-PockChambolle–Pock algorithm solves the so-called [[Saddle-point theorem|saddle-point problem]]<ref name=":0" />
 
:<math display="block"> \min_{x\in\mathcal{X}} \max_{y\in\mathcal{Y}} \langle Kx, y \rangle + G(x) - F^*(y)
Line 55:
 
==Algorithm==
The Chambolle-PockChambolle–Pock algorithm primarily involves iteratively alternating between ascending in the dual variable <math> y </math> and descending in the primal variable <math> x </math> using a [[Gradient method|gradient]]-like approach, with step sizes <math>\sigma</math> and <math>\tau</math> respectively, in order to simultaneously solve the primal and the dual problem.<ref name=":1" /> Furthermore, an over-[[Relaxation (iterative method)|relaxation]] technique is employed for the primal variable with the parameter <math>\theta</math>.<ref name=":0" />{{algorithm-begin|name=Chambolle-Pock algorithm}}
{{nowrap|Input: <math> F, G, K, \tau, \sigma >0, \, \theta \in[0,1],\, (x^0,y^0)\in\mathcal{X}\times\mathcal{Y}</math> and set <math> \overline{x}^0 = x^0</math>,}} ''stopping criterion''.
 
{{nowrap|<math> k \leftarrow 0 </math>}}
Line 66:
'''end do'''
{{algorithm-end}}
Chambolle and Pock proved<ref name=":0" /> that the algorithm converges if <math>\theta = 1</math> and <math>\tau \sigma \lVert K \rVert^2 \leq 1</math>, sequentially and with <math>\mathcal{O}(1/N)</math> as rate of convergence for the primal-dual gap. This has been extended by S. Banert et al.<ref>{{Cite arXiv |last1=Banert |first1=Sebastian|last2=Upadhyaya |first2=Manu|last3=Giselsson |first3=Pontus |date=2023 |title=The Chambolle-Pock method converges weakly with <math>\theta > 1/2</math> and <math> \tau \sigma \lVert L \rVert^{2} < 4 / ( 1 + 2 \theta )</math> |class=math.OC |eprint=2309.03998 }}</ref> to hold whenever <math>\theta>1/2</math> and <math>\tau \sigma \lVert K \rVert^2 < 4 / (1+2\theta)</math>.
 
The semi-implicit Arrow-Hurwicz method<ref>{{cite book |first=H. |last=Uzawa |chapter=Iterative methods for concave programming |editor1-first=K. J. |editor1-last=Arrow |editor2-first=L. |editor2-last=Hurwicz |editor3-first=H. |editor3-last=Uzawa |title=Studies in linear and nonlinear programming |url=https://archive.org/details/studiesinlinearn0000arro |url-access=registration |publisher=Stanford University Press |year=1958 }}</ref> coincides with the particular choice of <math>\theta = 0</math> in the Chambolle-PockChambolle–Pock algorithm.<ref name=":0" />
 
==Acceleration==
There are special cases in which the rate of convergence has a theoretical speed up.<ref name=":0" /> In fact, if <math>G </math>, respectively <math> F^* </math>, is [[Convex function#Uniformly convex functions|uniformly convex]] then <math> G^* </math>, respectively <math> F </math>, has a [[Lipschitz continuity|Lipschitz continuous]] gradient. Then, the rate of convergence can be improved to <math> \mathcal{O}(1/N^2)</math>, providing a slightly changes in the Chambolle-PockChambolle–Pock algorithm. It leads to an accelerated version of the method and it consists in choosing iteratively <math> \tau_n, \sigma_n</math>, and also <math> \theta_n</math>, instead of fixing these values.<ref name=":0" />
 
In case of <math> G </math> uniformly convex, with <math> \gamma>0 </math> the uniform-convexity constant, the modified algorithm becomes<ref name=":0" />
Line 89:
'''end do'''
{{algorithm-end}}
Moreover, the convergence of the algorithm slows down when <math>L</math>, the norm of the operator <math>K</math>, cannot be estimated easily or might be very large. Choosing proper [[Preconditioner|preconditioners]] <math>T</math> and <math>\Sigma</math>, modifying the proximal operator with the introduction of the [[Inner product space#Euclidean vector space|induced norm]] through the operators <math>T</math> and <math>\Sigma</math>, the convergence of the proposed preconditioned algorithm will be ensured.<ref>{{Cite book |last1=Pock |first1=Thomas |last2=Chambolle |first2=Antonin |title=2011 International Conference on Computer Vision |chapter=Diagonal preconditioning for first order primal-dual algorithms in convex optimization |chapter-url=https://ieeexplore.ieee.org/document/6126441 |date=2011-11-06 |pages=1762–1769 |doi=10.1109/ICCV.2011.6126441|isbn=978-1-4577-1102-2 |s2cid=17485166 }}</ref>
 
==Application==
{{multiple image
| align = right
| direction = vertical
| width = 300
| header = Denoising example
| image1 = Fishing_boat_original.jpg
| alt1 = Fishing boat image original
| caption1 = Original test image
| image2 = Fishing_boat_chambollepock_01.gif
| alt2 = Fishing boat GIF with noise
| caption2 = Application of the Chambolle-Pock algorithm to the test image with noise.
}}
 
A typical application of this algorithm is in the image [[Noise reduction|denoising]] framework, based on total variation.<ref name=":2" /> It operates on the concept that signals containing excessive and potentially erroneous details exhibit a high total variation, which represents the integral of the absolute value gradient of the image.<ref name=":2" /> By adhering to this principle, the process aims to decrease the total variation of the signal while maintaining its similarity to the original signal, effectively eliminating unwanted details while preserving crucial features like edges. In the classical bi-dimensional discrete setting,<ref>{{Cite journal |last=Chambolle |first=Antonin |date=2004-01-01 |title=An Algorithm for Total Variation Minimization and Applications |url=https://doi.org/10.1023/B:JMIV.0000011325.36760.1e |journal=Journal of Mathematical Imaging and Vision |language=en |volume=20 |issue=1 |pages=89–97 |doi=10.1023/B:JMIV.0000011325.36760.1e |bibcode=2004JMIV...20...89C |issn=1573-7683 |s2cid=207622122|url-access=subscription }}</ref> consider <math>\mathcal{X} = \mathbb{R}^{NM}</math>, where an element <math> u\in\mathcal{X} </math> represents an image with the pixels values collocated in a Cartesian grid <math>N\times M</math>.<ref name=":0" />
 
Define the inner product on <math> \mathcal{X} </math> as<ref name=":0" />
Line 180 ⟶ 181:
\tilde{u}_{i,j}+\tau\lambda g_{i,j}}{1+\tau \lambda}
\end{align}
</math>The image total-variation denoising problem can be also treated with other algorithms<ref>{{Cite journal |last1=Esser |first1=Ernie |last2=Zhang |first2=Xiaoqun |last3=Chan |first3=Tony F. |date=2010 |title=A General Framework for a Class of First Order Primal-Dual Algorithms for Convex Optimization in Imaging Science |url=http://epubs.siam.org/doi/10.1137/09076934X |journal=SIAM Journal on Imaging Sciences |language=en |volume=3 |issue=4 |pages=1015–1046 |doi=10.1137/09076934X |issn=1936-4954|url-access=subscription }}</ref> such as the '''[[Augmented Lagrangian method#Alternating direction method of multipliers|alternating direction method of multipliers]]''' (ADMM),<ref>{{Cite journal |last1=Lions |first1=P. L. |last2=Mercier |first2=B. |date=1979 |title=Splitting Algorithms for the Sum of Two Nonlinear Operators |url=https://www.jstor.org/stable/2156649 |journal=SIAM Journal on Numerical Analysis |volume=16 |issue=6 |pages=964–979 |doi=10.1137/0716071 |jstor=2156649 |bibcode=1979SJNA...16..964L |issn=0036-1429|url-access=subscription }}</ref> [[Proximal gradient methods for learning|projected (sub)-gradient]]<ref>{{Cite journal |last1=Beck |first1=Amir |last2=Teboulle |first2=Marc |date=2009 |title=A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems |url=http://epubs.siam.org/doi/10.1137/080716542 |journal=SIAM Journal on Imaging Sciences |language=en |volume=2 |issue=1 |pages=183–202 |doi=10.1137/080716542 |s2cid=3072879 |issn=1936-4954|url-access=subscription }}</ref> or fast iterative shrinkage thresholding.<ref>{{Cite journal |last=Nestorov |first=Yu.E. |title=A method of solving a convex programming problem with convergence rate <math>O\bigl(\frac1{k^2}\bigr)</math> |url=https://www.mathnet.ru/eng/dan46009 |journal=Dokl. Akad. Nauk SSSR |volume=269 |issue=3 |pages=543–547}}</ref>
 
== Implementation ==
Line 208 ⟶ 209:
 
== External links ==
* [httphttps://wwwweb.stanford.edu/class/ee364b/ EE364b], a Stanford course homepage.
 
{{Optimization algorithms|convex}}