Técnicas de la inteligencia artificial

Técnicas de la inteligencia artificial

Los sistemas inteligentes configuran respuestas a ciertos estímulos, en determinados contextos. En este trabajo se abordan las distintas técnicas existentes y se realiza una recapitulación de la situación en la cual fueron creadas.

| Por Ramiro Verrastro |

Las definiciones de Inteligencia son muchas, pero hay una corriente de pensamiento que se enfoca en aquellas técnicas que mejoran la habilidad computacional para resolver problemas. Puede plantearse como la capacidad de una máquina para elegir la alternativa más satisfactoria, en forma autónoma, para cumplir un objetivo específico. También debe incorporar la capacidad de sensar el ambiente, de aprender de la experiencia, de reconocer patrones, y de explicar las decisiones, entre otras.

El ser humano desde sus orígenes se inspiró en la naturaleza para construir herramientas que amplíen su capacidad tanto física como intelectual para la resolución de problemas específicos. Por eso es posible encontrar análisis explícitos y planteos teóricos de los métodos de razonamiento desde las primeras concepciones de la lógica (Solano Funez, 2024). El término Inteligencia Artificial (IA) se comenzó a acuñar a mediados del siglo XX. En ese momento parte de la comunidad científica empieza a publicar investigaciones en las cuales se buscaba simular la inteligencia humana, utilizando diferentes máquinas, mecanismos o algoritmos. Todo esto fue potenciado por la aparición de la primera computadora de uso comercial en la década de 1950 (The University of Manchester, 2008).

En esa primera ola de la inteligencia artificial, es de gran relevancia el “Test de Turing” (Turing, 1950), planteado por Alan Turing, para evaluar la inteligencia de las máquinas. Este concepto es utilizado en los “CAPTCHA” modernos (Von Ahn et al., 2003) que utilizan pruebas o tareas que son fácilmente realizadas por humanos, pero que desafían a las máquinas, para intentar diferenciar entre humanos y programas que imitan su comportamiento (bots).

Podemos pensar la inteligencia artificial como un conjunto de técnicas o herramientas para construir sistemas, inspirados en el razonamiento humano, en la naturaleza y en la neurociencia, que se utilizan para resolver problemas y tomar decisiones de forma autónoma.

Sistemas que toman decisiones

En la Ingeniería, al igual que en la Economía, se administra la escasez, en este caso la del hardware que da soporte físico a los algoritmos, así como el tiempo de respuesta y la energía empleada. La navaja de Ockham (1285-1347) es un concepto conocido desde hace mucho tiempo y puede sintetizar este esfuerzo por minimizar el costo computacional implementado en la práctica como el criterio de diseño KISS (Keep it simple and straightforward), plantea que a igualdad de resultados, la solución más sencilla, la de menor cantidad de parámetros, componentes o etapas es la mejor opción. Si con menos recursos se logran resultados similares, la solución es más eficiente. A continuación se exploran una serie de herramientas, que pueden aplicarse de manera efectiva para construir sistemas inteligentes que tomen decisiones informadas y por eso se utilizan ampliamente.

Sistemas basados en reglas

Uno de los primeros intentos en automatizar la toma de decisiones fueron los sistemas que utilizan operaciones lógicas a partir de una serie de entradas y mediante mecanismos de inferencia que producen una salida. Estos mecanismos de inferencia pueden ser desde una simple tabla de verdad, o implementarse mediante árboles de decisión, o métodos como el General Problem Solver (Newell et al., 1958), en el cual se conectan una serie de decisiones en cascada para representar salidas complejas a partir de los datos de entrada. Estas técnicas alcanzaron algún éxito cuando se aplicaron en ámbitos específicos y dieron origen a los Sistemas Expertos, que extractan el conocimiento de expertos humanos y automatizan su razonamiento mediante reglas de producción.

Sistemas expertos

Los sistemas expertos se modelan en base al razonamiento y los conocimientos específicos de las personas u organizaciones en la resolución de un determinado problema. Típicamente están compuestos por un conjunto de datos o hechos, un conjunto de reglas que captura el conocimiento experto, y un algoritmo de inferencia, que utiliza algoritmos de lógica binaria, lógica difusa o razonamiento probabilístico para calcular una respuesta.

Estos sistemas utilizan reglas como “Si mueve la cola y ladra entonces es perro” y “Si es perro entonces puede morder”. Estas reglas se administran mediante una máquina de inferencias que es capaz de arribar a una conclusión a partir de determinados datos.

