Optimización del algoritmo Primal-Dual para problemas convexos
En matemáticas , el algoritmo Chambolle-Pock es un algoritmo utilizado para resolver problemas de optimización convexa . Fue introducido por Antonin Chambolle y Thomas Pock [1] en 2011 y desde entonces se ha convertido en un método ampliamente utilizado en varios campos, incluido el procesamiento de imágenes , [2] [3] [4] la visión artificial , [5] y el procesamiento de señales . [6]
El algoritmo Chambolle-Pock está diseñado específicamente para resolver de manera eficiente problemas de optimización convexa que involucran la minimización de una función de costo no suave compuesta por un término de fidelidad de datos y un término de regularización. [1] Esta es una configuración típica que surge comúnmente en problemas inversos de imágenes mal planteadas , como reconstrucción de imágenes , [2] eliminación de ruido [3] y restauración de imagen . [4]
El algoritmo se basa en una formulación primal-dual, que permite actualizaciones simultáneas de variables primales y duales . Al emplear el operador proximal , el algoritmo Chambolle-Pock maneja de manera eficiente términos de regularización no suaves y no convexos, como la variación total , específica del marco de imágenes. [1]
Planteamiento del problema
Sean dos espacios vectoriales reales dotados de un producto interior y una norma . Hasta ahora, una función se denomina simple si su operador proximal tiene una representación en forma cerrada o puede calcularse con precisión, para , [1] donde se hace referencia a
Consideremos el siguiente problema primal restringido: [1]
donde es un operador lineal acotado , son convexos , semicontinuos inferiores y simples. [1]
El problema de minimización tiene su problema correspondiente dual como [1]
donde y son el mapa dual de y , respectivamente. [1]
Supongamos que los problemas primal y dual tienen al menos una solución , lo que significa que satisfacen [7]
donde y son el subgradiente de las funciones convexas y , respectivamente. [7]
El algoritmo de Chambolle-Pock resuelve el llamado problema del punto de silla [1]
que es una formulación primal-dual de los problemas primal y dual no lineales planteados anteriormente. [1]
Algoritmo
El algoritmo de Chambolle-Pock implica principalmente alternar iterativamente entre ascendente en la variable dual y descendente en la variable primaria utilizando un enfoque de tipo gradiente , con tamaños de paso y respectivamente, para resolver simultáneamente el problema primario y el dual. [2] Además, se emplea una técnica de sobre- relajación para la variable primaria con el parámetro . [1]
Algoritmo Algoritmo Chambolle-Pock Entrada: y conjunto , criterio de detención .
hacer mientras se detiene criterio no satisfecho fin hacer
- "←" denota asignación . Por ejemplo, " el elemento más grande ← " significa que el valor del elemento más grande cambia al valor del elemento .
- " return " finaliza el algoritmo y genera el siguiente valor.
Chambolle y Pock demostraron [1] que el algoritmo converge si y , secuencialmente y con una tasa de convergencia para la brecha primal-dual. Esto ha sido ampliado por S. Banert et al. [8] para que se cumpla siempre que y .
El método semi-implícito de Arrow-Hurwicz [9] coincide con la elección particular de en el algoritmo de Chambolle-Pock. [1]
Aceleración
Existen casos especiales en los que la tasa de convergencia tiene una aceleración teórica. [1] De hecho, si , respectivamente , es uniformemente convexo entonces , respectivamente , tiene un gradiente continuo de Lipschitz . Entonces, la tasa de convergencia se puede mejorar a , proporcionando un ligero cambio en el algoritmo de Chambolle-Pock. Esto conduce a una versión acelerada del método y consiste en elegir iterativamente , y también , en lugar de fijar estos valores. [1]
En caso de convexidad uniforme, con convexidad uniforme constante, el algoritmo modificado se convierte en [1]
Algoritmo acelerado de Chambolle-Pock Entrada: tal que y conjunto , criterio de detención .
hacer mientras se detiene criterio no satisfecho fin hacer
- "←" denota asignación . Por ejemplo, " el elemento más grande ← " significa que el valor del elemento más grande cambia al valor del elemento .
- " return " finaliza el algoritmo y genera el siguiente valor.
Además, la convergencia del algoritmo se ralentiza cuando , la norma del operador , no se puede estimar fácilmente o puede ser muy grande. Al elegir los precondicionadores adecuados y , modificando el operador proximal con la introducción de la norma inducida a través de los operadores y , se garantizará la convergencia del algoritmo precondicionado propuesto. [10]
Solicitud
Una aplicación típica de este algoritmo es en el marco de eliminación de ruido de imágenes , basado en la variación total. [3] Opera sobre el concepto de que las señales que contienen detalles excesivos y potencialmente erróneos exhiben una alta variación total, que representa la integral del gradiente de valor absoluto de la imagen. [3] Al adherirse a este principio, el proceso apunta a disminuir la variación total de la señal mientras mantiene su similitud con la señal original, eliminando efectivamente los detalles no deseados mientras se preservan características cruciales como los bordes. En el entorno discreto bidimensional clásico, [11] considere , donde un elemento representa una imagen con los valores de píxeles colocados en una cuadrícula cartesiana . [1]
Defina el producto interno como [1]
que induce una norma sobre , denotada como . [1]
Por lo tanto, el gradiente de se calcula con las diferencias finitas estándar ,
que es un elemento del espacio , donde [1]
Se define una norma basada como [1]
Entonces, el problema primal del modelo ROF , propuesto por Rudin, Osher y Fatemi, [12] está dado por [1]
donde es la solución desconocida y los datos ruidosos dados, en cambio describe el equilibrio entre la regularización y el ajuste de los datos. [1]
La formulación primal-dual del problema ROF se formula de la siguiente manera [1]
donde la función indicadora se define como [1]
sobre el conjunto convexo que puede verse como bolas unitarias con respecto a la norma definida en . [1]
Obsérvese que las funciones involucradas en la formulación primal-dual establecida son simples, ya que su operador proximal se puede calcular fácilmente [1]. El problema de eliminación de ruido de variación total de la imagen también se puede tratar con otros algoritmos [13] como el método de dirección alternada de multiplicadores (ADMM), [14] (sub)gradiente proyectado [15] o umbralización de contracción iterativa rápida. [16]
Implementación
- El paquete Manopt.jl [17] implementa el algoritmo en Julia
- Gabriel Peyré implementa el algoritmo en MATLAB , [nota 1] Julia, R y Python [18]
- En la Biblioteca de Discretización de Operadores (ODL), [19] una biblioteca de Python para problemas inversos,
chambolle_pock_solver
implementa el método.
Véase también
Notas
- ^ Estos códigos se utilizaron para obtener las imágenes del artículo.
Referencias
- ^ abcdefghijklmnopqrstu vwxyz aa Chambolle, Antonin; Pock, Thomas (1 de mayo de 2011). "Un algoritmo primal-dual de primer orden para problemas convexos con aplicaciones en imágenes". Revista de imágenes y visión matemática . 40 (1): 120–145. doi :10.1007/s10851-010-0251-1. ISSN 1573-7683. S2CID 207175707.
- ^ abc Sidky, Emil Y; Jørgensen, Jakob H; Pan, Xiaochuan (21 de mayo de 2012). "Prototipado de problemas de optimización convexa para reconstrucción de imágenes en tomografía computarizada con el algoritmo Chambolle–Pock". Física en Medicina y Biología . 57 (10): 3065–3091. arXiv : 1111.5632 . Bibcode :2012PMB....57.3065S. doi :10.1088/0031-9155/57/10/3065. ISSN 0031-9155. PMC 3370658 . PMID 22538474.
- ^ abcd Fang, Faming; Li, Fang; Zeng, Tieyong (13 de marzo de 2014). "Eliminación de neblina y ruido de una sola imagen: un enfoque variacional rápido". Revista SIAM sobre ciencias de la imagen . 7 (2): 969–996. doi :10.1137/130919696. ISSN 1936-4954.
- ^ ab Allag, A.; Benammar, A.; Drai, R.; Boutkedjirt, T. (1 de julio de 2019). "Reconstrucción de imágenes tomográficas en el caso de un número limitado de proyecciones de rayos X mediante la técnica de pintura de sinogramas". Revista rusa de pruebas no destructivas . 55 (7): 542–548. doi :10.1134/S1061830919070027. ISSN 1608-3385. S2CID 203437503.
- ^ Pock, Thomas; Cremers, Daniel; Bischof, Horst; Chambolle, Antonin (2009). "Un algoritmo para minimizar la función Mumford-Shah". 2009 IEEE 12th International Conference on Computer Vision . págs. 1133–1140. doi :10.1109/ICCV.2009.5459348. ISBN 978-1-4244-4420-5.S2CID15991312 .
- ^ "Un algoritmo proximal genérico para optimización convexa: aplicación a la minimización de variación total". IEEE Signal Processing Letters . 21 (8): 985–989. 2014. Bibcode :2014ISPL...21..985.. doi :10.1109/LSP.2014.2322123. ISSN 1070-9908. S2CID 8976837.
- ^ ab Ekeland, Ivar; Témam, Roger (1999). Análisis convexo y problemas variacionales. Sociedad de Matemáticas Industriales y Aplicadas. p. 61. doi :10.1137/1.9781611971088. ISBN 978-0-89871-450-0.
- ^ Banert, Sebastian; Upadhyaya, Manu; Giselsson, Pontus (2023). "El método de Chambolle-Pock converge débilmente con y ". arXiv : 2309.03998 [math.OC].
- ^ Uzawa, H. (1958). "Métodos iterativos para programación cóncava". En Arrow, KJ; Hurwicz, L.; Uzawa, H. (eds.). Estudios en programación lineal y no lineal . Stanford University Press.
- ^ Pock, Thomas; Chambolle, Antonin (6 de noviembre de 2011). "Preacondicionamiento diagonal para algoritmos primal-dual de primer orden en optimización convexa". 2011 International Conference on Computer Vision . págs. 1762–1769. doi :10.1109/ICCV.2011.6126441. ISBN 978-1-4577-1102-2.S2CID 17485166 .
- ^ Chambolle, Antonin (1 de enero de 2004). "Un algoritmo para la minimización de la variación total y sus aplicaciones". Revista de imágenes y visión matemática . 20 (1): 89–97. doi :10.1023/B:JMIV.0000011325.36760.1e. ISSN 1573-7683. S2CID 207622122.
- ^ Getreuer, Pascal (2012). "Eliminación de ruido de la variación total Rudin-Osher-Fatemi mediante Split Bregman" (PDF) .
- ^ Esser, Ernie; Zhang, Xiaoqun; Chan, Tony F. (2010). "Un marco general para una clase de algoritmos primal-dual de primer orden para la optimización convexa en la ciencia de la imagen". Revista SIAM sobre ciencias de la imagen . 3 (4): 1015–1046. doi :10.1137/09076934X. ISSN 1936-4954.
- ^ Lions, PL; Mercier, B. (1979). "Algoritmos de división para la suma de dos operadores no lineales". Revista SIAM de análisis numérico . 16 (6): 964–979. Bibcode :1979SJNA...16..964L. doi :10.1137/0716071. ISSN 0036-1429. JSTOR 2156649.
- ^ Beck, Amir; Teboulle, Marc (2009). "Un algoritmo rápido iterativo de umbralización de contracción para problemas inversos lineales". Revista SIAM sobre ciencias de la imagen . 2 (1): 183–202. doi :10.1137/080716542. ISSN 1936-4954. S2CID 3072879.
- ^ Nestorov, Yu.E. "Un método para resolver un problema de programación convexa con tasa de convergencia O ( 1 k 2 ) {\displaystyle O{\bigl (}{\frac {1}{k^{2}}}{\bigr )}}". Dokl. Akad. Nauk SSSR . 269 (3): 543–547.
- ^ "Chambolle-Pock · Manopt.jl". docs.juliahub.com . Consultado el 7 de julio de 2023 .
- ^ "Numerical Tours - Un recorrido numérico por la ciencia de datos". www.numerical-tours.com . Consultado el 7 de julio de 2023 .
- ^ "Solucionador de Chambolle-Pock: documentación de odl 0.6.1.dev0". odl.readthedocs.io . Consultado el 7 de julio de 2023 .
Lectura adicional
- Boyd, Stephen; Vandenberghe, Lieven (2004). Optimización convexa (PDF) . Cambridge University Press.
- Wright, Stephen (1997). Métodos de puntos interiores primal-dual . Filadelfia, PA: SIAM. ISBN 978-0-89871-382-4.
- Nocedal, Jorge; Stephen Wright (1999). Optimización numérica . Nueva York, NY: Springer. ISBN 978-0-387-98793-4.
Enlaces externos
- EE364b, página de inicio de un curso de Stanford.