Neurociencias, IA, arte

Juan Manuel Gentili
Medium en español
Published in
11 min readOct 12, 2016

1. ¿Qué es la Inteligencia Artificial?

Los avances en el campo de la neurociencia, descritos anteriormente, tiene como objetivo principal el de conocer más sobre cómo pensamos nosotros. Cómo razonamos frente a determinados estímulos del contexto. Qué fallas cognitivas pueden existir en este proceso. O qué comportamientos o patrones se observan mientras realizamos determinada tarea, como por ejemplo la de crear arte.

Estos estudios también son utilizados por otras ramas de la ciencia. Una de ellas es la llamada Inteligencia Artificial (IA). Tiene como fin tomar dichos estudios y reproducirlos, recrearlos, en máquinas o computadoras.

Ordenando los conceptos: primero, entendemos qué es lo que pasa dentro del cerebro humano al pensar. Luego, adaptamos eso que aprendimos para que funcione en una computadora. De esta manera, logramos conocimientos o procesos aparentemente humanos en dispositivos artificiales. Y no es sólo una tarea de laboratorio. Empleamos la inteligencia artificial en muchos ámbitos de la vida moderna: cuando mirás una foto en Facebook en la que aparece un amigo que no se encuentra etiquetado, y la red social te pregunta si querés etiquetarlo, la Inteligencia Artificial está presente con su magia. Cuando estás aburrido y te ponés a jugar al ajedrez con la máquina, nuestra amiga IA también aparece para hacerte pasar el rato (y de paso ganarte).

2. Sobre cómo aprenden las computadoras

2.1. Arquitectura de Von Neumann

Los inventos humanos, en la mayoría de los casos, se inspiran en algún punto con la naturaleza. Un ejemplo claro es el avión: la copia de un ave, tanto estética como funcionalmente. El caso de las computadoras no es excepción. Los primeros diagramas que esquematizan su estructura fueron pensados tomando como base al hombre mismo. Existe un famoso diagrama que enseñan en todos los cursos y carreras relacionadas con la informática, y es el Diagrama o arquitectura de Von Neumann. Su nombre hace honor al matemático húngaro-estadounidense John Von Neumann.¹ No es mi intención hacer densa la charla, así que sólo me voy a limitar a decir que lo que Neumann quería demostrar es que las personas percibimos cosas en nuestro entorno, las procesamos en nuestro cerebro, y emitimos salidas o respuestas que modifican ese entorno. Cuando percibimos que el cielo está nublado, incorporamos esa información, la analizamos, y optamos por salir a la calle con paraguas.

Neumann, por el 1945, necesitaba una máquina que pueda hacer más o menos lo mismo. La idea, en ese momento, era que las computadoras realizaran las tareas rutinarias y mecánicas que los seres humanos odian (operaciones matemáticas para libros contables, esas cosas). Tomó un papel y dibujó tres cuadrados: al primero, le puso de nombre «Entrada», al segundo, «Computadora», y al tercero, «Salida». Quedó algo así:

Extraído de la charla TED de Fei-Fei Li: «How we’re teaching computers to understand pictures».

Y es fácil interpretarlo. La computadora recibe datos del exterior, como por ejemplo dos números, los procesa, realizando una o varias operaciones (una suma, si se quiere), y luego muestra el resultado de su intervención. Así de simple como parece, este esquema sentó las bases de la informática.

2.2. Redes neuronales y Big Data: materia prima de la IA

Vamos a hablar un poco de lo que pasa adentro de ese cuadrado llamado «Computadora», y más precisamente en la actualidad, para mecharlo con la Inteligencia Artificial.

Ese cuadrado está formado por un conjunto de cables y plaquetas. Pero así, sin más, no puede hacer absolutamente nada de lo que acabamos de decir. Necesitamos introducirle comportamientos, maneras de pensar: esto se logra por medio de la programación. La disciplina consiste en decirle qué hacer a la computadora, para que ella lo repita mecánicamente un sinnúmero de veces. Cada vez que instalamos o creamos un programa en nuestra notebook o smartphone, esa notebook —o ese smartphone— es capaz de hacer más cantidad de tareas. Pero siempre repitiendo lo que el programador le dice que haga.

