Cover Image for Si Sabes Cómo Mirar, Todo Lo Que Ves Es un Proceso Computacional

Si Sabes Cómo Mirar, Todo Lo Que Ves Es un Proceso Computacional

El científico informático Lance Fortnow afirma que al aceptar las computaciones que nos rodean, podemos empezar a comprender y controlar nuestro mundo aparentemente aleatorio.

En la película "Oppenheimer", Niels Bohr desafía al físico al inicio de su carrera:

Bohr: El álgebra es como una partitura. Lo importante no es "¿puedes leer música?", sino "¿puedes escucharla?" ¿Puedes escuchar la música, Robert?

Oppenheimer: Sí, puedo. No puedo escuchar el álgebra, pero siento la máquina. Sentí la máquina incluso antes de tocar una computadora. En la década de 1970, esperaba la llegada de la primera, una Radio Shack TRS-80, imaginando cómo funcionaría. Escribí algunos programas simples en papel y podía sentir la máquina que aún no tenía procesando cada paso. Casi fue una decepción finalmente escribir el programa y obtener el resultado sin experimentar el proceso interno.

Incluso hoy, no visualizo ni escucho la máquina, pero me canta; la siento zumbando, actualizando variables, haciendo bucles, ramificando, buscando, hasta que llega a su destino y proporciona una respuesta. Para mí, un programa no es código estático, es la encarnación de un ser vivo que sigue mis instrucciones hacia una conclusión (esperemos) exitosa. Sé que las computadoras no funcionan físicamente de esta manera, pero eso no detiene mi máquina metafórica.

Una vez que empiezas a pensar en la computación, comienzas a verla en todas partes. Tomemos como ejemplo enviar una carta a través del servicio postal. Pon la carta en un sobre con una dirección y un sello, y métela en un buzón, de alguna manera terminará en el buzón del destinatario. Ese es un proceso computacional: una serie de operaciones que mueven la carta de un lugar a otro hasta que llega a su destino final. Este proceso de enrutamiento no es muy diferente de lo que sucede con el correo electrónico u cualquier otro dato enviado a través de internet. Ver el mundo de esta manera puede parecer extraño, pero como se dice que Friedrich Nietzsche dijo: "Aquellos que fueron vistos bailando fueron considerados locos por aquellos que no podían escuchar la música".

Este sentido innato de una máquina en funcionamiento puede proporcionar una perspectiva computacional a casi cualquier fenómeno, incluso a uno aparentemente inescrutable como el concepto de aleatoriedad. Algo aparentemente aleatorio, como lanzar una moneda, puede ser descrito completamente por algún proceso computacional complejo que produce un resultado impredecible de cara o cruz. El resultado depende de innumerables variables: la fuerza, el ángulo y la altura del lanzamiento; el peso, diámetro, grosor y distribución de masas de la moneda; la resistencia del aire; la gravedad; la dureza de la superficie de aterrizaje; y así sucesivamente. Es similar para barajar una baraja de cartas, lanzar dados o hacer girar una ruleta, o generar números "aleatorios" en una computadora, que simplemente implica ejecutar alguna función intencionalmente complicada. Ninguno de estos es un proceso verdaderamente aleatorio.

La idea se remonta siglos atrás. En 1814, en su Ensayo Filosófico sobre las Probabilidades, Pierre-Simon Laplace describió por primera vez una inteligencia, ahora conocida como el demonio de Laplace, que podría predecir estos resultados: "Deberíamos considerar el estado presente del universo como el efecto de su estado previo y como la causa del estado que está por venir. Una inteligencia que conozca todas las fuerzas actuantes en la naturaleza en un instante dado, al igual que las posiciones momentáneas de todas las cosas en el universo, sería capaz de comprender en una sola fórmula los movimientos de los cuerpos más grandes, así como de los átomos más ligeros en el mundo, siempre que su intelecto fuera suficientemente poderoso". La implicación inversa es que para alguien sin una intelecto suficientemente vasto, procesos como lanzar una moneda parecerían aleatorios. El lenguaje de la computación nos permite formalizar esta conexión.

A principios de este año, Avi Wigderson recibió el premio Turing, el "Premio Nobel de la computación", en parte por conectar formalmente la aleatoriedad con funciones matemáticas difíciles de computar. Él y sus colegas crearon un proceso que toma una función lo suficientemente compleja y produce bits "seudoaleatorios" que no pueden distinguirse eficientemente de bits verdaderamente aleatorios. La aleatoriedad, al parecer, es solo computación que no podemos predecir.