Una de las ventajas es la explicabilidad del resultado, ya que se puede determinar el detalle del razonamiento que se aplicó para obtener la salida o conclusión.

Podemos citar como ejemplo la implementación del Control Estadístico de Procesos (CEP). Uno de los casos notables en la automatización de estos controles fue realizado por Toyota para asegurar la calidad, y detectar potenciales defectos en los procesos de fabricación, Sistema de Producción Toyota (TPS).

Otro ejemplo notable es MYCIN (Shortliffe, 1977), desarrollado en década de los setenta. Su principal uso fue el diagnóstico de enfermedades infecciosas de la sangre, proporcionando además el proceso para arribar al diagnóstico, así como de recetar los medicamentos necesarios para cada caso según las particularidades de cada paciente (por ejemplo: edad, estatura, peso, entre otros). Los sistemas basados en reglas alcanzaron los primeros éxitos prácticos de la IA y se usaron en el diagnóstico médico, prospección minera, gestión empresarial, planificación logística, entre otros.

Control difuso

En muchas situaciones los expertos no pueden afirmar con seguridad la validez de una regla, no obstante pueden operar y sacar conclusiones en contextos de información incompleta o con un grado de incertidumbre. Los algoritmos que emplean lógica difusa (Sorin, 2022) modelan situaciones y conceptos, a los que no se les puede asignar una categoría de “verdadero” o “falso”, sino que tienen grados de verdad intermedios. Esto permite trabajar con datos que no estén claramente determinados. Para una persona puede ser sencillo manejar estos conceptos vagos como por ejemplo “hay mucha gente”, “la comida está fría” o “llegaste rápido”. En la lógica clásica estas expresiones pueden ser verdaderas o falsas (0 o 1), en cambio en la lógica difusa la asignación del valor de verdad es un número entre 0 y 1. Esto permite interpretarlo luego en términos de posibilidades.

La lógica difusa permite capturar y modelar la incertidumbre y la imprecisión del mundo real, para la toma de decisiones con información vaga o incompleta.

En el contexto de sistemas cuyos modelos estáticos y dinámicos serían extremadamente complejos de desarrollar, la lógica difusa ofrece una solución elegante. En lugar de depender de ecuaciones integrales y diferenciales que pueden ser difíciles de tratar matemáticamente, podemos utilizar reglas simples basadas en la experiencia.

Por ejemplo, en un sistema de control de temperatura para un horno industrial, en lugar de tener un modelo matemático preciso que describa el comportamiento térmico del horno y luego desarrollar un controlador que utilice ese modelo, podríamos simplemente establecer reglas difusas del tipo “Si la temperatura es alta y está subiendo rápidamente, entonces disminuir bastante la potencia del horno”.

Como caso de éxito podemos citar la aplicación al control de la velocidad del subte japonés en la ciudad de Sendai (Singh, 2013), pudiendo contemplar por ejemplo la cantidad de pasajeros, las condiciones y las características de las vías, entre otras variables. Todo esto ostentando una gran suavidad en el arranque y frenado, comparado con los sistemas existentes en ese momento, y siendo un 10% más eficiente energéticamente que el manejo del acelerador que realizaba el personal.

Actualmente el control difuso se emplea tanto en máquinas lavarropas como en aplicaciones industriales de automatización y control, entre otros.

Máquina de estados

La teoría de autómatas trata de una máquina teórica cuyas salidas dependen no solo de las señales de entrada actuales, sino también de las anteriores. Puede modelarse con un conjunto de estados que dependa de los valores pasados, de forma tal que la salida dependa únicamente del estado y de los valores actuales de las entradas. Esto permite modelar autómatas, cuyo comportamiento varía en función del tiempo y del contexto. Como caso especial no podemos dejar de mencionar la “Máquina de Turing” (Turing, 1936), utilizada como modelo teórico para las computadoras. Una de las aplicaciones de estos modelos es la clasificación de los problemas en función de su complejidad, es decir, la cantidad de recursos necesarios para resolverlos. Es así que existen problemas que pueden resolverse en tiempos polinómicos (donde el tiempo empleado es una potencia del tamaño del problema) y problemas no polinómicos (donde el tiempo necesario para resolverlo es exponencial con respecto al tamaño).