Hace unos años, con el surgimiento de la Inteligencia Artificial, la cosa cambió un poco. Se descubrió que la computadora no sólo puede repetir comportamientos de manera mecánica, como un esclavo que cumple órdenes de su señor, sino que puede aprender por sí misma. Y los resultados están a la vista: autos que se manejan solos, sistemas de reconocimiento de rostros, simuladores de médicos, etc.

Para formalizar un poco el tema, una definición de la IA:

El término «inteligencia artificial» se aplica cuando una máquina imita las funciones «cognitivas» que los humanos asocian con otras mentes humanas, como por ejemplo: «aprender» y «resolver problemas». —Wikipedia

Este salto impresionante en el ámbito de la computación se puede explicar —rápidamente, a modo de difusión— por medio de dos conceptos: Redes neuronales y Big Data.

2.2.1. Redes neuronales: una copia del cerebro humano

Se llama «red neuronal» a un procedimiento artificial, ejecutado en una computadora, que imita el proceder del cerebro de los seres vivos, ya sean humanos o animales.

Esta es la rama de la Inteligencia Artificial que hace uso de los grandes progresos en neurociencia, y trata de aplicarlos a las máquinas. En general, se realizan experimentos con el cerebro, se parametrizan comportamientos, y esta parametrización permite la reproducción de dicho comportamiento en otro entorno.

Extraído de la charla TED de Fei-Fei Li: «How we’re teaching computers to understand pictures».

Una red neuronal consiste en un conjunto de «neuronas» (que en la imagen se visualizan como círculos). Estas neuronas están conectadas entre ellas, y cada una cumple con el diagrama de Von Neumann: tienen una o varias entradas a las que le realizan un determinado procesamiento que luego devuelven a modo de salida. Esta salida es tomada como entrada por otra neurona, que realiza el mismo procedimiento, y así sucesivamente, hasta llegar a la salida general de la red, que es lo que realmente interesa.

Extraído de la charla TED de Fei-Fei Li: «How we’re teaching computers to understand pictures».

2.2.2. Big Data: aprender de la experiencia

¿Se acuerdan de los disquetes? Algunos de ellos tenían una capacidad de 1,44 MB, lo que es equivalente a más o menos 1474 KB. El archivo de Word en el que estoy escribiendo esta charla pesa, por ahora, 786 KB. Es decir, un disquete alcanzaba para un archivo de Word actual, y chirola.

Hoy en día se manejan Terabytes de información (1 TB = 1.000 GB = 1.000.000 MB = 1.000.000.000 KB). Las bases de datos de las empresas son gigantescas. Facebook, Google, y el resto de los gigantes de Sillicon Valley compran hectáreas en el Polo Norte para construir sus repositorios de datos y poder mantenerlos refrigerados. Allá, a un par de miles de kilómetros, están guardadas nuestras fotos de perfil en las redes sociales, o el último tuit que publicamos.

El concepto de Big Data se relaciona con todo esto: son inmensas cantidades de datos. Pero, ¿qué tienen que ver con la Inteligencia Artificial? La idea es simple: sirven para entrenar a las redes neuronales. Éstas últimas, dijimos, no repiten las instrucciones mecánicamente como un programa normal, sino que aprenden. ¿Y cómo se aprende? Por medio de la experiencia. Por medio de la prueba y el error. Entonces, las inmensas bases de datos que se resumen con el nombre de Big Data, son las entradas de las redes neuronales, las cuales serán procesadas y transformadas en una respuesta. Si la respuesta es equivocada, se vuelve a intentar. Y, mientras tanto, la red neuronal privilegia los caminos que conducen a respuestas satisfactorias, y desecha los que conducen a respuestas equivocadas. Como los humanos.

Así, aprende.

Ahora vamos a aplicar estos dos conceptos con un ejemplo que mencioné varias veces, y que me pareció el más interesante porque se debe aplicar millones de veces en un día: el sistema de reconocimiento de imágenes. Luego de entenderlo, vamos a realizar una ligera variante sobre él, y ahí se encuentra el punto más importante de la charla.

