Glosario

Algoritmos evolutivos

Descubre cómo los Algoritmos Evolutivos optimizan las soluciones de IA y ML, desde el ajuste de hiperparámetros a la robótica, utilizando estrategias inspiradas en la naturaleza.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

Los Algoritmos Evolutivos (EA) son una clase de técnicas de optimización y búsqueda inspiradas en los principios de la evolución biológica, como la selección natural, la mutación y la reproducción. Son especialmente eficaces para resolver problemas complejos en los que los algoritmos de optimización tradicionales podrían tener dificultades, como los que tienen espacios de búsqueda no lineales, no diferenciables o de alta dimensión. Los EA mantienen una población de soluciones potenciales y las refinan iterativamente a lo largo de generaciones, con el objetivo de encontrar soluciones óptimas o casi óptimas basadas en un criterio de adecuación definido. Este enfoque las convierte en herramientas valiosas en diversos campos, como la inteligencia artificial (IA) y el aprendizaje automático (AM).

Cómo funcionan los algoritmos evolutivos

El proceso central de un Algoritmo Evolutivo suele implicar los siguientes pasos, imitando la evolución biológica:

  1. Inicialización: Se genera una población de soluciones candidatas (a menudo llamadas individuos o cromosomas), normalmente al azar, en todo el espacio de búsqueda.
  2. Evaluación de la aptitud: Cada solución de la población se evalúa mediante una función de aptitud (similar a una función de pérdida) que mide su calidad o lo bien que resuelve el problema objetivo.
  3. Selección: Las soluciones se seleccionan en función de su puntuación de aptitud. Las soluciones más aptas tienen una mayor probabilidad de ser elegidas para transmitir sus características a la siguiente generación, simulando el principio de "supervivencia del más apto". Existen varias estrategias de selección, como la selección por torneo o la selección por ruleta.
  4. Reproducción (Operadores Genéticos):
    • Cruce (Recombinación): Las soluciones parentales seleccionadas intercambian información (partes de su estructura) para crear nuevas soluciones descendientes, combinando rasgos potencialmente beneficiosos.
    • Mutación: Se introducen pequeños cambios aleatorios en las soluciones descendientes para mantener la diversidad dentro de la población y explorar nuevas áreas del espacio de búsqueda, evitando la convergencia prematura a soluciones subóptimas.
  5. Reemplazo: La nueva descendencia sustituye a parte o a toda la población más antigua, formando la siguiente generación.
  6. Terminación: El proceso se repite desde el paso de evaluación de la aptitud hasta que se cumple una condición de terminación, como alcanzar un número máximo de generaciones, encontrar una solución satisfactoria u observar que no hay ninguna mejora significativa en la aptitud.

Relevancia en IA y Aprendizaje Automático

Las EA son herramientas poderosas en IA y ML, especialmente para tareas que implican optimización en espacios complejos donde la información del gradiente no está disponible o no es fiable. Entre las aplicaciones clave se incluyen:

Algoritmos evolutivos frente a otros métodos de optimización

Aunque los EA son un tipo de algoritmo de optimización, difieren significativamente de los métodos basados en el gradiente, como el Descenso Gradiente o el Descenso Gradiente Estocástico (SGD):

  • Información de gradiente: Los EA no requieren información de gradiente, lo que los hace adecuados para problemas no diferenciables o discontinuos en los que falla el descenso de gradiente.
  • Estrategia de búsqueda: Los EA realizan una búsqueda global utilizando una población de soluciones, lo que les hace menos propensos a quedarse atascados en óptimos locales en comparación con la búsqueda local del descenso por gradiente basada en la pendiente de la función de pérdida. Sin embargo, esta exploración global suele tener un mayor coste computacional.
  • Tipo de problema: El descenso gradiente suele preferirse para optimizar parámetros en modelos de aprendizaje profundo con funciones de pérdida suaves y diferenciables, mientras que los EA destacan en la optimización combinatoria, la optimización de parámetros en paisajes de aptitud complejos y la optimización multiobjetivo.

Aplicaciones en el mundo real

Más allá de la optimización teórica, los EA encuentran un uso práctico en:

  1. Optimización de modelos ML: Como ya se ha dicho, encontrar los mejores hiperparámetros para modelos como Ultralytics YOLO es una aplicación clave. En Ultralytics Tuner clase proporciona una aplicación que utiliza EAs para optimizar Modelo YOLO formación [Ref: Glosario de ajuste de hiperparámetros]. Integraciones con herramientas como Ray Tune mejorar aún más la capacidad de ajuste distribuido.
  2. Robótica y Sistemas de Control: Los EA se utilizan para hacer evolucionar las andaduras de los robots, los parámetros de los controladores de los sistemas autónomos y las estrategias de planificación de trayectorias, sobre todo en robótica.
  3. Programación y Logística: Resolución de problemas complejos de programación, como la programación de talleres, la creación de horarios o la optimización de rutas de reparto(recursos del problema de rutas de vehículos).
  4. Optimización del diseño: Se utiliza en los campos de la ingeniería y el diseño para optimizar estructuras, materiales o formas aerodinámicas (por ejemplo, la investigación de la NASA sobre el diseño de antenas).
  5. Descubrimiento de fármacos: Las EA pueden explorar vastos espacios químicos para identificar posibles candidatos a fármacos con las propiedades deseadas, ayudando en la investigación farmacéutica.

Ventajas y desventajas

Ventajas:

  • Eficaz en la optimización global, menos propenso a los óptimos locales.
  • Aplicable a una amplia gama de problemas, incluidos los no diferenciables y complejos.
  • Intrínsecamente paralelizable, ya que las evaluaciones de aptitud a menudo pueden hacerse de forma independiente.
  • Robusto ante entornos ruidosos o inciertos.

Desventajas:

  • Puede ser costoso computacionalmente debido a la búsqueda basada en la población y a las evaluaciones de aptitud.
  • El rendimiento puede ser sensible a la elección de los parámetros de la EA (tamaño de la población, tasas de mutación, etc.).
  • La convergencia al óptimo global no siempre está garantizada.
  • Puede requerir un ajuste importante para problemas específicos.

Los algoritmos evolutivos representan un conjunto de herramientas potentes y versátiles dentro del panorama de la IA y el ML, que ofrecen ventajas únicas para abordar los complejos retos de optimización que se plantean en la investigación y la industria, incluida la optimización de modelos de visión por ordenador de última generación utilizando plataformas como Ultralytics HUB.

Leer todo