Como empresa especializada desde hace casi 25 años en Inteligencia Artificial, en esta entrada del blog vamos a intentar explicar algunos conceptos sobre Inteligencia Artificial y Ciencia de Datos, y cómo la segunda no es la única posibilidad de desarrollo de la primera.

Comenzaremos con la ciencia de los datos. Big Data, Data Mining, etc. Aunque estos tres términos en realidad no son del todo equivalentes, a los efectos de esta explicación diremos que, básicamente, todos ellos consisten en analizar conjuntos de datos más o menos grandes, y extraer de ese análisis varios tipos de resultados, los más importantes de los cuales son patrones y modelos.

Los análisis de datos también pueden generar otros resultados, como por ejemplo alertas, recomendaciones al usuario, o incluso podrían llegar a activar un actuador, como los frenos de un coche con un sistema de conducción automática. Estos aspectos más operacionales son los frutos de los esfuerzos de modelización o aprendizaje y son el principal aspecto de la definición que daban los analistas de mercado al término «análisis predictivo», es decir, tratar de orientar el análisis al futuro, pero con resultados tangibles más allá del mero ejercicio analítico.

Sobre esto volveremos más adelante a propósito de la Inteligencia Artificial. De momento, volvemos a los dos conceptos clave de patrón y modelo.

Un patrón (o feature en inglés) dentro de un conjunto dado de datos es una relación que se encuentra entre algunos de ellos. Tenemos la capacidad de encontrar algo, ese patrón o feature, que es relevante para una investigación o problema que estemos estudiando, ya que los datos no se estudian en abstracto normalmente, sino con algún tipo de finalidad. La finalidad del análisis de datos suele ser dar respuesta a algún problema que nos hayamos planteado, y encontrar algún tipo de relación relevante o, al menos, las variables de entrada adecuadas, como una de las claves para poder crear un sistema que sirva para algo.

Es habitual citar el ejemplo de los supermercados que analizaron la venta de productos y encontraron que aquellas personas que compraban pañales para bebés también muy habitualmente compraban cerveza. Esto es un análisis puramente matemático, basado en estadística y probabilidad (estocástica), y que puede realizarse de forma directa incluso con una herramienta como Excel de Microsoft. Este tipo de relación puede resultar interesante, y supone un conocimiento empírico nuevo, pero realmente no parece que sea muy útil. En el caso anterior, por ejemplo, ¿podría pensarse que colocar cervezas cerca de los pañales hará que aumenten las ventas de las cervezas? Seguramente no.

Un modelo es un paso más, en el sentido de que es realmente lo que casa las entradas (datos de partida organizados en variables que codifican features o patrones) con el objetivo a estudiar. Es una relación entre unas variables y un resultado interesante. Pero no es una relación de causalidad. En algunos casos específicos (pocos) se trata de modelar explícitamente una relación de causalidad. Los modelos de causalidad son complejos. Es más sencillo ver que ciertas circunstancias se dan conjuntamente (tienen una cierta relación) que demostrar con un modelo matemático que una causa la otra. Muchas veces, en términos prácticos, nos conformamos con ver que la relación existe y mentalmente simplificamos y aceptamos una cierta causalidad implícita, aunque no la hayamos establecido con un estudio más complejo.

Por ejemplo: podemos detectar que existe la relación entre que ciertos clientes se hayan quejado el mes anterior por el canal de atención telefónica y que el mes siguiente se den de baja. Ambos hechos pueden estar relacionados, pero eso no significa que el hecho de llamar al centro de atención telefónica cabreado sea necesariamente la causa de un abandono: podrían ser muchas otras razones (muerte natural, otras ofertas, etc.). Cada cliente sería algo distinto.

Desde luego para poder demostrar que simplemente existe una relación, y mucho más para demostrar causalidad, es posible que se necesite estudiar un número muy elevado de casos o de experimentos. Un ejemplo de experimento pueden ser las pruebas de Testing A/B, cambiando algunos parámetros y observando los resultados.

