Algoritmos y IA: Una Mirada Interna en GA

Desde el lanzamiento de ChatGPT en noviembre de 2022 por parte de OpenAI y otros chatbots similares que compiten en esta industria, como BARD de Google y Bing Chat de Microsoft, se ha desencadenado una nueva carrera en el desarrollo de herramientas de Inteligencia Artificial (IA).

Ya sea utilizado como chatbot, reconocimiento de imágenes, creación de diseño u otro tipo de aplicaciones, la inteligencia artificial tiene como objetivo realizar tareas que pueden ser tanto simples como complejas para los humanos. Estas tareas se llevan a cabo mediante algoritmos que ejecutan un conjunto de instrucciones de operaciones y cálculos matemáticos. A medida que la tecnología avanza, la IA continúa evolucionando, impulsando la innovación y transformando diversas industrias.

La inteligencia artificial

La inteligencia artificial es una subdisciplina de la ciencia de la computación que tiene como objetivo permitir a las computadoras imitar la inteligencia humana para abordar problemas específicos. Con el fin de lograr esto, los ingenieros crean y desarrollan nuevos algoritmos que permiten simular de manera cada vez más precisa las capacidades cognitivas de los humanos. En la actualidad, la IA se ha especializado en varios subcampos, tales como:

Computación evolutiva

Este campo engloba una familia de algoritmos inspirados en la evolución biológica. Son utilizados en la optimización de problemas complejos con múltiples variables y en sistemas de optimización continua; Por ejemplo, los algoritmos genéticos.

Redes neuronales artificiales

Están inspiradas en las redes neuronales biológicas con el objetivo de aprender a través de ejemplos de los cuales se conocen sus entradas y salidas. La ejecución de estos algoritmos requiere de la definición previa de los factores de ponderación para una situación o problema determinado. Estas características hacen que se consideren estos algoritmos como un subconjunto del ML (Machine Learning, aprendizaje automático); Por ejemplo, las DNN (Deep Neural Network, redes neuronales de varias capas).

Visión

Es un subcampo que estudia el uso de técnicas de visión que permite identificar objetos mediante el procesamiento de imágenes o fotogramas de videos. Los científicos crean algoritmos con el objetivo de proporcionar a la computadora un nivel de comprensión de los contenidos de una imagen.

Robotica

Este subcampo requiere conocimientos en tres áreas de conocimiento: Electricidad, Mecánica y Ciencias de la Computación. Los ingenieros tienen como objetivo crear robots autónomos capaces de realizar tareas simples, como la manipulación de objetos o ejecutar tareas especializadas; Por ejemplo, control inteligente, exploración autónoma.

Emulación del razonamiento

Está enfocado en el diseño y la construcción de algoritmos que faciliten la toma de decisiones de los gerentes de proyectos frente a problemas que requieren un amplio conocimiento y experiencia específica; Por ejemplo, los DSS (Decision Support Systems, sistemas de soporte a decisiones).

Procesamiento digital de voz 

Los ingenieros se enfocan en el desarrollo de algoritmos con la capacidad de convertir el lenguaje hablado en texto, así como comprender mensajes humanos y convertirlos en acciones; Por ejemplo, el reconocimiento de voz y la producción de sonidos.

Procesamiento de lenguajes naturales

Este es un subcampo interdisciplinario que combina lingüística y ciencias de la computación. Los algoritmos en este campo tienen como objetivo hacer inteligibles los lenguajes humanos para que un sistema programado pueda interpretar y comprender textos, así como mantener un diálogo claro con los seres humanos; Por ejemplo, la traducción automática (machine translation), la NLG (Natural Language Generation, generación de lenguajes naturales) y la GEC (Grammatical Error Correction, detección y corrección de errores gramaticales).

Aprendizaje automático

Es un subcampo muy conocido de la IA que tiene como objetivo el estudio y la construcción de métodos que permitan entrenar a las máquinas para aprender a partir de un conjunto de datos y realizar predicciones posteriormente; Por ejemplo, el aprendizaje basado en árboles de decisión y el aprendizaje del espacio de versiones.

Algoritmos que se utilizan en la construcción de la IA

Una vez que se tiene conocimiento del área de desarrollo de los algoritmos en el contexto de la IA, es posible adentrarse un poco más y conocer su clasificación. Los algoritmos de IA pueden clasificarse en diversos grupos, siendo los tres principales:

Aprendizaje supervisado

Este tipo de algoritmos se caracterizan principalmente por requerir la intervención humana para etiquetar los datos de entrada. Entre sus principales utilidades se encuentran la clasificación y la regresión numérica, dos técnicas fundamentales en el análisis de datos y la toma de decisiones. Algunos ejemplos incluyen el modelo de árbol de decisión (decision tree) y bosques aleatorios (random forest), las SVM (Support Vector Machines, máquinas de vectores de soporte), regresión lineal, regresión polinómica y regresión logística.

Algoritmos de aprendizaje automático para la clasificación. Fuente.

Aprendizaje sin supervisión

