NOCIONES SOBRE INTELIGENCIA ARTIFICIAL

NOCIONES SOBRE INTELIGENCIA ARTIFICIAL

¿Es Inteligencia Artificial?

La idea de este post es ofrecer unas mínimas nociones que permitan comprender algo más la materia y despejarla de esa especie de “halo mágico” que convierte a la IA en un algo omnisciente y omnímodo, una especie de “magia” que lo mismo sirve para que los Tesla conduzcan solos, como para prevenir enfermedades o traducir idiomas.

Quiero advertiros de que no soy un experto en el tema, aunque de un tiempo a esta parte sí que me he interesado en la matería, por lo que he leído/estudiado bastante sobre ello, siguiendo algunos MOOCs e incluso he hecho algunos pinitos que me han servido tanto para poner en práctica lo aprendido y comprobar la viabilidad de utilizar  la Inteligencia Artificial en mi trabajo diario. El contenido de este post resume parte de mis apuntes sobre el tema. Pido disculpas por adelantado si mis “definiciones” no son académicamente exactas, siendo bienvenidas todas las correcciones que sean necesarias. 

Una vez hecha esta aclaración, entremos en materia, que para eso estáis aquí ¿o no?

¿Qué es exactamente la Inteligencia Artificial?

El término IA aparece en multitud de publicaciones, mezclado a veces -o más bien revuelto- con otros conceptos muy relacionados como son el Big Data, el Business Intelligence o el Machine Learning (también conocido como Aprendizaje Automático)Si no termináis de tener claro qué es cada una de estas cosas, os recomiendo que leais el artículo “Business Intelligence, Inteligencia Artificial y Big Data” aquí en MyTips, en el que trato de explicar en qué se asemejan, qué tienen en común y dónde se aplica cada una de estas tecnologías.

No resulta fácil definir la Inteligencia Artificial cuando ni los propios expertos se ponen de acuerdo para definir la Inteligencia Humana o Natural.

Un viejo chiste -y bastante geek– afirmaba que IA es “las cosas guay que los ordenadores no pueden hacer”. Según esta definición, la IA nunca podría hacer ningún progreso, ya que en cuanto se encontrara la forma de hacer “algo guay” con un ordenador, ese “algo guay” ya no sería IA. Pero hay algo de cierto en esta definición. Por ejemplo, hace 50 años los métodos automáticos de búsqueda y planificación se consideraban dentro del dominio de la IA, pero actualmente estos métodos han perdido ese “glamour” y se enseñan habitualmente a los estudiantes de Ciencias de la Computación. De forma parecida, algunos métodos empleados en el procesamiento de información incierta se están empezando a comprender tan bien que probablemente no tardarán en salir del campo de la IA para considerarse “simples” problemas de probabilidad y/o estadística.

Podemos definir la Inteligencia Artificial como cualquier técnica que capacita a las máquinas a imitar el comportamiento humano (ver, leer, hablar, aprender, tomar decisiones, etc). La Inteligencia Artificial es un área multidisciplinar que combina varias ramas de la ciencia como la lógica, la computación y la filosofía.

Andreas Kaplan y Michael Haenlein definen la Inteligencia Artificial como «la capacidad de un sistema para interpretar correctamente datos externos, para aprender de dichos datos y emplear esos conocimientos para lograr tareas y metas concretas a través de la adaptación flexible». Esta definición hace referencia explícita a la capacidad de aprendizaje de los sistemas, cuyo funcionamiento no se basaría en una programación «convencional», es decir, un conjunto de instrucciones más o menos rígidas.

Un poco de Historia

Los albores de la Inteligencia Artificial     

Ya en la antigüedad existieron mitos, leyendas, historias y rumores de creaciones artificiales que habían sido dotadas por sus creadores de supuesta inteligencia o consciencia. Dejando estas historias a un lado, son conocidos los autómatas de Herón de Alejandría (10 d. C.-70 d. C.) realizados fundamentalmente como entretenimiento y que imitaban el movimiento de personas y/o animales, efectos producidos por el movimiento del agua, la gravedad o por sistemas de poleas y palancas.

El polifacético Leonardo da Vinci también diseñó autómatas mecánicos, que en el siglo XVIII alcanzarían su máximo esplendor, desarrollados con un claro interés científico que pretendía reproducir lo más fielmente posible los movimientos y comportamientos de los seres vivos e impulsados por los avances de la relojería. Estos mecanismos se asemejarían más a lo que actualmente denominamos robots o androides.    

Entre los autómatas del genial Leonardo y las maravillas mecánicas del siglo XVIII, el filósofo y matemático francés René Descartes se preguntaba en 1637 si las máquinas podrían llegar a pensar algún día.