En todo caso, si lo que se pregunta es si con una gran cantidad de datos se puede establecer causalidad con certeza absoluta, la respuesta al menos en estos momentos es que no. Puede suceder que una gran cantidad de datos puede ayudarnos a idear un modelo que sugiera una relación de causalidad, pero lo mismo podría suceder en algunos casos con una pequeña cantidad de datos. Una gran cantidad de datos tal que todos ellos satisfagan nuestro modelo aumentará nuestra confianza en el mismo, pero en este grado de confianza siempre habrá un elemento subjetivo y un cierto componente de duda sobre la veracidad del modelo.

Resumiendo: una gran cantidad de datos no tiene por qué ser muy útil en la creación de un nuevo modelo, aunque sí para mejorar nuestra confianza en un modelo existente (o descartarlo).

¿Por qué se suele relacionar el Big Data con la Inteligencia Artificial?

La Inteligencia Artificial es una disciplina que tiene como objetivo replicar aspectos del pensamiento humano mediante hardware y software. Por ejemplo, hay programas informáticos que “saben” jugar al ajedrez muy bien. ¿Significa esto que son inteligentes? Ciertamente no: solamente significa que “saben” jugar al ajedrez muy bien. Y nada más que eso. En realidad, no “saben” jugar al ajedrez: un programa de ajedrez recibe unas entradas y produce unas salidas. El significado de “partida de ajedrez” a una secuencia de dichas entradas/salidas se lo otorgamos los espectadores.

En cualquier caso, este es un ejemplo de una Inteligencia Artificial específica; en este caso, específica del ajedrez.

La Inteligencia Artificial es un campo que está avanzando deprisa, y cada vez hay más cosas que parecían exclusivas de la especie humana y que pueden ser hechas muy bien por programas informáticos, esto es, por inteligencias artificiales específicas. Incluso también puede suceder que algunos paquetes de software sean mejores que los humanos en algunas de esas tareas que parecían exclusivamente humanas. Esto de ninguna manera significa que los ordenadores (o robots) son más inteligentes que las personas: sólo significa que “saben” hacer muy bien esa tarea específica hasta el punto de que consiguen mejores resultados que los humanos. Pero únicamente en esa tarea específica, y en ninguna otra cosa más.

¿Cómo funciona la Inteligencia Artificial? ¿Y el aprendizaje automático? Hay dos tipos de estrategias: las redes neuronales y la computación de un modelo previamente conocido.

En estos momentos, y gracias al aumento en la capacidad de cálculo, se están utilizando mucho, y con gran éxito, las redes neuronales. Las redes neuronales básicamente consisten en “enseñar” a un software una cantidad suficiente de datos etiquetados que consiga que ese software sea capaz de “etiquetar” correctamente y de manera autónoma un dato nuevo con un índice de acierto razonablemente alto. Cuanto mayor sea el índice de acierto, mayor será la fiabilidad de esa red neuronal para la tarea encomendada. A este acercamiento también suele conocérsele como “aprendizaje supervisado”, porque se produce al aportar información de cierta manera a la máquina. Las redes neuronales, en realidad, están basadas en un procedimiento matemático que se parece bastante a cómo la ciencia de los datos encuentra patrones y modelos.

¿Cómo puede una inteligencia artificial específica alcanzar un grado de “conocimiento” interesante sobre un problema determinado? Muchos creen que esto es posible gracias a la sucesiva incorporación de un número muy elevado de capas superpuestas al análisis (Deep Learning) que necesitan, en consecuencia, un número muy elevado de datos para poder operar (Big Data). Con esto, se conseguiría que la máquina haya virtualmente “aprendido” (Machine Learning). Aprendizaje automático.