3. Sí, una computadora sabe que un pájaro es un pájaro: mecanismo de percepción

La idea detrás de un programa reconocedor de imágenes es clara: se trata, simplemente, de convertir imágenes en conceptos. Palabras. Por ejemplo: el programa recibe, como entrada, una imagen de un pájaro, y devuelve como salida la palabra pájaro. Este proceso lleva el nombre de percepción.

Extraído de la charla TED de Blaise Aguera: «How computers are learning to be creative».

Para nosotros, los humanos, la tarea es sencillísima. Pero para que una computadora pueda realizarlo, y realizarlo bien, se requiere un poco más de trabajo.

La resolución del problema consta de tres elementos relacionados: a) una imagen, que funciona como entrada, b) una red neuronal o, más concretamente, un programa que ejecute una red neuronal, y c) una palabra, que funciona como salida.

Hablemos un poco de la imagen. En este caso, y en la mayoría de las resoluciones de problemas, se aplica un decir muy famoso: «divide y vencerás». Todas las imágenes son un conjunto de datos muy complejo, pero podemos dividirla en pedacitos chiquitos y de esta manera poder entender más sobre la totalidad. Esos pedacitos chiquitos son los pixeles. Toda imagen se compone de ellos, y operan análogamente como las células en los seres vivos, es decir, son la unidad fundamental de las imágenes. Entonces, dividimos la imagen del pájaro en cuestión en unos miles de pixeles. Obs.: la cantidad de pixeles depende de la resolución de la imagen.

Podemos aplicar la misma técnica para los dos elementos restantes: la red neuronal puede entenderse como un conjunto de neuronas, y la palabra como un conjunto de letras.

Ahora bien, cada unidad fundamental que compone a nuestros elementos, puede adoptar diversos valores. Un pixel puede ser rojo, amarillo, azul. Una letra puede ser la «a», la «b», la «c». Una red neuronal puede tener muchísimos comportamientos diferentes. Es por esta razón que decidimos tratar a las unidades fundamentales como variables. Y, así, obtenemos esto:

Extraído de la charla TED de Blaise Aguera: «How computers are learning to be creative».

Cada x representa un pixel, cada w una neurona, y cada y una letra. Para simplificar las cosas, podemos englobar todas las x, todas las w y todas las y en tres grandes grupos: X, W y Y.

Estos grupos están relacionados. La manera que empleamos para expresar esa relación es matemática (nuevamente aparece la bruja), o sea, a través de una ecuación. Vamos a suponer que la ecuación en cuestión es una multiplicación, ya que no queremos hacer difícil el proceso:

Extraído de la charla TED de Blaise Aguera: «How computers are learning to be creative».

¿Qué tenemos? Una ecuación con tres variables, que muestra el problema de reconocimiento de imágenes. Una variable es la imagen, otra la red neuronal, otra la palabra resultante. Todos sabemos que, para resolver esta ecuación, se necesita conocer el valor de dos de ellas. Y se cumple en nuestro caso: conocemos la imagen, conocemos la red neuronal, y nuestra incógnita es el concepto, en este caso, la palabra pájaro.

Pareciera que estamos cerca de la solución final, pero falta un detalle. La red neuronal, recién hecha, es como un bebé. Cae al mundo y sabe realizar una limitada cantidad de cosas: llorar, comer, hacer sus necesidades, llorar de nuevo. Con el paso del tiempo, aprende a partir de la experiencia, y aumenta su funcionalidad. Lo mismo pasa con la red neuronal. Si no se le enseña, si no se la entrena, puede arrojar resultados como éste:

Extraído de la charla TED de Blaise Aguera: «How computers are learning to be creative».

La manera de entrenar a las redes neuronales en este tipo de problemas ya la explicamos, y es a partir del segundo concepto sobre Inteligencia Artificial: Big Data.

Tenemos un repositorio enorme, monstruoso, de gatos, perros, personas, herramientas, planetas, y cualquier otra cosa que se nos pueda ocurrir. Ese repositorio es Internet. De ahí se toma la materia prima que permite que un programa diga que un pájaro es un pájaro.