Los problemas que se resuelven con algoritmos no polinómicos son llamados algoritmos de la muerte, porque se tornan irresolubles en tamaños relativamente pequeños. Uno de estos problemas es el del Viajante de Comercio (Hoffman et al., 2013) que plantea el problema de visitar N ciudades y volver al inicio por el camino más corto. Para 10 ciudades solo hay que calcular 181.440 caminos posibles pero para 100 ciudades hay que calcular 4,7 10157 posibilidades, (4,7 seguido de 157 ceros), que es un número similar a las jugadas posibles de una partida de ajedrez promedio. Este tipo de problemas no es abordable con técnicas de cómputo por “fuerza bruta”, es decir, calculando todas las posibilidades. Los algoritmos de búsqueda tratan de lidiar con este tipo de problemas.

Algoritmos de búsqueda

Los algoritmos de búsqueda se utilizan para encontrar una lista o secuencia de pasos o acciones a realizar desde un estado inicial para alcanzar un objetivo específico. Podemos clasificarlos en dos grandes grupos.

Las Búsquedas No Informadas se usan cuando no se tienen conocimientos específicos sobre cómo realizar la búsqueda de la solución de un determinado problema. Pueden utilizarse diferentes estrategias como las siguientes. Búsqueda primero en anchura (BFS, por sus siglas en inglés) explora todos los nodos vecinos o puntos más próximos antes de moverse a los siguientes niveles de profundidad. La búsqueda primero en profundidad (DFS, por sus siglas en inglés) avanza lo más lejos posible a lo largo de cada rama o camino, priorizando explorar los nodos más lejanos al punto de partida. Tiene ventajas en requerimientos de memoria con la anterior ya que minimiza la cantidad de caminos que deben considerarse en forma simultánea.

Las Búsquedas Informadas son algoritmos que permiten encontrar soluciones a los problemas de manera más eficiente usando conocimientos previos del problema. Uno de ellos es el algoritmo A* (A estrella), utiliza una función de evaluación heurística para encontrar el camino más prometedor, que pondera tanto el costo computado desde el inicio para alcanzar un nodo actual, como el costo estimado (heurística) para alcanzar el objetivo desde el nodo actual. Esta función de evaluación debe cumplir ciertos requisitos, ser no negativa, asegurando que los costos siempre aumenten, y admisible, para no sobreestimar el costo real al objetivo. Bajo estas condiciones garantiza encontrar la solución óptima. Este algoritmo (Hart et al. 1968) ha sido ampliamente utilizado en la industria y es un método clave para la navegación de robots y vehículos autónomos, así como en los sistemas de navegación por GPS, aplicaciones de transporte y optimización de las cadenas de suministro.

Una técnica más sencilla y de uso frecuente es la Búsqueda voraz (Greedy Best-First Search). Utiliza solo la función heurística que estima el costo hasta el objetivo. Prioriza los nodos basándose únicamente en esta función, y buscando directamente el camino menos costoso desde la posición actual. Si bien puede ser más rápida en alcanzar el objetivo, no necesariamente encuentra la solución óptima. Estos algoritmos se usan en Sistemas de Navegación, Distribución y logística y Sistemas Interactivos de Diálogo, entre otros. No obstante sus buenos resultados, hay problemas donde hay muchas variables de entrada y muchos estados posibles cuya combinación produce un número de alternativas intratables. Este fenómeno es conocido como la “maldición de la dimensionalidad”. En estos casos los métodos de búsqueda estocástica como los algoritmos genéticos producen resultados notables.

Algoritmos genéticos

Los algoritmos de búsqueda en grafos (conjunto de nodos, conectados entre sí) no siempre son eficientes cuando tratan problemas de optimización que requieren respuestas rápidas, aunque no sean óptimas. Por esto, surgen otros modelos de búsqueda inspirados en los mecanismos biológicos de la evolución de las especies. Siendo los individuos de una especie las posibles soluciones del problema que se busca resolver, y la calidad de la solución se evalúa mediante una función de aptitud, también denominada fitness.