Como vemos, la idea de Inteligencia Artificial acompaña a la Humanidad desde siempre, aunque en formas muy distintas: máquinas que imitan los movimientos y acciones humanas, máquinas capaces de pensar, etc.

“Antes” de la Inteligencia Artificial

La idea de una “máquina pensante” se inspiraba en una confluencia de ideas que empezaron a prevalecer a finales de la década de los 30s, 40s y 50s. Las más recientes investigaciones en neurología habían mostrado que el cerebro era una compleja red eléctrica de neuronas que se “disparaban” en pulsos todo o nada. La Cibernética de Norbert Wiener describía el control y la estabilidad de las redes eléctricas, mientras que la Teoría de la Información de Claude Shannon describía las señales digitales. Por otra parte, la Teoría de la Computación de Alan Turing afirmaba que cualquier forma de computación podría ser descrita digitalmente y en 1950 publicó su artículoComputing Machinery and Intelligence” acerca de la capacidad de las máquinas para pensar y donde apareció la primera referencia al que se conoce como Test de Turing, una prueba para comprobar la capacidad de una máquina para mostrar un comportamiento inteligente equivalente o imposible de distinguir del de un humano.

Todas estas ideas en conjunto sugerían la posibilidad de construir un cerebro electrónico, por lo que un puñado de científicos de diversos campos (matemáticas, psicología, ingeniería, ciencias políticas y económicas) empezaron a discutir sobre la posibilidad de crear un cerebro artificial.

Walter Pitts y Warren McCulloch analizaron redes idealizadas de neuronas artificiales y demostraron cómo podían ejecutar funciones lógicas simples. Pitts y McCulloch fueron los primeros en describir lo que posteriormente otros investigadores llamarían Red Neuronal. En 1951, inspirados por los trabajos de Pitts y McCulloch, Marvin Minsky y Dean Edmonds construyeron la primera máquina de red neuronal, el SNARC (acrónimo de Stochastic Neural Analog Reinforcement Calculator) .

Con anterioridad ya se habían creado “máquinas pensantes”, aunque estas no se basaban en ordenadores, electrónica digital o razonamiento simbólico sino que eran controladas enteramente por circuitos electrónicos analógicos. Podríamos verlas como versiones electrónicas de los autómatas mecánicos de los que hablamos al comienzo. Podríamos mencionar las “tortugas robot” de W. Grey Walter y la “Bestia” de Johns Hopkins

El nacimiento de la Inteligencia Artificial

El término “Inteligencia Artificial” fue propuesto en 1956 por John McCarthy (del MIT) en el Dartmouth Summer Research Project on Artificial Intelligence, que se considera el evento donde surgió la Inteligencia Artificial como campo de estudio.

Retrato de John McCarthy
John McCarthy, creador del término Inteligencia Artificial

A principios de la década de los 50s, el campo de estudio de las “máquinas pensantes” recibía diferentes nombres como cibernética, teoría de autómatas y/o procesamiento de información compleja, lo que puede hacernos una idea de los diferentes enfoques. El término Inteligencia Artificial era lo suficientemente neutral como para evitar la “estrechez de miras” de la Teoría de Autómatas y no confundirlo con la Cibernética, más centrada en circuitos analógicos realimentados y en la que Norbert Wiener era el principal investigador, lo que también serviría para evitar que Wiener monopolizara la conferencia, en esencia un brainstorming sobre las “máquinas pensantes”

McCarthy definió la Inteligencia Artificial como «la ciencia e ingenio de hacer máquinas inteligentes, especialmente programas de computo inteligentes». El propio McCarthy, junto a Allen Newell y Herbert Simon (Carnegie Mellon University), Marvin Minsky (MIT) y Arthur Samuel (IBM), quienes también asistieron a dicha conferencia, se convirtieron en los fundadores y líderes de la investigación en Inteligencia Artificial. En dicha conferencia se hicieron previsiones triunfalistas a diez años que jamás se cumplieron, lo que provocó el abandono casi total de las investigaciones durante quince años. La falta de capacidad de los ordenadores de la época y de datos en formato digital, suponían una gran dificultad para desarrollar aplicaciones prácticas, así que el interés en el tema decayó y se redujo la financiación en proyectos relacionados, dando origen a lo que se conoce como “Invierno de la Inteligencia Artificial”. Desde entonces la IA ha experimentado varios de estos ciclos de impulsos a raiz de algun otro campo (robótica, sistemas expertos en los 80, etc) y parones, conocidos como “Inviernos de la IA”.

En la actualidad, la IA es un tema de moda y que utilizamos a diario, aunque a veces no nos demos ni cuenta: está en los resultados de búsqueda de Google, en los sistemas de recomendación de Amazon, Netflix y Spotify, en las traducciones automáticas…