A diferencia del anterior, este tipo de algoritmos no depende de la etiquetación de datos para construir modelos y encontrar relaciones, lo que permite generar más información sobre los datos. Esto implica que los modelos deben tener la capacidad de identificar patrones y hacer predicciones sin instrucciones previas. Algunos ejemplos incluye los agrupamientos por K-medias y jerárquico (K-means and Hierarchical Clustering),  así como el modelo de mezcla gaussiana.

Por otro lado, existen algoritmos que pueden ser utilizados tanto como paradigmas de aprendizaje supervisado como no supervisado, como es el caso de las redes neuronales.

 Red neuronal de varias capas (Deep Neural Network). Fuente

Aprendizaje reforzado

Este tipo de algoritmos se caracterizan por aprender a partir de la retroalimentación de operaciones iterativas de acción y resultado. En otras palabras, estos algoritmos evalúan diversas posibilidades de un problema a través de ensayo y error, y reciben una recompensa positiva cada vez que se acercan a la mejor solución. Por lo tanto, buscan maximizar la recompensa para una situación específica. Algunos ejemplos incluyen el MVP (Markov Decision Process, proceso de decisión de Markov), las ecuaciones de Bellman, la programación dinámica, y el modelo de aprendizaje Q (Q-learning).

Ruta de encaminamiento óptima. Fuente.

Como puedes observar, cada una de estas categorías abarca una amplia variedad de tipos de algoritmos, lo cual hace impracticable abordar todos ellos en una única publicación. Por esta razón, hemos decidido iniciar una serie de artículos donde mostraremos información detallada sobre cada uno de ellos. A continuación, te presentamos uno de estos algoritmos que se utilizan ampliamente en la optimización de problemas y en la construcción de modelos de aprendizaje automático.

Computación evolutiva: algoritmos genéticos

Los algoritmos genéticos forman parte del subconjunto de la IA conocido como computación evolutiva. El diseño de estos algoritmos está inspirado en los procesos de selección natural y genética, y tienen como objetivo la minimización o maximización de una función objetivo. En otras palabras, las variables a optimizar se representan mediante cadenas de números binarios o también llamados cromosomas, que se modifican temporalmente con el fin de obtener una solución más adaptada al problema. De ahí su nombre, algoritmo genético.

El diseño y construcción del algoritmo sigue los siguientes pasos:

  1. Función objetivo (Objective Function): Definir el problema e identificar una función objetivo que conduzca a la solución deseada;
  2. Población (Population): Crear una población inicial de posibles soluciones y representarlas en forma binaria (cromosomas);
  3. Cruce (Crossover): Combinar pares de cromosomas para crear descendientes o nuevos conjuntos de posibles soluciones.
  4. Mutación (Mutation): Modificar genes de cada cromosoma con el fin de aumentar la diversidad y evitar soluciones no óptimas.
  5. Evaluación (Evaluation): Convertir las variables de todos los cromosomas del formato binario al formato numérico real y usarlos para evaluar la función objetivo.
  6. Selección (Selection): Seleccionar, mediante modelos estadísticos, un conjunto de soluciones para formar una nueva población.
  7. Repetir (Repeat): Repetir los pasos 2 a 7 utilizando la nueva población de soluciones hasta alcanzar un criterio de convergencia.

Diagrama de flujo del algoritmo genético. Imagen creado por el autor.

Finalmente, para proporcionar una comprensión más profunda del uso de los algoritmos genéticos, a continuación te presentamos algunos ejemplos de aplicaciones.

Optimización

Los algoritmos genéticos pueden ser implementados para optimizar problemas bajo ciertas restricciones y condiciones específicas. Son aplicables en diversas industrias, como la ingeniería, la ciencia de datos y la planificación empresarial.

Por ejemplo, hemos utilizado este tipo de algoritmos en el campo de la investigación científica para optimizar modelos matemáticos complejos. Sin el uso de un algoritmo genético, este proceso llevaría mucho tiempo y su reproducibilidad no podría ser realizada por otros autores, ya que no se tendría un proceso estandarizado. Otro ejemplo de aplicación es la reducción de gastos en aerolíneas mediante la optimización de los recursos utilizados en función del número de pasajeros, la ruta y el tipo de aeronave. 

En general, el uso de algoritmos de optimización permite maximizar los beneficios, mejorar la eficiencia y minimizar los costos.

Ajuste de hiperparámetros

Antes de ejecutar modelos de aprendizaje automático, es necesario encontrar los hiperparámetros ideales. La optimización de los hiperparámetros es esencial para obtener modelos de ML de alto rendimiento y capacidad de generalización. Esto permite ajustar el modelo a las características del problema y los datos, evitar el sobreajuste o el subajuste, mejorar la eficiencia computacional y obtener resultados consistentes y reproducibles.

Referencias

AI vs. Machine Learning vs. Deep Learning vs. Neural Networks: What’s the Difference?, IBM.

What Is Reinforcement Learning, geeksforgeeks.

The Beginner’s Guide to Deep Reinforcement Learning [2023], v7labs.

Optimal Path Routing Using Reinforcement Learning, DELL Technologies.

Experimental Study Of Jet Fire Radiation And A New Approach For Optimizing The Weighted Multi-Point Source Model By Inverse Methods. Fire Safety Journal, Elsevier.

Scroll to Top