Para aplicar esta metodología de Machine Learning hace falta un proceso de cálculo muy grande. Y una gran cantidad de datos etiquetados de forma correcta. Por eso se dice mucho actualmente que los datos son “el oro del futuro”. En realidad, los datos no son valiosos en sí mismos: lo son en todo caso si y sólo si están etiquetados correctamente, y ese etiquetado tiene un valor. De lo contrario, los datos no son más que ruido. Muchas empresas que contratan los servicios de especialistas en Big Data para obtener supuesto conocimiento no podrán conseguirlo nunca porque la materia prima que quieren utilizar no son datos etiquetados con etiquetas valiosas, sino simplemente montañas de ruido.

Lo primero que debemos tener, por tanto, para intentar conseguir “conocimiento” a partir de datos es que los datos que utilicemos como materia prima para “enseñar” a las máquinas sean realmente datos etiquetados con etiquetas interesantes para nosotros, y no montañas de ruido.

Ahora bien, en el mejor de los mundos posibles, en el que contemos con una cantidad realmente muy grande de datos (Big Data), bien etiquetados con etiquetas interesantes, que sean procesados por ordenadores con una muy alta potencia de cómputo a través de un número muy elevado de análisis (Deep Learning), ¿tendremos algo valioso? Sí, y esa es precisamente el valor de empresas que son capaces de reunir todos los elementos descritos (Google, Amazon, etc.). Pero este “algo valioso” que se obtiene, ¿es realmente “conocimiento”? La máquina ¿habrá “aprendido”?

Para responder a esta pregunta, lo primero que hay que indicar es que este tipo de procedimientos solamente se dan para tareas específicas. En muchas de ellas, una máquina puede alcanzar un “conocimiento” específico. Sin embargo, este conocimiento tiene un acercamiento asintótico a la verdad (entendida como una adecuación entre una afirmación y la realidad), y nunca será capaz de replicarla con exactitud.

Por lo demás, otro de los problemas que tiene este procedimiento es que es “ciego”: el patrón que ha utilizado el sistema para aprender resulta una caja negra. No podemos saber “cómo” es que una máquina “sabe” algo. Lo único que podemos hacer es validar ese “conocimiento”. La validación inicialmente será para dar por bueno el “aprendizaje” de la máquina y, posteriormente, será para confirmar que después de un uso elevado, el criterio desconocido que utiliza la máquina sigue siendo válido. Cada cierto nivel de uso nuevo, deberíamos volver a evaluar el conocimiento de la máquina, como en un calibrado.

Frente a la pura caja negra, se está trabajando últimamente en técnicas que permiten bucear entre los cálculos efectuados como para permitir extraer una serie de datos que pudieran ser interpretados como una posible «explicación» de lo aprendido. Pero, de momento, este es un campo de futuro dentro de la Inteligencia Artificial, aunque se están produciendo avances continuamente.

Hay otra estrategia para el aprendizaje automático distinta del aprendizaje supervisado, y es la del aprendizaje NO supervisado. Al aprendizaje no supervisado también se le llama muchas veces “reinforcement learning”, aunque no son exactamente lo mismo porque hay técnicas de aprendizaje no supervisado que no se encuadran dentro del reinforcement learning. En el caso del aprendizaje no supervisado, no hay un conocimiento a priori, y por eso este aprendizaje no puede ser “calibrado” sino solamente en función de su utilidad y validez en pruebas para resolver problemas de la vida real bajo ciertas circunstancias.

En el aprendizaje no supervisado, el sistema recibe como input una serie de reglas, con las que puede activar variables aleatorias de forma sistemática y repetida, hasta conseguir optimizar las acciones con una finalidad concreta.