Para los interesados, recomiendo esta pequeña Historia de la IA o esta recopilación de Hitos de la IA.

¿En qué se diferencia la Inteligencia Artificial de un programa de informático?

Ya hemos mencionado con anterioridad la definición de IA de Andreas Kaplan y Michael Haenlein: «la capacidad de un sistema para interpretar correctamente datos externos, para aprender de dichos datos y emplear esos conocimientos para lograr tareas y metas concretas a través de la adaptación flexible». Es precisamente la capacidad de adaptación flexible a partir de lo interpretado/aprendido de los datos la que distingue a la Inteligencia Artificial de un programa informático. 

Un programa informático es una lista de instrucciones que le dice al ordenador paso a paso lo que tiene que hacer: «Lee la variable 1, lee la variable 2, haz tal o cual operación matemática con ellas y escribe el resultado en pantalla”. Los programas tienen bifurcaciones del tipo «si pasa esto, haz esto y si pasa esto otro, haz esto otro»; por ejemplo: “si la variable 1 o la variable 2 no es un número, muestra en pantalla un mensaje de error y reproduce este sonido», etc. 

Con un programa informático, una máquina no “piensa”. Simplemente, se limita a hacer lo que se le ha dicho que haga, para bien o para mal. Es decir, la característica principal de un programa es que se trata de un conjunto de instrucciones que cubren todas las posibles opciones a las que se enfrenta el ordenador, para lo cual, antes han debido ser analizadas por los humanos. Si el programa se encuentra una situación no prevista por el programador, no sabrá qué hacer y “se colgará” o dará un enigmático mensaje de error.

La gran revolución de la IA es que no recibe órdenes explícitas para obtener un resultado. Es ella sola la que, a partir de unos datos de entrada, “se las apaña” para obtener los resultados.

Tipos de Inteligencia Artificial

La Inteligencia Artificial que vemos actualmente es una Inteligencia Artificial Débil o Estrecha, son sistemas capaces de resolver problemas muy bien definidos y acotados, y lo hacen tan bien que sus resultados superan a los de los humanos. 

Existe otro tipo de IA, denominada Inteligencia Artificial Fuerte o General, que quizás es la que tiene en mente el público profano por ser la que aparece recurrentemente en la Ciencia Ficción: una IA que supera las capacidades humanas promedio y que permite a la máquina superar al ser humano en cualquier tarea intelectual. A día de hoy, esta IA Fuerte no existe

¿Inteligencia Artificial o Aprendizaje Automático?

En la actualidad, la mayoría de las aplicaciones que conocemos de la IA se basan en el Machine Learning (ML), en español Aprendizaje Automático, un conjunto de técnicas estadísticas que permiten que los ordenadores “aprendan” por sí solos a ejecutar una determinada tarea a partir del análisis de un conjunto de datos, sin necesidad de ser programados específicamente para ello. Por eso a algunos entendidos en la materia les chirría el “abuso” del término Inteligencia Artificial. Otras aplicaciones emplean el Deep Learning o Aprendizaje Profundo un subconjunto dentro del ML que no utiliza técnicas estadísticas, sino que se inspira en el funcionamiento del cerebro humano, utilizando para ello redes neuronales artificiales, cuyo elemento básico es una “neurona artificial” que se conoce con el nombre de perceptrón.

Representación gráfica de como «encajan» la Inteligencia Artificial, el Machine Learning y el Deep Learning
Representación gráfica de como «encajan» Deep Learning, Machine Learning e Inteligencia Artificial

Métodos de Aprendizaje Automático más habituales

Para el objetivo de este artículo, creo que el concepto de Deep Learning resulta demasiado complejo y/o abstracto, por lo que si me lo permitís, me lo guardo como tema para un posible futuro post y nos centraremos en el Aprendizaje Automático “clásico”.

Los tres principales métodos de Aprendizaje Automático
Los tres principales métodos de Aprendizaje Automático

Aprendizaje Supervisado (Supervised Learning)

En el Aprendizaje Supervisado, los algoritmos reciben un conjunto de datos de entrenamiento, en los que los resultados están convenientemente “etiquetados”. A través del análisis de estos datos de entrenamiento, el algoritmo es capaz de “aprender” por sí mismo las reglas que le permitirán predecir el resultado cuando lo alimentemos con un dato de entrada sin etiquetar.

Pongamos un ejemplo muy sencillo: queremos utilizar una IA para que reconozca una determinada figura (un cuadrado). Para entrenarla, le daríamos una gran cantidad de imágenes de cuadrados de distintos tamaños, colores y en distintos entornos, etiquetadas convenientemente como “CUADRADO” y además imágenes de otras figuras, también etiquetadas “CÍRCULO”, “TRIÁNGULO”, etc o para hacerlo más fácil, como “NO CUADRADO”. 