El proceso comienza con la inicialización de una población de individuos (soluciones) a los que, considerando su aptitud, se selecciona para pasar a la próxima generación. Se aplican además de la selección, los operadores de cruza y mutación, que permiten el intercambio de “material genético” y la alteración azarosa de las soluciones que integran la nueva generación. El mecanismo de cruza combina dos individuos para producir otros dos, en la esperanza de que esta combinación sea una mejor respuesta al problema en cuestión, es decir, una descendencia potencialmente mejor adaptada. La mutación genera cambios aleatorios en los individuos de la población, introduciendo diversidad y permitiendo explorar otras alternativas dentro del espacio de búsqueda. Si bien es una búsqueda aleatoria de soluciones, está bien establecido el principio de funcionamiento (Holland, 1992), que al igual que en la naturaleza, guía el proceso de búsqueda de soluciones, generación tras generación. Este enfoque ha sido ampliamente utilizado en la industria desde sus primeras publicaciones.

Como ejemplo notable podemos citar el diseño de la antena de telecomunicaciones de la nave espacial de la NASA ST5 en el 2006 (Fisher, 2024) y en otras áreas como Robótica y control, Ingeniería, Telecomunicaciones, Visión por computadora, Finanzas, Logística e Ingeniería y diseño.

Sistemas que aprenden

El aprendizaje es un aspecto muy importante de la inteligencia, e implica la capacidad de adquirir, asimilar y aplicar nueva información o habilidades, por medio de la experiencia propia o ajena, lo que puede resultar en cambios duraderos en el comportamiento del algoritmo y su capacidad para resolver problemas. Este tipo de soluciones necesita de una etapa de “entrenamiento”. Desde un enfoque clásico de la IA, los desarrolladores son los encargados de elaborar los filtros para extraer determinadas características de los datos de entrada. Como pueden ser valor medio, máximos y mínimos de una serie temporal. En el caso del procesamiento de imágenes, la elaboración de filtros que identifican colores, formas, texturas, cambios abruptos. En el caso del procesamiento de texto, la cantidad de veces que se utiliza determinado término. Con estas características ya procesadas, se pueden entrenar algoritmos de Aprendizaje Automático (Machine Learning) para aprender a tomar la decisión correcta (calibrar los parámetros internos de los algoritmos) en base a una determinada función de costo, que dependerá del problema que se desea resolver.

El Aprendizaje Supervisado se caracteriza por utilizar un conjunto de datos etiquetados, cada ejemplo de entrada está asociado con una etiqueta (una salida conocida), y el objetivo principal es relacionar las entradas con las salidas a través de la minimización de una función de error, se busca que las salidas que genera el modelo coincidan con las etiquetas originales. Como ejemplo podemos citar la clasificación de correos electrónicos como spam. Los datos se etiquetan con la ayuda de los usuarios que mueven algunos correos a la carpeta de spam. El algoritmo identifica características como las palabras clave o la frecuencia de ciertas palabras y aprende a clasificar automáticamente nuevos correos electrónicos como spam.

El Aprendizaje No Supervisado no requiere que los datos tengan etiquetas, por lo que no hay información sobre las salidas esperadas. Su propósito es descubrir y capturar patrones ocultos, estructuras características o distintas relaciones entre las variables de entrada. Permite también ordenar los datos en grupos afines, reducir la cantidad de variables de entrada, así como explorar y presentar de manera organizada grandes conjuntos de datos. Como ejemplo podemos citar la segmentación de los clientes. Teniendo los datos de transacciones de clientes, pero no las etiquetas que indiquen a qué segmento pertenecen, un algoritmo de aprendizaje no supervisado puede agrupar automáticamente a los clientes en segmentos basándose en sus patrones de compra y comportamiento, permitiendo adaptar estrategias de ventas de manera más efectiva.

El Aprendizaje por Refuerzo busca aprender mediante la experimentación en ambientes dinámicos. Durante el desarrollo de estas experiencias el modelo recibe como realimentación recompensas y castigos, el objetivo es encontrar una estrategia que maximice el balance entre recompensas y castigos, además se establece una política para seleccionar y explorar las distintas acciones posibles que permiten avanzar durante cada experimento. Como ejemplo podemos citar el entrenamiento de un agente para jugar al ajedrez. El agente (controlado por el algoritmo) juega repetidamente contra sí mismo o contra otros oponentes. Después de cada juego, recibe una recompensa (por ejemplo, +1 si gana, 0 si empata, -1 si pierde). Utilizando estas recompensas como retroalimentación, el agente ajusta su estrategia y mejora gradualmente su desempeño a medida que juega.

Redes neuronales

