Veo veo

Veo veo

TXT

Laura Perez Cerrato

IMG

Enzo Fuentes Bonilla

¿Pueden las máquinas aprender a pintar? ¿Sueñan los androides con ovejas post impresionistas?

¿Pueden las máquinas aprender a pintar? ¿Sueñan los androides con ovejas post impresionistas?

Veo veo

Hace algún tiempo comenzaron a flotar por internet imágenes muy particulares, tanto que le dieron lugar al nacimiento de una nueva forma de arte, el ‘Inceptionismo’, al que algunos de nosotros nos referimos como ‘Google de pepa’.

128.-Machine-learning-A

Estas imágenes fueron generadas utilizando la red neuronal artificial que el gigante megalómano (esperemos por favor que benigno) emplea para ‘buscar por imágenes’. Ahora, a todos nos salta una ceja levantada en duda cuando leemos ‘red neuronal artificial’, así que capaz es un gran momento para tratar de entender qué tanto humo contiene esa construcción. Resulta que una red neuronal artificial es exactamente lo que que el nombre indica, un montón de neuronas conectadas, con la salvedad de que esas neuronas son de mentirita y que viven en una compu, al igual que las conexiones entre sí.

128.-Machine-learning-E.jpg

Lo hermoso es que esta red neuronal artificial se especializa en reconocer objetos o, todavía más interesante, en acercarse muy de a poquito a la idea de generar abstracciones conceptuales que le permitan categorizar objetos, tocándole la puerta a la posibilidad de comprender qué es una silla, independientemente de qué tipo de silla sea. Una especie de problema de los universales metafísicos de sillas ideales. El problema es que esto abre otra discusión: ¿qué hace que una silla sea una silla? Google reconoce a partir de estructura y no de función. Ahí está la parte ‘semántica’ (o algo así) que no logramos resolver vía Inteligencia Artificial (por el momento).

Lo que hace Google es encontrar patrones entre muchas sillas existentes y luego usar eso para identificar (que es lo mismo que hace con el lenguaje). Pero, por más extraño que esto suene ¿puede adelantarse especulativamente a una silla que no guarda parecido con una silla existente? No tenemos idea, pero eso no evita seguir pegándole a la puerta de entender, a ver si se cae.

Para intentarlo, el algoritmo toma imágenes de referencia de los objetos que quiere identificar y les aplica diferentes filtros (como los de Instagram pero menos útiles en términos de selfie), que identifican diferentes rasgos o características de la imagen. Las ‘capas’ de neuronas más cercanas a las que reciben la imagen aplican filtros más gruesos que detectan cosas como patrones o formas generales, mientras que las más lejanas usan filtros más finos que encuentran formas detalladas, específicas. A medida que la imagen avanza a través de la red, va perdiendo la información brindada originalmente por sus píxeles para ganar información referente a su contenido, y al que esté pensando ‘uh, eso es como pensar’, y sí, un poquito sí. También, un poquito, no. Pero no dejemos pasar que un poquito sí, y eso es LOQUÍSIMO.

128.-Machine-learning-Cjpg

Para entender más cómo funciona esto, es necesario pensar en las imágenes como matrices (arreglos de números, tablas en las que cada celda tiene un valor numérico y que, en el caso de las imágenes, representa el color del pixel de ubicación correspondiente) y en los filtros como operaciones con ellas: o sea, si yo fuese una neurona, a mí me llegaría una matriz que representaría la imagen que quiero analizar, y yo haría una cuenta en la que dicha matriz estaría involucrada (como, por ejemplo, multiplicar cada numerito de la matriz por cinco), siendo el resultado de esa cuenta lo que yo le contaría a las otras neuronas. O sea que capa a capa transformo la información tratando de alejarme de los particulares para ir encontrando los generales. Dejo los puntos y voy buscando el patrón que los une, eso que los define.

Pero como para los pibes de Google esto no era suficiente, lo que hicieron fue, literalmente, invertir el proceso y pedirle a la red que tome imágenes y las transforme en otras en las que se vean con más intensidad patrones que estaban presentes en la original. Al darle una foto de un cielo nublado, la red (como nosotros a veces) buscaba formas en las nubes y devolvía una imagen en la que eran mucho más evidentes.

128.-Machine-learning-B

Y como todavía había espacio para limarla, unos alemanes le pidieron a su red que genere imágenes que produjeran actividad similar a la que producían las de los pintores en las capas inferiores de la red, pero parecida a la foto original en las capas superiores. O sea, le pidieron que ‘aprendiera’ qué era lo que hacía que un Van Gogh fuese un Van gogh y le pidieron que ‘pintara’ un Van Gogh a partir de cualquier cosa (y sí, voy a seguir usando comillas hasta que tengamos un mejor lenguaje para esto, que medio que lo estamos necesitando urgente). Aunque, estrictamente, las redes no tenían ni idea de qué hacía a Van Gogh ser Van Gogh, eso se lo dijeron los científicos. Ni siquiera sabían, necesariamente, distinguir entre Van Gogh y Picasso. Nada más sabían que había dos imágenes y que debían armar una nueva que tenga la pinta de una de ellas en las capas inferiores y la pinta de la otra en las superiores. Y las redes pudieron.