4. Sí, una computadora puede hacer de Picasso: creatividad, el proceso inverso de la percepción

Habíamos dicho que la situación anterior se planteaba en términos de una ecuación con tres variables. Conocíamos dos, y resolvíamos el problema hallando la tercera, que es el concepto. Ahora bien, ¿qué pasa si en vez de poner como incógnita al concepto, ponemos a la imagen? O sea, ¿qué sucede si a la red neuronal le damos como entrada una determinada palabra o frase y dejamos que ella sola construya la imagen que se le ocurre a partir de aquélla? Estamos invirtiendo el problema, e introducimos un nuevo concepto: el de creatividad. En el contexto en el que estamos hablando, consiste en otorgarle herramientas a un programa que simula una red neuronal y observar qué construye sobre ellas.

Extraído de la charla TED de Blaise Aguera: “How computers are learning to be creative”.

Aquí, el ejemplo del pájaro:

Estos experimentos fueron extraídos de una charla del ingeniero que conduce el Sector de Inteligencia Artificial de Google.

Aquí, a una foto del cielo se le aplica una red neuronal que, supongo, tiene el objetivo de reconocer rostros humanos:

Extraído de la charla TED de Blaise Aguera: “How computers are learning to be creative”.

En este otro caso, se coloca a la misma imagen como entrada, pero se le aplica otra red neuronal un poco más compleja:

5. ¿Qué hacemos con todo esto?

Siempre que me entero de algún progreso tecnológico recuerdo una anécdota de Steve Jobs, co-fundador de Apple. Antes de convertirse en un magnate de la informática, el tipo era hippie y vivía en una cabaña a la cima de una montaña, con su novia, y se dedicaba a tocar la guitarra y escribir canciones parecidas a las de Bob Dylan. En una entrevista, le preguntan sobre esa etapa. Él cuenta un hecho que lo marcó de por vida: estaba leyendo, creo, la revista Time, y se encontró con un experimento que tenía como objetivo elaborar una lista de los seres vivos más rápidos del planeta. Primero estaba un tipo de halcón. El ser humano aparecía, aproximadamente, en el puesto cincuenta. Después de ese experimento, se repetía exactamente lo mismo, sólo que al ser humano se lo colocaba arriba de una bicicleta. En este caso, el primer puesto era para nosotros. Entonces Jobs dice [no son palabras textuales]: «ahí está la razón de ser de los inventos». Que sirvan para mejorar las limitaciones naturales de las personas. Que sirvan para complementarnos, para hacernos mejores. Es un planteo similar al de Borges con el libro: el viejo lo interpretaba como una extensión de la imaginación.

Creo que Jobs marcó bien los límites de la cancha: las computadoras sirven para complementarnos. Para fomentar nuestra creatividad, para hacernos más productivos. Este límite fue franqueado. Hoy día, las máquinas están logrando autonomía.

A Sandra y a mí siempre nos gustó el arte en general, ya sea visual, escrito, auditivo. Una de las razones principales de este interés era el hecho de que —pensábamos— el arte era meramente humano. Ahora nos damos cuenta que las máquinas también están incursionando en estos ámbitos.

No es el objetivo de esta charla juzgar si las creaciones que mostramos pueden ser consideradas arte o no. Eso lo dejamos a los curadores y críticos. La idea fue describir, explicar, ya que estos cambios de paradigma están sucediendo en la actualidad y debemos ser actores, no meros consumidores, de estos avances.

  1. Es ley: todos los avances y descubrimientos en tecnología y sus derivados son fruto de la onda que le metieron los matemáticos para formalizar y estructurar cosas. Nada de esto —ni Facebook, ni Twitter, ni los smartphones, ni Internet— hubiera sido posible sin las contribuciones de tipos como Neumann, Turing, y un largo etcétera. Punto a destacar en el momento en que nos quejamos cuando tenemos que estudiar el método de Ruffini.

--

--

Juan Manuel Gentili
Medium en español

Senior iOS Engineer @ Venmo I write about programming, startups, finances, economy, productivity, mental health, literature, philosophy, science and more.