¿Es la vida una forma de computación?
Alan Turing y John von Neumann lo vieron temprano: la lógica de la vida y la lógica de la computación pueden ser una y la misma.
Fuente de la imagen: Miguel Romero, Adobe Stock
Publicado originalmente en thereader.mitpress.mit.edu por: Blaise Agüera y Arcas
En 1994, una extraña máquina pixelada cobró vida en la pantalla de una computadora. Leyó una serie de instrucciones, las copió y construyó un clon de sí mismo, tal como el erudito húngaro-estadounidense John von Neumann había predicho medio siglo antes. Fue una demostración sorprendente de una idea profunda: que la vida, en su núcleo, podría ser computacional.
Este artículo es una adaptación del libro de Blaise Agüera y Arcas "¿Qué es la inteligencia? Puede acceder a una edición de acceso abierto aquí.
Aunque esto rara vez es apreciado en su justa dimensión, von Neumann fue uno de los primeros en establecer un vínculo profundo entre la vida y la computación. Demostró que la reproducción, como la computación, podría ser llevada a cabo por máquinas siguiendo instrucciones codificadas. En su modelo, basado en la Máquina Universal de Alan Turing, los sistemas autorreplicantes leen y ejecutan instrucciones de manera muy similar a como lo hace el ADN: "si la siguiente instrucción es el codón CGA, entonces agregue una arginina a la proteína en construcción". No es una metáfora llamar al ADN un "programa", ese es literalmente el caso.
Por supuesto, existen diferencias significativas entre la computación biológica y el tipo de computación digital realizada por una computadora personal o su teléfono inteligente. El ADN es sutil y de múltiples capas, incluidos fenómenos como la epigenética y los efectos de proximidad de genes. El ADN celular tampoco es el único personaje de toda esta historia. Nuestros cuerpos contienen (e intercambian continuamente) innumerables bacterias y virus, cada uno con su propio código.
La computación biológica es "masivamente paralela", descentralizada y ruidosa. Sus células tienen alrededor de 300 quintillones de ribosomas, todos trabajando al mismo tiempo. Cada una de estas fábricas de proteínas flotantes exquisitamente complejas es, en efecto, una pequeña computadora, aunque estocástica, lo que significa que no es del todo predecible. Los movimientos de los componentes articulados, la captura y liberación de moléculas más pequeñas y la manipulación de enlaces químicos son individualmente aleatorios, reversibles e inexactos, impulsados de una manera a otra por constantes golpes térmicos. Solo una asimetría estadística favorece una dirección sobre otra, con movimientos inteligentes de origami que tienden a "bloquear" ciertos pasos de tal forma que hace que sea probable que ocurra el siguiente paso.
Esto difiere mucho de la operación de las "puertas lógicas" en una computadora, componentes básicos que procesan entradas binarias en salidas utilizando reglas fijas. Son irreversibles y están diseñados para ser 99.99 por ciento confiables y reproducibles.
Sin embargo, la computación biológica es computación. Y su uso de la aleatoriedad es una característica, no un error. De hecho, muchos algoritmos clásicos en informática también requieren aleatoriedad (aunque por diferentes razones), lo que puede explicar por qué Turing insistió en que el Ferranti Mark I, una de las primeras computadoras que ayudó a diseñar en 1951, incluyera una instrucción de números aleatorios. La aleatoriedad es, por lo tanto, una extensión conceptual pequeña pero importante de la Máquina de Turing original, aunque cualquier computadora puede simularla calculando números deterministas, pero de aspecto aleatorio o "pseudoaleatorios".
El paralelismo también es cada vez más fundamental para la informática actual. La IA moderna, por ejemplo, depende tanto del paralelismo masivo como de la aleatoriedad, como en el algoritmo paralelizado de "descenso de gradiente estocástico" (SGD), utilizado para entrenar la mayoría de las redes neuronales actuales, la configuración de "temperatura" utilizada en los chatbots para introducir un grado de aleatoriedad en su salida y el paralelismo de las unidades de procesamiento de gráficos (GPU), que impulsan la mayoría de la IA en los centros de datos.
La computación digital tradicional, que se basa en la ejecución centralizada y secuencial de instrucciones, fue producto de limitaciones tecnológicas. Las primeras computadoras necesitaban realizar cálculos largos utilizando la menor cantidad de piezas posible. Originalmente, esas piezas eran tubos de vacío caros y fácilmente rompibles, que tendían a quemarse, por lo que era necesario tener un reemplazo a mano. El diseño natural, entonces, era una "Unidad Central de Procesamiento" (CPU) mínima que operaba en secuencias de bits transportados de un lado a otro desde una memoria externa. Esto se conoce como la "arquitectura von Neumann".
Sin embargo, Turing y von Neumann eran conscientes de que la computación se podía hacer por otros medios. Turing, al final de su vida, exploró cómo los patrones biológicos como las manchas de leopardo podrían surgir de reglas químicas simples, en un campo que llamó morfogénesis. El modelo de morfogénesis de Turing fue una forma de computación distribuida masivamente paralela y de inspiración biológica. También lo fue su concepto anterior de una "máquina desorganizada", una red neuronal conectada al azar modelada a partir del cerebro de un bebé.
Estas eran visiones de cómo podría ser la computación sin un procesador central, y tal como se ve en los sistemas vivos.
Von Neumann también comenzó a explorar enfoques masivamente paralelos a la computación ya en la década de 1940. En conversaciones con el matemático polaco Stanisław Ulam en Los Álamos, concibió la idea de "autómatas celulares", cuadrículas similares a píxeles de unidades computacionales simples, todas obedeciendo la misma regla y todas alterando sus estados simultáneamente, comunicándose solo con sus vecinos inmediatos. Con su valentía característica, von Neumann llegó a diseñar, sobre el papel, los componentes clave de un autómata celular autorreproductor, incluida una "cinta" horizontal de células que contenía instrucciones y bloques de "circuitos" celulares para leerlos, copiarlos y ejecutarlos.
Diseñar un autómata celular es mucho más difícil que la programación ordinaria, porque cada célula o "píxel" está alterando simultáneamente su propio estado y su entorno. Agregue aleatoriedad y efectos de retroalimentación sutiles, como en biología, y se vuelve aún más difícil razonar sobre "programar" o "depurar".
Sin embargo, Turing y von Neumann captaron algo fundamental: la computación no requiere un procesador central, puertas lógicas, aritmética binaria o programas secuenciales. Hay infinitas formas de calcular y, lo que es más importante, todas son equivalentes. Esta idea es uno de los mayores logros de la informática teórica.
Esta "independencia de la plataforma" o "realización múltiple" significa que cualquier computadora puede emular a cualquier otra. Sin embargo, si las computadoras son de diferentes diseños, la emulación puede ser glacialmente lenta. Por esa razón, el autómata celular autorreproductivo de von Neumann nunca se ha construido físicamente, ¡aunque sería divertido verlo!
Esa demostración en 1994, la primera emulación exitosa de la automatización autorreproductora de von Neumann, no podría haber sucedido mucho antes. Una computadora en serie requiere una gran potencia de procesamiento para recorrer las 6.329 celdas del autómata en los 63 mil millones de pasos de tiempo necesarios para que el autómata complete su ciclo reproductivo. En la pantalla, funcionó como se anunciaba: una máquina bidimensional pixelada de Rube Goldberg, en cuclillas y a horcajadas sobre una cinta de instrucciones de 145,315 celdas de largo que se arrastraba hacia la derecha, bombeando información fuera de la cinta y extendiendo la mano con un "brazo de escritura" para imprimir lentamente un clon funcional de sí mismo justo encima y a la derecha del original.
Es igualmente ineficiente que una computadora en serie emule una red neuronal paralela, heredera de la "máquina desorganizada" de Turing. En consecuencia, la ejecución de grandes redes neuronales como las de los chatbots basados en Transformer se ha hecho posible recientemente, gracias al progreso continuo en la miniaturización, la velocidad y el paralelismo de las computadoras digitales.
En 2020, mi colega Alex Mordvintsev combinó redes neuronales modernas, la morfogénesis de Turing y los autómatas celulares de von Neumann en el "autómata celular neuronal" (NCA), reemplazando la regla simple por píxel de un autómata celular clásico con una red neuronal. Esta red, capaz de detectar y afectar unos pocos valores que representan las concentraciones locales de morfógenos, puede ser entrenada para "crecer" cualquier patrón o imagen deseada, no solo rayas de cebra o manchas de leopardo.
Las células reales no tienen literalmente redes neuronales dentro de ellas, pero ejecutan "programas" altamente evolucionados, no lineales y con propósito para decidir sobre las acciones que tomarán en el mundo, dado el estímulo externo y un estado interno. Los NCA ofrecen una forma general de modelar la gama de posibles comportamientos de las células cuyas acciones no implican movimiento, sino solo cambios de estado (aquí, representados como color) y la absorción o liberación de sustancias químicas.
El primer NCA que Alex me mostró fue de un emoji de lagarto, que podía regenerar no solo su cola, sino también sus extremidades y cabeza. Fue una poderosa demostración de cómo la vida multicelular compleja puede "pensar localmente" y "actuar globalmente", incluso cuando cada célula (o píxel) ejecuta el mismo programa, al igual que cada una de sus células ejecuta el mismo ADN. Simulaciones como estas muestran cómo la computación puede producir un comportamiento realista a través de escalas. Basándose en los diseños de von Neumann y extendiéndose a los autómatas celulares neuronales modernos, ofrecen una visión de los fundamentos computacionales de los sistemas vivos.
Comentarios
Publicar un comentario