128.-Machine-learning-D

Al ver esto, es casi imposible no pensar en cómo las computadoras parecen estar aprendiendo a hacer cosas que nosotros hacemos pero que apenas empezamos a entender cómo hacemos, lo que, inicialmente, nos huele un poco raro: las computadoras son máquinas tontas, son como cajas llenas de burócratas que agarran la información que les damos, revisan un libro de reglas que dice qué tienen que hacer en cada caso, y hacen exactamente eso, nada más. Nada menos. No piensan, no son capaces de tomar decisiones por sí mismas y menos de aprender.

Por supuesto que no, ¿no? ¿O sí?

La inteligencia artificial es una disciplina que se dedica, justamente, a resolver preguntas como esta (aunque la misma gente que labura en IA tiende a evitar el término ‘inteligencia’ porque, bueh, todos los problemas semánticos que venimos teniendo con la nota). ¿Es posible que una computadora sea inteligente como un ser humano, que ‘piense’? ¿Es posible que una computadora aprenda? ¿Cómo? y, peor ¿qué es exactamente ‘aprender’?

La primera de esas preguntas la hizo el inmenso Alan Turing hace unos sesenta años, y sugirió el ahora llamado Test de Turing para determinar si una computadora era inteligente o no. Propuso que se pusiese a un examinador humano a ‘chatear’ con dos sujetos, uno de ellos humano y el otro, una computadora. Si el examinador era incapaz de determinar cuál de los sujetos era humano luego de un tiempo razonable, se consideraría que la computadora había superado el test, por lo que sería considerada inteligente.

Ahora, vale notar un aspecto fundamental de este test: cualquier computadora capaz de imitar a un humano, entienda lo que está haciendo o no, sería capaz de superarlo. Consideremos, volviendo a la analogía de humanos dentro de cajas, una ‘computadora’ compuesta literalmente por una caja de cartón enorme y cerrada dentro de la cual hay una persona que conoce únicamente el idioma inglés, y un manual para agarrar tarjetas con letras chinas en cierto orden y reordenarlas, obteniendo siempre un resultado coherente con el orden original (ojo que esta idea de meter gente en cajas no es mía, es de John Searle). La caja tiene una ranura que permite meter y sacar tarjetas (y agujeritos para respirar, porque necesitamos que la persona esté viva para continuar con el experimento y mechar una referencia al Principito que siempre garpa). Ahora, supongamos que se somete a esta computadora al Test de Turing, siendo el examinador y el otro sujeto personas que conocen únicamente el idioma chino. Tanto al sujeto como a la computadora se les facilita lo que dice el examinador usando tarjetas, y ellos responden de la misma forma.

Si las instrucciones del manual son lo suficientemente buenas, el examinador probablemente no va a poder darse cuenta de cuál de los dos sujetos es una computadora, por lo que nuestra caja con esclavo incluido será considerada ‘inteligente’. Ahora, mirando lo que dijimos antes, podemos ver que la persona no entiende nada de lo que está haciendo. No sabe leer ni escribir chino, por lo que no tiene forma de saber lo que le dice el examinador mediante las tarjetas ni lo que le está respondiendo cuando las reordena; solamente sabe que alguien lo encerró en una caja y que cuando salga lo va a re cagar a trompadas. ¿Considerarían ustedes, sabiendo esto, que nuestra computadora es inteligente? En una de esas, ni siquiera es relevante preguntarse si es inteligente. Dijkstra decía que preguntarse si una máquina puede pensar es igual de relevante que preguntarse si un submarino puede nadar o si Chano puede tocar el piano, aunque esa última entendemos que es válida pero apócrifa.

La discusión que les presento es una discusión aún abierta, y es la de si la mente humana es o no un proceso computacional. Es decir, si es posible describir el proceso mental de un ser humano en su totalidad de forma que este pueda ser llevado a cabo por computadoras (más allá de las limitaciones físicas de memoria y capacidad de procesamiento).

El experimento que llevaron a cabo los muchachos de Google es sorprendente porque nos muestra que el ‘entendimiento’ de lo que es una banana, para la red neuronal artificial en cuestión, es más que suficiente para mostrarnos una banana además de, sencillamente, reconocerla. Podríamos decir que la red sabe lo que es una banana, o, peor, que puede aprender, con ayuda, lo que hace que un Van Gogh sea un Van Gogh.

O, por lo menos, si le pedís que te muestre una banana y un Van Gogh, lo hace como cualquier persona inteligente que sabe lo que es una banana. Para algunos humanos eso es suficiente, para otros, no.
Probablemente, lo más loco de todo sea pensar cómo le hacemos esa pregunta a una red neuronal y, si llegáramos a encontrar la forma de hacer la pregunta, qué respondería.

128.-Machine-learning-f 128.-Machine-learning-G 128.-Machine-learning-h

Una cosita más: Google se copó y liberó el código usado para generar estas imágenes. Está en este repositorio de GitHub. También hay varios sitios en internet a los que uno puede subir imágenes para generar otras nuevas.

Gracias, Valentín Muro y Esteban Siravegna, por la vista y corrección de la nota.