Descenso coordinado

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 16 de abril de 2022; la verificación requiere 1 edición .

El descenso de coordenadas es un algoritmo de optimización que minimiza secuencialmente una función a lo largo de direcciones de coordenadas. En cada iteración, el algoritmo determina una variable de coordenadas o un bloque de coordenadas por medio de una regla de selección de coordenadas, luego minimiza exactamente o aproximadamente sobre el hiperplano de coordenadas correspondiente mientras fija otras coordenadas o bloques de coordenadas. En la iteración actual, se puede realizar una búsqueda lineal a lo largo de la dirección de coordenadas para encontrar un tamaño de paso adecuado. El descenso de coordenadas se puede aplicar tanto en el caso diferenciable como en el caso de contexto cuando no se calculan derivadas.

Descripción

El descenso de coordenadas se basa en la idea de que se puede minimizar una función de muchas variables minimizando en una dirección a la vez, por ejemplo, resolviendo un problema de optimización de una sola variable (o al menos un problema más simple) en un bucle [1] . En el caso más simple de descenso de coordenadas cíclicas , el algoritmo itera sobre las direcciones de coordenadas una por iteración, minimizando la función objetivo sobre cada coordenada a la vez. Es decir, partiendo de los valores iniciales

,

la iteración se determina a partir de la resolución iterativa de problemas de optimización a partir de una variable

[2]

para cada variable vectorial de 1 a .

Así, el algoritmo parte de una aproximación inicial del mínimo local de la función y obtiene iterativamente una secuencia de vectores.

Al realizar una búsqueda lineal en cada iteración, obtenemos

Se puede demostrar que esta secuencia tiene propiedades de convergencia similares al método de descenso más pronunciado. La falta de mejora en la función objetivo después del siguiente ciclo de búsquedas lineales a lo largo de las direcciones de las coordenadas indica que se ha alcanzado un punto estacionario.

El funcionamiento del algoritmo se muestra a continuación.

Caso diferenciable

En el caso de diferenciabilidad continua de la función F , el algoritmo de descenso de coordenadas se puede resumir como [1] :

El paso se puede elegir de muchas maneras, por ejemplo, resolviendo un problema de minimización (es decir, minimizando F con variables fijas excepto ), o mediante la búsqueda lineal tradicional [1] .

Restricciones

El descenso coordinado tiene dos problemas. Uno de ellos es la presencia de una función no suave de varias variables. La figura muestra que las iteraciones de descenso de coordenadas pueden llegar a un punto no estacionario si las curvas de nivel de la función no son uniformes. Supongamos que el algoritmo terminó en el punto (-2, -2) . Entonces hay dos direcciones paralelas a los ejes a lo largo de los cuales se debe dar el siguiente paso. Se muestran con flechas rojas. Sin embargo, cualquier paso en estas dos direcciones conducirá a un aumento en el valor de la función (se supone que se está resolviendo el problema de minimización), por lo que el algoritmo no dará un solo paso, aunque dos pasos juntos traerían el algoritmo más cercano al óptimo. Aunque este ejemplo muestra que el descenso de coordenadas no conduce necesariamente a una solución óptima, es posible mostrar convergencia formal en condiciones normales [3] .

Otro problema es la dificultad en la paralelización. Dado que la naturaleza del descenso de coordenadas es recorrer direcciones y minimizar una función a lo largo de cada dirección de coordenadas, el descenso de coordenadas no es un candidato obvio para la paralelización. Investigaciones recientes han demostrado que la paralelización se puede utilizar para el descenso coordinado con algunos trucos especiales [4] [5] [6] .

Aplicaciones

Los algoritmos de descenso de coordenadas son populares por su simplicidad, pero la misma propiedad anima a los investigadores a ignorarlos en favor de métodos más interesantes (más complejos) [1] . Las primeras aplicaciones de la optimización del descenso de coordenadas se dieron en el campo de la tomografía computarizada [7] , donde el método mostró una convergencia rápida [8] y se utilizó para reconstruir imágenes de tomografía computarizada helicoidal multicapa [9] . El algoritmo de descenso de coordenadas cíclicas se ha aplicado en la predicción de estructuras de proteínas [10] . Además, ha habido un interés creciente en la aplicación del descenso de coordenadas con la aparición de problemas a gran escala en el aprendizaje automático , donde se ha demostrado que el descenso de coordenadas es competitivo con otros métodos cuando se aplica a problemas como el aprendizaje automático de vectores de soporte lineal . 11] (ver LIBLINEAR ) y expansión de matriz no negativa [12] . Los métodos son atractivos para problemas en los que el cálculo de gradientes no es factible, quizás porque los datos requeridos se distribuyen a través de redes informáticas [13] .

Véase también

Notas

  1. 1 2 3 4 Wright, 2015 , pág. 3–34.
  2. Copia archivada . Consultado el 6 de febrero de 2022. Archivado desde el original el 6 de febrero de 2022.
  3. Spall, 2012 , pág. 187–208.
  4. Zheng, Saquib, Sauer, Bouman, 2000 , pág. 1745-1759
  5. Fessler, Ficaro, Clinton, Lange, 1997 , p. 166–175.
  6. Wang, Sabne, Kisner, 2016 , pág. 2:1–2:12.
  7. Sauer, Bouman, 1993 , pág. 534–548.
  8. Yu, Thibault, Bouman, Sauer, 2011 , pág. 161–175.
  9. Thibault, Sauer, Bouman, Hsieh, 2007 , pág. 4526–4544.
  10. Canutescu, Dunbrack, 2003 , pág. 963–72.
  11. Hsieh, Chang, Lin, Keerthi, 2008 , pág. 408.
  12. Hsieh, Dhillon, 2011 , pág. 1064.
  13. Nésterov, 2012 , pág. 341–362.

Literatura