Dada la importancia actual de las redes neuronales y sus arquitecturas de aprendizaje profundo, en otro artículo de este número se tratan en detalle el estado del arte y sus aplicaciones.

Conclusiones

En este artículo se buscó presentar algunas de las técnicas que actualmente tienen mayor relevancia en la inteligencia artificial, explicando en qué consisten y dando algunos datos del contexto histórico. Este es un campo floreciente y en pleno crecimiento, irrumpiendo en cada rincón de la vida cotidiana y la industria.

Esto se pudo dar en parte gracias al avance de la capacidad de cómputo que proporcionan las placas de procesamiento GPU, TPU y otras tecnologías especializadas en inteligencia artificial, como las FPGA, y la gran cantidad de datos disponibles que proporcionan los sistemas de almacenamiento en la nube, así como la eficiencia y complejidad alcanzada por los algoritmos de IA.

En este contexto surgen las redes profundas, en donde la extracción de características puede ser realizada en forma automática, siendo este el enfoque actual de la IA, donde los algoritmos de Aprendizaje Automático Profundo (Deep Learning) tienen la capacidad de aprender directamente de los datos. Este tipo de algoritmos se caracteriza por tener un gran número de parámetros entrenables, por lo cual son capaces de aprender funciones complejas y requieren gran capacidad de cómputo. Actualmente hay una gran cantidad de áreas en las que se están aplicando, desde el procesamiento de audio hasta predicciones en el mercado de valores.

Referencias bibliográficas

Solano Funez, L.D. (2024). “La lógica y su historia”. https://www.timetoast.com/timelines/2316233
The University of Manchester. (2008). “The Ferranti Mark 1”. https://curation.cs.manchester.ac.uk/digital60/www.digital60.org/birth/manchestercomputers/mark1/ferranti.html
Turing, A. (1950), “Computing Machinery and Intelligence”, Mind, LIX (236): 433–460, doi:10.1093/mind/LIX.236.433, ISSN 0026-4423
Von Ahn, L., Blum, M., Hopper, N. J., Langford, J. (2003) “CAPTCHA: using Hard AI problems for security.” Advances in Cryptology, Eurocrypt.
Newell, A., Shaw, J. C., Simon, H. A. (1958). “Elements of a theory of human problem solving.” Psychological Review, 65(3), 151–166. https://doi.org/10.1037/h0048495
Shortliffe E.H. (1977 )“Mycin: A Knowledge-Based Computer Program Applied to Infectious Diseases”. Annual Meeting of the Society for Computer Medicine. 66–9. PMCID: PMC2464549.
Sorin, Nadaban. (2022). Fuzzy Logic and Soft Computing—Dedicated to the Centenary of the Birth of Lotfi A. Zadeh (1921–2017). Mathematics. 10. 3216. 10.3390/math10173216.
Singh, H. (2013) “Real-Life Applications of Fuzzy Logic”, Hindawi Open Access Journal, Advances in Fuzzy Systems, vol. 2013, Article ID 581879,. https://doi.org/10.1155/2013/581879
Turing, A.M. (1936). “On Computable Numbers, with an Application to the Entscheidungsproblem”. Proceedings of the London Mathematical Society. 2 (1937) 42: 230-265. doi:10.1112/plms/s2-42.1.230
Hoffman, K.L., Padberg, M., Rinaldi, G. (2013). “Traveling Salesman Problem.” In: Gass, S.I., Fu, M.C. (eds) Encyclopedia of Operations Research and Management Science. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-1153-7_1068
Hart P., Nilsson N., Raphael B. (1968) “A formal basis for the heuristic determination of minimum cost paths” Systems Science and Cybernetics, IEEE Transactions, vol. 4, pp. 100–107
Holland, J. (1992). “Adaptation in Natural and Artificial Systems” Cambridge, MA: MIT Press. ISBN 978-0262581110.
Fisher, D. K. (2024). ”Evolved Antenna”. Jet Propulsion Laboratory. NASA https://www.jpl.nasa.gov/nmp/st5/TECHNOLOGY/antenna.html

Autorxs


Ramiro Verrastro:

Ingeniero en Electrónica, docente de la materia Aprendizaje Automático (UTN-FRBA), miembro del Grupo de Inteligencia Artificial y Robótica (GIAR, UTN). Actualmente participa en diversos proyectos de desarrollo en Inteligencia Artificial, Visión por Computadora y Aprendizaje Automático para la empresa VENG SA.