Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Algoritmos Evolutivos

Descubra cómo los algoritmos evolutivos optimizan las soluciones de IA y ML, desde el ajuste de hiperparámetros hasta la robótica, utilizando estrategias inspiradas en la naturaleza.

Los algoritmos evolutivos (EA) representan una clase robusta de inteligencia artificial (IA) inspiradas en los principios biológicos de la selección natural y la genética. A diferencia de los métodos matemáticos matemáticos tradicionales que se basan en cálculos derivados, estos algoritmos simulan el proceso de problemas de optimización complejos. Al mantener una población de soluciones potenciales que compiten, se reproducen y mutan, los EA pueden navegar por espacios de búsqueda vastos y accidentados donde la "mejor" respuesta es desconocida o imposible de obtener analíticamente. Esto las hace especialmente especialmente valiosos en el aprendizaje automático que van desde el diseño automatizado de modelos hasta la programación compleja.

Mecanismos básicos de la evolución

La funcionalidad de un Algoritmo Evolutivo refleja el concepto de supervivencia del más apto. El proceso refina iterativamente un conjunto de soluciones candidatas a través de un ciclo de operadores biológicos:

  1. Inicialización: El sistema genera una población aleatoria de soluciones potenciales al problema.
  2. Evaluación de la aptitud: Cada candidato se prueba con una definida. En visión por ordenador (CV), esta función suele mide la precisión de un modelo o la precisión media mAP).
  3. Selección: Los candidatos con las puntuaciones de aptitud más altas se seleccionan para actuar como progenitores de la siguiente generación.
  4. Reproducción y variación: Se crean nuevas soluciones mediante cruce (combinación de rasgos de dos padres) y la mutación (introducción de aleatorios). La mutación es fundamental porque introduce diversidad genética y evita que el algoritmo se estanque en un óptimo local en lugar de encontrar el óptimo global. en un óptimo local en lugar de encontrar el óptimo global.

Aplicaciones reales de la IA

Los algoritmos evolutivos son herramientas versátiles que se utilizan en diversos ámbitos de alto impacto para mejorar el rendimiento de los sistemas:

  • Ajuste de hiperparámetros: Una de las aplicaciones más comunes en aprendizaje profundo (deep learning, DL) es optimizar de entrenamiento. En lugar de adivinar manualmente los valores de la velocidad de aprendizaje, el impulso o el decaimiento del peso, un EA puede evolucionar un conjunto de hiperparámetros que maximicen el rendimiento del modelo. El sitio Ultralytics YOLO11 incluye un algoritmo genético algoritmo genético para automatizar este proceso.
  • Búsqueda de arquitectura neuronal (NAS): Las EA automatizan el diseño de redes neuronales. Al tratar la estructura de la red (capas, conexiones) como código genético, el algoritmo puede desarrollar arquitecturas muy eficientes adecuadas para dispositivos de inteligencia artificial en los que los recursos informáticos son limitados. computacionales son limitados.
  • Robótica y control: En IA en robótica, los EA desarrollan políticas de control y de movimiento. Esto permite a los robots autónomos aprender a navegar por entornos dinámicos simulando generaciones de estrategias de movimiento.
  • Optimización medioambiental: En sectores como la agricultura, las EA ayudan a optimizar la recursos, como los programas de riego o la ubicación de los cultivos, para maximizar el rendimiento y minimizar los residuos.

Optimización automatizada con Python

Los profesionales pueden aprovechar los Algoritmos Evolutivos directamente en el ultralytics para encontrar la configuración de entrenamiento óptima para detección de objetos modelos. El tune emplea un algoritmo genético para mutar los hiperparámetros a lo largo de varias generaciones.

from ultralytics import YOLO

# Load a standard YOLO11 model
model = YOLO("yolo11n.pt")

# Run hyperparameter tuning using a genetic algorithm approach
# The tuner evolves parameters like lr0, momentum, and weight_decay
# 'iterations' defines how many evolutionary generations to run
model.tune(data="coco8.yaml", epochs=10, iterations=30, optimizer="AdamW", plots=False)

Distinguir conceptos relacionados

Para aplicar eficazmente estas técnicas, es útil diferenciar los Algoritmos Evolutivos de otras estrategias de optimización y aprendizaje. de optimización y aprendizaje:

  • Vs. Descenso Gradiente Estocástico (SGD): Métodos de entrenamiento estándar como Descenso Gradiente Estocástico (SGD) se basan en el cálculo de la derivada de una función de pérdida para actualizar los pesos. Los EA son gradiente, lo que significa que pueden optimizar problemas no diferenciables o discretos en los que los gradientes no están disponibles. no están disponibles.
  • Vs. Inteligencia de enjambre: Aunque ambas están bioinspiradas, la inteligencia de enjambre (por ejemplo, la optimización Optimization) se centra en el comportamiento colectivo de agentes descentralizados que interactúan dentro de una misma vida. En En cambio, las EA se basan en el reemplazo generacional de soluciones, en el que los candidatos más débiles son descartados en favor de los descendientes. candidatos más débiles en favor de los descendientes de padres más fuertes.
  • Vs. Aprendizaje por Refuerzo: El aprendizaje por refuerzo (RL) implica que un un agente que aprende a través de interacciones de ensayo y error con un entorno para maximizar una señal de recompensa. Aunque los EA también pueden Si bien los EA también pueden optimizar políticas, lo hacen evolucionando una población de parámetros de política en lugar de aprender a través de ciclos continuos de interacción agente-entorno. ciclos continuos de interacción agente-entorno.

Si desea más información sobre cómo mejorar el rendimiento de los modelos, consulte nuestras guías sobre consejos para el entrenamiento de modelos el sobreajuste.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora