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.
No hay comentarios:
Publicar un comentario