Tras “estudiar” ese banco de imágenes (datos de entrenamiento), la IA aprenderá que para detectar un cuadrado, el color, el tamaño o el fondo de la imagen resultan indiferentes, lo que define a un cuadrado son “4 lados de igual longitud y que son paralelos dos a dos”. Cuando le llegue una nueva imagen sin etiquetar (un nuevo input que nunca antes había “visto”), la IA verificará si cumple con esta “definición de cuadrado” que descubrió en los datos de entrenamiento y en consecuencia ofrecerá su resultado.

Las principales aplicaciones del Aprendizaje Supervisado son aquellas que implican Clasificaciones (asignación de muestras a una determinada categoría predefinida) y/o Regresiones (predicción/estimación de valores numéricos).

Aprendizaje No Supervisado (Unsupervised Learning)

A diferencia del método anterior, en este caso no hay datos de entrenamiento etiquetados, y es que a menudo, ni siquiera se sabe qué es lo que se está buscando en los datos. Sólo conocemos los datos de entrada, pero no existen datos de salida que correspondan a un determinado input. Por tanto, sólo podemos describir la estructura de los datos, para intentar encontrar algún tipo de organización que simplifique el análisis. Por ello, tienen un carácter exploratorio. El objetivo del Aprendizaje No Supervisado es determinar relaciones de similitud, diferencia o asociaciones entre los datos de entrada. 

Un ejemplo en de aplicación, podría ser saber más sobre la audiencia de una web o de los usuarios de una app, utilizando la información recolectada acerca de ellos (rango de edad, sexo, dispositivo empleado, ubicación, etc) y dejar que la IA detecte diversas características que tienen en común. Esta sería una aplicación de clustering, buscar agrupamientos basados en similitudes, pero nada garantiza que éstos agrupamientos tengan algún significado o utilidad. En ocasiones, al explorar los datos sin un objetivo definido, se pueden encontrar correlaciones espúreas curiosas, pero poco prácticas.
Otra aplicación típica es la detección de anomalías, para detectar aquellos datos que “se salen de la tónica general”.

Aprendizaje por Refuerzo (Reinforcement Learning)

En este tipo de aprendizaje se enseñan al algoritmo unas “reglas de juego” y se le asigna un objetivo a maximizar o minimizar. 

En el Aprendizaje por Refuerzo se pretende mejorar la respuesta del modelo usando un proceso de retroalimentación. El algoritmo aprende observando el mundo que le rodea; su información de entrada es el feedback o retroalimentación que obtiene del mundo exterior como respuesta a sus acciones. Nuestro sistema aprendiz es un “agente autónomo” que deberá explorar “un espacio” desconocido y determinar las acciones a llevar a cabo mediante prueba y error. De esta manera aprende por sí mismo -obteniendo recompensas (si se acerca a su objetivo) y penalizaciones (si se aleja de él) – la forma óptima de lograr el objetivo que le hemos fijado. Este video de Youtube lo explica bastante bien.

No es un tipo de aprendizaje supervisado, porque no se basa estrictamente en un conjunto de datos  etiquetados, sino en la monitorización de la respuesta a las acciones tomadas. Tampoco es un aprendizaje no supervisado, ya que, cuando modelamos a nuestro “aprendiz” sabemos de antemano cuál es la recompensa esperada.  

La siguiente imagen resume un poco todo lo que hemos visto sobre Machine Learning / Aprendizaje Automático. Sus tipos, sus aplicaciones generales según los tipos de algoritmos empleados y algunas de sus aplicaciones prácticas más típicas y que seguro que usamos más de una vez en nuestro día a día.

Las 3 grandes categorías del Aprendizaje Automático, con sus aplicaciones típicas
Tipos de Machine Learning, clasificación de sus algoritmos según su uso y aplicaciones típicas

Hasta aquí el post que espero que os haya parecido interesante y divulgativo, si bien no he querido hacerlo demasiado denso. Con estas pequeñas nociones creo que podréis entender cómo funcionan algunas de las aplicaciones actuales de la IA y seguir sin problemas otros artículos que tengo en proyecto sobre este mismo tema.

Víctor D. Parra

Hasta ahora, 1 comentario

Víctor D. Parra Publicado el14:21 - 24 agosto 2020

Dejo aquí el enlace al artículo «An Introduction to Industrial Artificial Intelligence» del número de Julio/Agosto de 2020 de la revista INTECH que edita ISA, organización con la que colaboro habitualmente.

En el artículo se desarrollan un poco más algunos de los aspectos que comento en el post y se ofrecen algunos ejemplos de aplicaciones prácticas de la IA en la Industria.
https://www.isa.org/intech-home/2020/july-august-2020/features/an-introduction-to-industrial-artificial-intellige

Deja un comentario