Un buen ejemplo para distinguir el aprendizaje supervisado y el no supervisado es el que se ha seguido para “enseñar” a los ordenadores a “jugar al ajedrez”. Con el aprendizaje supervisado, la estrategia que se sigue es aportar al sistema un número muy elevado de partidas jugadas, así como su desarrollo y desenlace. Gracias a esa información, un software puede identificar dentro de una partida cuáles son los movimientos mejores, esto es, cuáles son los movimientos que le acercarían a la victoria en el juego. En el caso del aprendizaje no supervisado (reinforcement learning), la estrategia es darle al sistema las reglas del ajedrez, así como información sobre cuándo se produce la victoria, y dejar al sistema que, por sí solo, y sin información adicional de ningún tipo, “juegue” muchísimas partidas distintas y, de esa manera, sea capaz de inferir en cada momento la mejor jugada posible.

En el caso concreto de juegos como el ajedrez o el Go, se ha demostrado la superioridad de resultados del aprendizaje no supervisado frente al aprendizaje supervisado. El problema que tiene esta estrategia es que puede darse únicamente en situaciones donde las “reglas del juego” son conocidas en su totalidad. Y esto es algo que no sucede habitualmente en la realidad.

La magia en el caso de la victoria de Deep Mind de Google en el juego Go, que ha tenido tanta repercusión, está fundamentalmente en la técnica de reinforcement learning utilizada, pero también en los detalles de su aplicación: ¿cómo se predice cuál es la posición del oponente más probable?, ¿cómo se asigna una puntuación a las posibles posiciones del juego para guiar el proceso? De todas formas, y viendo siempre la aplicación práctica, lo interesante de Deep Mind de Google es que están extrayendo parte de la lógica del programa que utilizaron para vencer en el Go, y lo están aplicando a otros problemas, como por ejemplo el ahorro de energía en sus centros de servidores, que es un problema económico enorme para ellos.

¿Es posible portar este planteamiento a otros problemas? Esta es la pregunta realmente interesante. ¿A qué tipo de problemas?

Pero volvamos a la segunda estrategia que puede utilizar la Inteligencia Artificial: hacer computables modelos de conocimiento dados.

Cuando disponemos de un modelo de conocimiento sobre un aspecto específico, esto es, cuando hay una serie de datos que nos dan una información no de correlación sino de causalidad, podemos plantearnos la posibilidad de hacer computable el modelo. Hay algunos modelos de conocimiento humano que son computables y otros modelos que no lo son. Distinguirlos es probablemente la tarea más importante para la Inteligencia Artificial desde un punto de vista cualitativo.

Cuando un modelo de conocimiento es computable, es porque hay un conjunto completo y suficiente de reglas o procedimientos que son susceptibles de ser computables. Conociendo ese conjunto completo y suficiente de reglas o procedimientos susceptibles de ser computables podemos ser capaces de hacer también computable un modelo de conocimiento.

Esta segunda estrategia de la Inteligencia Artificial no está basada, como la anterior, en la utilización de una grandísima potencia de cálculo, ni en la necesidad de contar con una grandísima cantidad de datos etiquetados con unas etiquetas interesantes. Su materia prima es otra: el conocimiento previo sistematizado en un modelo. El ámbito del conocimiento humano que opera mediante modelos de conocimiento probados se llama ciencia. El método científico se caracteriza precisamente porque sus conocimientos están “probados”. Al menos hasta que se detecten anomalías en ellos y surja un paradigma nuevo.

Esta estrategia de la Inteligencia Artificial es mucho más interesante que la primera, porque su acercamiento a la realidad no es asintótico, sino que el conocimiento es exacto, en la medida en que lo sea el modelo de conocimiento en el que se basa. En el caso de que en un “calibrado” de los resultados de esta estrategia se detecten errores, lo que habrá que volver a analizar y validar no es el procedimiento de computación, sino el modelo previo utilizado (el conocimiento científico). Con eso se ayudará a que la ciencia sea cada vez más avanzada. Así, esta segunda estrategia de la Inteligencia Artificial supone un instrumento idóneo para el avance del conocimiento científico.

 

 

Fotografía de Pilar Acero López, extraída del Banco de Imágenes y Sonidos del INTEF.