Glosario

Algoritmo de optimización

Descubra cómo los algoritmos de optimización mejoran el rendimiento de la IA y el ML, desde el entrenamiento de redes neuronales hasta aplicaciones reales en sanidad y agricultura.

Un algoritmo de optimización es el motor que impulsa el proceso de aprendizaje en machine learning (ML) y deep learning. Su función principal es ajustar iterativamente los parámetros internos de un modelo, como los pesos y los sesgos, para minimizar una función de pérdida. Piense en ello como un método sistemático para encontrar el mejor conjunto posible de parámetros que haga que las predicciones del modelo sean más precisas. Este proceso es fundamental para entrenar un modelo, ya que transforma un modelo genérico en una herramienta especializada capaz de resolver una tarea específica, como la detección de objetos o la segmentación de imágenes.

Cómo funcionan los algoritmos de optimización

En esencia, un algoritmo de optimización navega por un "paisaje de pérdidas", un espacio de grandes dimensiones en el que cada punto representa un conjunto de parámetros del modelo y la altura del punto corresponde al error del modelo. El objetivo es encontrar el punto más bajo, o "mínimo", en este paisaje. El algoritmo parte de un conjunto inicial de parámetros aleatorios y, en cada paso (o época), calcula el gradiente de la función de pérdida. Este gradiente apunta en la dirección del ascenso más pronunciado, por lo que el algoritmo da un paso en la dirección opuesta para descender por el paisaje.

El tamaño de este paso se controla mediante un hiperparámetro crítico denominado tasa de aprendizaje. Una tasa de aprendizaje bien elegida garantiza que el modelo aprenda eficazmente sin sobrepasar el mínimo ni estancarse. Este proceso iterativo de cálculo de gradientes y actualización de parámetros se conoce como retropropagación y continúa hasta que el rendimiento del modelo en un conjunto de datos de validación deja de mejorar, lo que indica convergencia.

Tipos comunes de algoritmos de optimización

Se han desarrollado varios algoritmos de optimización, cada uno con características diferentes. Algunos de los más utilizados en aprendizaje profundo incluyen:

  • Descenso Gradiente Estocástico (SGD): Un optimizador clásico y ampliamente utilizado que actualiza los parámetros utilizando el gradiente a partir de un pequeño subconjunto(lote) de los datos de entrenamiento. Aunque eficaz, su rendimiento puede ser sensible a la elección de la tasa de aprendizaje. Variaciones como SGD con impulso ayudan a acelerar la convergencia.
  • Optimizador Adam: El optimizador Adaptive Moment Estimation (Adam) es extremadamente popular porque combina las ventajas de otras dos extensiones de SGD: AdaGrad y RMSProp. Calcula tasas de aprendizaje adaptativas para cada parámetro, lo que lo hace robusto y a menudo una buena opción por defecto para muchos problemas. Una extensión, AdamW, se utiliza habitualmente en los modelos de transformadores modernos. Frameworks como PyTorch y TensorFlow ofrecen implementaciones de estos populares optimizadores.

La elección del optimizador puede influir significativamente tanto en la velocidad de entrenamiento como en el rendimiento final del modelo. En el ecosistema Ultralytics, los usuarios pueden configurar fácilmente el optimizador durante la configuración del entrenamiento.

Aplicaciones reales

Los algoritmos de optimización trabajan entre bastidores en innumerables aplicaciones de IA.

  1. Análisis de imágenes médicas: Cuando se entrena una red neuronal convolucional (CNN ) para detectar tumores en escáneres cerebrales, un algoritmo de optimización como Adam ajusta sistemáticamente los filtros de la red. Su objetivo es reducir al mínimo la diferencia entre la ubicación prevista del tumor y las anotaciones reales proporcionadas por los radiólogos, mejorando así la precisión diagnóstica del modelo. Se trata de un componente esencial de la creación de soluciones eficaces de inteligencia artificial para la atención sanitaria.
  2. Vehículos autónomos: Un modelo de detección de objetos en un coche autónomo, como el modelo YOLO de Ultralytics, debe identificar con fiabilidad peatones, otros coches y señales de tráfico. Durante el entrenamiento, un optimizador ajusta los parámetros del modelo a través de millones de imágenes para reducir los errores de detección (por ejemplo, objetos omitidos o clasificaciones incorrectas), lo que es fundamental para garantizar la seguridad en los sistemas de IA en automoción.

Algoritmos de optimización frente a conceptos afines

Es importante distinguir los algoritmos de optimización de los conceptos de ML relacionados:

  • Algoritmo de optimización frente a ajuste de hiperparámetros: Los algoritmos de optimización ajustan el parámetros internos (ponderaciones y sesgos) del modelo durante formación. En cambio, el ajuste de hiperparámetros se centra en encontrar el mejor configuración externa (como la tasa de aprendizaje, el tamaño del lote o incluso la elección del propio optimizador) antes de comienza la formación. En Ultralytics Tuner clase automatiza este proceso utilizando métodos como algoritmos evolutivos.
  • Algoritmo de optimización frente a función de pérdida: La función de pérdida cuantifica el error del modelo. El algoritmo de optimización es el mecanismo utilizado para minimizar este error. La función de pérdida proporciona el objetivo, y el optimizador la estrategia para alcanzarlo.
  • Algoritmo de optimización frente a arquitectura del modelo: La arquitectura del modelo define la estructura de la red neuronal (por ejemplo, sus capas y conexiones). El algoritmo de optimización trabaja dentro de esta estructura predefinida para entrenar sus parámetros aprendibles. La búsqueda de arquitectura neuronal (NAS) es un campo relacionado que automatiza el diseño de la propia arquitectura.

Únase a la comunidad Ultralytics

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

Únete ahora
Enlace copiado en el portapapeles