¿Tenemos una forma de manejar esta aleatoriedad y complejidad? El progreso reciente que hemos visto en inteligencia artificial a través del aprendizaje automático nos da una idea de lo que significaría hacer precisamente eso. La información puede dividirse en una parte estructurada y una parte aleatoria. Tomemos el inglés, por ejemplo. Hay una estructura compleja subyacente que describe el lenguaje, y las oraciones que la sociedad ha producido con el tiempo son, de hecho, un muestreo aleatorio de esa estructura. Los avances recientes en aprendizaje automático nos han permitido tomar estas muestras aleatorias y recuperar gran parte de la estructura subyacente. A menudo, esa estructura parece opaca, pero aún así podemos usarla para simular las muestras aleatorias, generando nuevas oraciones en inglés según se necesite.

Consideremos el problema de la traducción. Imagina a una mujer, Sophie, que creció hablando inglés y francés y ahora trabaja como traductora. Puede tomar un texto en inglés, entenderlo completamente y producir su equivalente en francés. Hablando computacionalmente, la máquina en este caso es el cerebro de Sophie, ya que debe seguir algún proceso que convierta el inglés en francés. Sophie probablemente no entiende todo el proceso, ni siquiera lo piensa como un proceso, pero sin embargo está sucediendo.

Ahora supongamos que queremos traducir texto en una computadora. Simplemente usar un diccionario francés-inglés para traducir palabra por palabra no funciona, ya que diferentes idiomas tienen diferentes estructuras, y las palabras tienen diferentes significados en diferentes contextos. Aplicar herramientas lingüísticas solo llega hasta cierto punto; el proceso computacional de comprender el lenguaje va más allá de lo que podemos describir.

Sophie entiende los idiomas porque creció en un hogar bilingüe, expuesta a ambos idiomas y todas sus complejidades. El aprendizaje automático toma un enfoque similar, capacitando modelos de lenguaje con grandes cantidades de datos. Estos modelos consisten en una red neural compleja, una colección de neuronas artificiales hábilmente conectadas entre sí, y estas conexiones tienen pesos asociados, que alteran las señales que se mueven a través del sistema. Cuando está adecuadamente entrenada, la red neural predecirá la probabilidad de la siguiente palabra en una secuencia que se traduce del inglés al francés.

Normalmente no podemos entender el proceso subyacente de una red neuronal entrenada más de lo que Sophie entiende su proceso completo de traducción, pero podemos simular fácilmente ese proceso para obtener la probabilidad de la siguiente palabra. Si la red neural está perfectamente entrenada, será imposible distinguir la probabilidad de la próxima palabra que predice de la probabilidad de lo que Sophie diría. Así como Wigderson conectó funciones de complejidad y pseudoaleatoriedad, predecir las probabilidades de la próxima palabra nos permite capturar los cálculos complejos detrás de ella.

El inglés y el francés son ellos mismos muestras "aleatorias" de un concepto conocido como lenguaje humano, y las herramientas más recientes han descubierto suficiente de esta estructura subyacente como para permitir traducciones razonables incluso entre idiomas relativamente oscuros.

Los algoritmos de aprendizaje son ellos mismos procesos, y siento los pesos actualizándose a medida que alimentamos más y más ejemplos para entrenar los modelos. Los avances que hemos visto en el aprendizaje automático en las últimas décadas nos han ayudado a realizar procesos complejos, desde los humanos como la traducción, la visión, el arte y la conversación, hasta los biológicos como el plegado de proteínas.

Los modelos de aprendizaje automático aún son propensos a errores y desinformación, y aún tienen dificultades con tareas de razonamiento básicas. Sin embargo, hemos ingresado en una era en la que podemos usar la computación misma para ayudarnos a manejar la aleatoriedad que surge de los sistemas complejos.

He tenido mucha suerte. Pude construir una carrera de investigación en torno a las máquinas que abarcan la forma en que percibo el mundo. He encontrado mi llamado, o más precisamente, me ha encontrado a mí. Ya sea que escuches la música, el álgebra, la computación, la biología, la magia, el arte o alguna otra forma de entender el mundo, escúchalo. ¿Quién sabe qué secretos podrías descubrir?