Chapter Content

Calculating...

A ver, a ver... Capítulo siete, ¿no? Este... vamos a ponernos un poquito "meta", ¿no? A ver si me explico bien.

Digamos que "meta" es cuando algo habla de sí mismo, ¿no? Como... eh... los metadatos. Los metadatos son datos sobre datos. Te dicen, yo que sé, el formato, el contenido, la estructura... y así puedes validar si la información sigue un orden, ¿me entiendes? Es como un "control de calidad" de la info, vaya. O también el "metaanálisis". En lugar de mirar un solo estudio, coges un montón y combinas los resultados para sacar una conclusión más fuerte, ¿sabes? Más... robusta, estadísticamente hablando.

Lo de "ir meta" es intentar entender algo que sea... pues eso, más profundo, más universal que cualquier ejemplo individual. Porque cada estudio tiene sus propios fallos, sus propias manías, y solo te da una versión muy... estrecha de la verdad. Ir meta sirve para pillar la verdad latente, la que está escondida, sin etiquetas, dentro de un sistema. Es que las estructuras latentes no tienen nombre, no hay categorías fáciles para describirlas. Pero están ahí, eh. Y cada ejemplo concreto del sistema es solo una parte de esa verdad latente. Solo juntando muchos ejemplos te puedes acercar a la verdadera naturaleza de algo.

Y aquí viene lo importante: ir meta es la única forma de crear una abstracción. Piénsalo. ¿Cómo hacemos abstracciones en la cabeza? Ya vimos en el capítulo anterior que encontramos parecidos entre cosas que parecen muy diferentes, ¿no? Y cuando pillamos esos parecidos, creamos una categoría más grande, mental o física. Pero ¡ojo! Esto no se puede hacer desde dentro del sistema. Si solo miras desde dentro, no puedes meter el sistema en una categoría. Tienes que salirte fuera, verlo desde arriba para ver las similitudes entre las partes de un sistema. Por eso hay que ir meta para crear abstracciones. Porque las abstracciones necesitan un proceso que se mire a sí mismo y que pegue las cosas diferentes.

Y no es solo para las abstracciones mentales, eh. Las físicas también necesitan una observación meta para juntar las piezas en unidades. Nosotros, los humanos, no podríamos haber diseñado herramientas más complejas si no hubiéramos podido ver los parecidos desde fuera. El cambio de marchas del coche, por ejemplo, es una interfaz que está a un nivel más alto que las piezas que controla. No se podría haber inventado si no hubiéramos visto cómo las piezas internas trabajan juntas hacia el mismo objetivo. Y eso, desde dentro del sistema, ¡imposible!

A ver, que quede claro: "meta" no es otro nivel de abstracción, como algunos creen. Las abstracciones no hablan de sí mismas. Son construcciones que engloban otras más pequeñas. La creación de una abstracción es un proceso que está fuera del sistema al que comenta. La abstracción está dentro, lo meta está fuera. Si agrupamos piezas y creamos una interfaz, ese nuevo nivel solo se ha podido crear saliendo del sistema.

Vale, vale, lo de ir meta para crear abstracciones físicas puede tener sentido para los humanos, pero ¿y la naturaleza? Yo ya dije que el progreso por abstracción es absoluto, o sea, que si un sistema evoluciona para resolver problemas más difíciles, tiene que crear más niveles de abstracción física. Y también dije que la naturaleza lo hace a través de la emergencia. Las estructuras emergentes son niveles de abstracción física que comprimen información para solucionar problemas difíciles. Pero... ¿cómo va la naturaleza a "meta" para crear sus abstracciones físicas?

Piénsalo en los modelos de "deep learning", de aprendizaje profundo. El "deep learning" funciona, no porque hayamos metido reglas explícitas, sino porque dentro de esos modelos complejos aparece algo que transforma entradas en salidas. Son como cajas negras, así que no podemos entender con precisión lo que pasa dentro. Pero sí sabemos que emergen niveles de abstracción que ayudan con esa transformación.

Por ejemplo, en el reconocimiento facial, el "deep learning" usa niveles de abstracción para sacar características cada vez más complejas de la imagen. Primero, saca cosas básicas, como bordes, esquinas, texturas. Luego, combina eso para pillar patrones, como ojos, nariz, boca... Y sigue subiendo de nivel hasta que las abstracciones capturan la esencia de una cara.

Y todo esto es posible gracias a que el "deep learning" se mira a sí mismo. ¿Me explico? En la IA, esa autorreferencia viene de cómo los sistemas actualizan su configuración interna usando resultados anteriores. El modelo hace una predicción, se equivoca un poco, y usa esa información para mejorar la siguiente predicción. Y así, una y otra vez. Para crear un buen modelo, no hay que saber cómo funciona por dentro, sino crear una buena estructura de autorreferencia.

Por eso el "deep learning" es una forma de ir meta. Es un sistema que usa "feedback loops", bucles de retroalimentación, para mirarse a sí mismo y ver si las cosas van bien. Ir meta no es poner parámetros a lo loco, ni diseñar sistemas con reglas. Las reglas que haya al final, salen solas, no las programamos nosotros. Por eso esta forma de construir es tan diferente. Asume que no lo sabemos todo y se basa en la variación, la iteración y la selección para dar con las partes internas correctas. Es lo contrario al diseño.

Como los parámetros internos en un modelo de IA se encuentran solos, el diseño solo se hace fuera. Los "hiperparámetros" son las decisiones que tomamos los humanos para preparar la fase de entrenamiento del "deep learning" lo mejor posible. Elegimos la "learning rate", la tasa de aprendizaje, el tamaño de los lotes, el número de "epochs", las épocas, la arquitectura de la red... Es otro problema, que funciona dentro del espacio de todas las posibilidades de los "hiperparámetros". Y este nivel también tiene que funcionar con acciones externas. No podemos saber cómo poner los mejores "hiperparámetros" a propósito. Tenemos que ir meta, probando muchos hasta dar con los buenos. Tenemos que experimentar con diferentes tasas de aprendizaje, tamaños de lote, número de "epochs" y arquitecturas de red hasta que la combinación correcta produzca mejores resultados. Cuando vamos meta, estamos aprendiendo a aprender.

En la IA, esta versión de ir meta usa cosas como la optimización de "hiperparámetros", el "meta learning", el aprendizaje meta y la búsqueda de arquitectura neuronal (NAS). No importa mucho la diferencia entre ellos, solo que todos son formas de salir del problema y operar desde fuera para encontrar lo que funciona.

Igual que el metaanálisis junta diferentes estudios para aprender algo más profundo de lo que puede mostrar un solo estudio, el aprendizaje meta en la IA intenta encontrar algo que ningún modelo individual tendrá: una estructura latente que transforme entradas en salidas de una forma general y potente. De nuevo, el énfasis está en aprender cómo aprender, no en aprender algo concreto.

Para que los sistemas de "deep learning" funcionen bien, tienen que aparecer abstracciones dentro de sus modelos. Y esas abstracciones solo se pueden crear saliendo del sistema continuamente. Y esto no es solo para el "deep learning". Es para cualquier solución compleja que construyamos. El acto de ir meta es lo que lleva a las abstracciones que transforman entradas en salidas de una forma flexible y determinista. Los problemas difíciles no se pueden solucionar sin ir meta.

A ver, ahora vamos con la estructura de los problemas. La estructura de un problema viene de los niveles de abstracción que lo definen. El problema final en la naturaleza es sobrevivir. La vida tiene que intentar mantenerse contra la mala suerte y las dificultades. Pero sobrevivir es solo la versión más alta de todos los retos de la vida. A un nivel de abstracción más bajo que sobrevivir están la comida, el agua y el refugio. Y si vamos aún más abajo, están las acciones que intentan resolver el nivel superior. Para conseguir comida, los animales tienen que cazar, buscar, rebuscar, filtrar, pastar, cavar, emboscar y, algunos, hasta crear herramientas. Para encontrar agua, migran, reconocen la vegetación, aprovechan la lluvia y exploran. Los refugios se encuentran o se crean. El búho llanero vive en madrigueras abandonadas por otros animales, como las ardillas. Y podemos seguir definiendo niveles más bajos para el problema de buscar refugio. Si no encuentran una madriguera de ardilla abandonada, los búhos llaneros usan el pico y las garras para cavar su propio agujero, lo que presenta nuevos retos. Tienen que elegir sitios con tierra suelta, como zonas arenosas o limosas, y cavar túneles de varios pies de profundidad para que el refugio sea seguro. Y así sucesivamente.

Todos los retos que se le presentan a la vida tienen una estructura, una jerarquía. Esto recuerda un poco a la famosa Pirámide de las Necesidades de Maslow, pero yo hablo de niveles de abstracción y su relación con la computación de la naturaleza. Siempre podemos descomponer un problema en niveles de abstracción anidados, con los niveles inferiores dentro de la categoría del reto superior.

Como todas las soluciones en la naturaleza son configuraciones de materia que resuelven los problemas que se les presentan, podemos pensar en las soluciones de la naturaleza como reflejos de la estructura del problema. Y no lo digo solo como una idea, sino en los patrones concretos que se forman. Los patrones que vemos en el helecho, la estrella de mar y el arrecife de coral tienen la estructura que se parece al problema que solucionan. De todos los patrones que vemos en la naturaleza, como los fractales, las espirales, las ondas, el empaquetamiento hexagonal, las teselaciones, las ramificaciones dendríticas, etc., estamos viendo reflejos de la estructura del problema.

Vamos a ser más literales. Si vemos el fractal del brócoli romanesco o la espiral de semillas en un girasol, estamos viendo cómo los retos ambientales de ese organismo se organizan por abstracción. El entorno no solo le pide al girasol que sobreviva, sino que resuelva niveles más profundos del reto para que se pueda alcanzar el objetivo final de sobrevivir.

Los objetos que vemos en la naturaleza son la consecuencia de la mezcla entre configuraciones de materia y estructura del problema. Imagina que trazas una línea entre los niveles del brócoli romanesco y los niveles de abstracción del problema que soluciona ese organismo. Y esto vale para la materia inorgánica igual que para la vida. Las sales, los metales, las rocas, los ríos y las montañas son configuraciones que atienden a las estructuras inherentes a los problemas que solucionan. En este sentido, las soluciones de la naturaleza no son tan diferentes de su entorno, sino que son parte de la mezcla entre problema y solución.

Y como dije antes, definir los problemas de esta manera no es solo proyectar ideas mentales sobre el mundo físico. Si el reduccionismo fuera válido, podría ser. Pero con la complejidad, no lo es. No estoy dando una serie de pasos deterministas que cuenten cómo la materia se mueve desde las piezas pequeñas hasta las grandes para producir los patrones que vemos en la naturaleza. Defiendo que la naturaleza resuelve problemas de forma inevitable. Y esto está en línea con lo que sabemos de información, computación y evolución. Es muy razonable ver los patrones de la naturaleza como reflejos de la estructura del problema.

Todo esto demuestra la conexión entre la abstracción informacional y la física. La estructura de los problemas nos da una versión informacional de la abstracción, la que usamos para definir nuestro mundo y movernos por la vida. Y las estructuras físicas que vemos en la naturaleza nos dan la versión física de esas abstracciones. Para crear sus rocas, ríos, montañas, estrellas de mar, búhos y castores, la naturaleza tiene que estar manifestando niveles físicos de abstracción que coinciden con las abstracciones informacionales que forman sus entornos.

A ver, la naturaleza puede llegar más alto. Es una máquina de computación mucho más potente que cualquier cosa que podamos inventar los humanos. Aunque nuestros sistemas de IA tienen cosas de autorreferencia y abstracción, la naturaleza lo lleva al extremo. Antes de hablar de la versión de ir meta de la naturaleza, piensa en nuestro intento de hacerlo con la IA. Ya dije que no podemos poner los parámetros internos a propósito, así que operamos desde fuera poniendo valores relacionados con el entrenamiento. Elegimos la tasa de aprendizaje, el tamaño del lote, el número de "epochs", el número de capas, las neuronas por capa, etc. Esto no dirige nada dentro del modelo, solo ayuda a estructurar el proceso que se usa para aprender. Podemos pensar en estos valores como el primer nivel de ir meta, porque están fuera del sistema. Conseguir los mejores valores debería producir las mejores abstracciones posibles dentro.

Pero... ¿cuáles deberían ser esos valores? Ese es otro problema, un meta problema. Aquí, nos interesa menos saber los mejores parámetros de un modelo individual y más aprender cómo aprender los mejores parámetros de cualquier modelo. Como ya dije, este meta problema se aborda con técnicas como la optimización de "hiperparámetros", el aprendizaje meta y la búsqueda de arquitectura neuronal. Aunque solo uno de ellos se llama "aprendizaje meta", todos intentan solucionar el meta problema de encontrar los mejores valores externos posibles (dentro de un tiempo razonable).

Una forma de hacerlo es juntar muchos modelos diferentes para aprender y desplegar un solo modelo mejor, llamado "meta aprendiz". La idea es que un solo modelo será demasiado limitado para mostrar una inteligencia general, pero muchos modelos podrían aprender algo más latente, creando una entidad más potente. Pero solo podemos juntar un número limitado de modelos antes de que el reto se vuelva imposible. Cada modelo tiene que entrenarse con datos individualmente, lo que implica experimentos y validaciones. Y el problema superior del aprendizaje meta también tiene que hacerse con experimentos y validaciones para ver qué combinación de modelos funciona mejor. Este problema superior tiene su propio conjunto de valores de parámetros que hay que determinar. ¿Pero por qué parar ahí? Podríamos combinar diferentes estructuras de aprendizaje meta en nuevas combinaciones, que tendrían su propio conjunto de parámetros externos, para experimentar y validar de nuevo.

El espacio de posibilidades asociado a juntar cosas en grupos cada vez más grandes explota en tamaños astronómicos. Esto pone en duda si ir meta es viable para crear cosas complejas. Aunque aceptemos la limitación fundamental del diseño, ¿no es el diseño nuestra única oportunidad de hacer viables los esfuerzos de construcción? Claro, podríamos querer probar niveles enormes de ensayo y error solo para ver qué funciona, pero hacer tantos experimentos tiene unas exigencias computacionales que parecen hacer imposible este enfoque.

Pero el diseño no puede solucionar la explosión combinatoria extrema de posibilidades. El diseño se basa en una idea fundamentalmente errónea cuando se trata de cosas complejas, como ya dije en este libro. El diseño no puede ser la respuesta. Pero parece que operar a nivel meta no puede aliviar las exigencias computacionales de solucionar problemas internamente. Que salgamos del sistema no significa que no haya que resolver los problemas inferiores. Esto plantea una preocupación. ¿Cómo puede ir meta ser una forma de construir cosas?

Como siempre, la naturaleza tiene la respuesta. La naturaleza puede llegar a niveles extremadamente altos de meta para crear ecosistemas enteros. Si usamos el sistema de clasificación taxonómica, podemos decir que la naturaleza junta organismos para formar especies, especies para formar géneros, géneros para familias, familias para órdenes, órdenes para clases, clases para filos, filos para reinos y reinos para dominios. Todos estos son niveles diferentes de abstracción física (grupos de organismos vivos) que trabajan juntos para solucionar un problema. Y cada uno de ellos se crea automáticamente, gracias al mecanismo de autorreferencia y creación de abstracciones de la naturaleza.

La naturaleza puede ir meta de forma mucho más efectiva que la ingeniería humana. La carga computacional que maneja la naturaleza es asombrosa. La naturaleza sigue saliendo de un nivel y encontrando los parámetros que funcionan para crear el siguiente nivel.

Claro, los recursos computacionales de la naturaleza son prácticamente infinitos en comparación con lo que tenemos los humanos. La naturaleza tiene una versión extrema de procesamiento paralelo distribuido, gracias a miles de millones de procesadores trabajando simultáneamente dentro de un grupo. Aunque cada pieza de un sistema natural (por ejemplo, una célula, una neurona) solo hace cálculos sencillos, su comportamiento colectivo resuelve funciones increíblemente complejas. La naturaleza también opera en escalas de tiempo mucho más grandes que la innovación humana. La evolución tarda millones de años en crear sus soluciones a través de la selección natural. La naturaleza puede explorar un espacio de posibilidades enorme, usando una variación, iteración y selección masivas, todo de forma muy paralela.

También hay una gran diferencia en cuanto a la eficiencia energética. Los sistemas biológicos son increíblemente eficientes en comparación con cualquier cosa que creemos los humanos. El cerebro humano solo consume unos 20 vatios de potencia, mientras que los superordenadores y los sistemas de "deep learning" modernos tienen un consumo energético varios órdenes de magnitud mayor. Piensa en lo efectivo que es el cerebro humano en la visión, el control motor y el razonamiento en comparación con la IA, y solo consume 20 vatios. La eficiencia biológica está en otra categoría.

Y la biología también está integrada con el mundo físico. Todos los niveles de abstracción se comunican directamente con sus entornos. Los cálculos que transforman entradas en salidas se producen como procesos físicos dentro del propio sistema, no como modelos del comportamiento. Así que no es tan sorprendente que la naturaleza pueda ir meta de forma mucho más efectiva que los humanos. La naturaleza tiene a su disposición el paralelismo, el tiempo, la eficiencia energética y la integración física para salir de varios niveles de un sistema y crear sus abstracciones emergentes.

Entonces, ¿cómo podemos los humanos operar como la naturaleza, sin tener ni de lejos sus recursos computacionales? ¿Cómo podemos crear objetos complejos que solucionen problemas como lo hace la naturaleza, si no podemos cumplir con sus exigencias computacionales?

Una respuesta obvia es "hackear" la naturaleza donde está. Por ejemplo, la biología sintética busca diseñar el material genético de organismos, como virus y bacterias, para que tengan características deseadas. Esto se ha hecho en áreas como la biorremediación, la bioproducción de fármacos, los biocombustibles e incluso cambiar las bacterias para que hagan operaciones lógicas sencillas para computar o actuar como actuadores biológicos dentro de máquinas diminutas. La biología sintética evita la necesidad de diseñar la emergencia porque aprovechamos características ya evolucionadas.

El problema principal aquí es que no lo estamos aplicando bien. Aunque tendremos algo de éxito "hackeando" las soluciones de la naturaleza, la realidad es que la naturaleza evoluciona de la forma en que lo hace por una razón. Y esa razón no se puede definir en términos reduccionistas. Solo podemos decir que las soluciones de la naturaleza son como son porque es lo que ha sobrevivido. La composición de un objeto natural es algo increíblemente complejo que soluciona sus problemas de formas que nunca sabremos. Intentar "secuestrar" una pieza de una solución natural puede traer algún beneficio, pero vendrá con todos los problemas del diseño bajo complejidad: seguro que producirá efectos secundarios que reducirán la eficacia de la solución a largo plazo.

Como dije en este libro, tenemos que diseñar la emergencia nosotros mismos, no solo reutilizar la naturaleza para problemas que no estaba destinada a solucionar. Nuestras creaciones tienen que crear sus propias complejidades y llegar a sus propias estructuras y comportamientos emergentes, basándose en los entornos en los que las ponemos. Hay dependencias internas que no podemos ver, que permiten que las soluciones naturales funcionen de forma efectiva. Esas partes internas tienen que materializarse como abstracciones físicas construidas a través de la autorreferencia automática.

Para diseñar la emergencia nosotros mismos, tenemos que intentar maximizar el paralelismo, la eficiencia energética y la integración física que vemos en la naturaleza. Bajo el diseño, esto no es posible. El diseño nos obliga a tomar decisiones específicas y detalladas que se convierten en versiones artificiales del paralelismo, la eficiencia energética y la integración física que necesitamos.

Piensa en cómo el investigador o ingeniero de IA quiere diseñar sistemas tomando decisiones explícitas sobre cómo deben funcionar, actuar e interactuar con sus entornos. Quieren identificar y recopilar fuentes de datos relevantes para entrenar y evaluar. Buscan seleccionar y diseñar algoritmos basándose en exigencias computacionales específicas. Intentan diseñar las arquitecturas de la red neuronal, tomando decisiones sobre capas, funciones de activación, conexiones y técnicas de optimización, todo basado en principios de diseño, buenas prácticas y teoría matemática.

Pero lo cierto es que los mayores avances en el progreso del "deep learning" no han venido de decisiones de diseño específicas, sino de meter más datos y potencia computacional al problema. De hecho, la arquitectura específica es mucho menos importante de lo que parece. No es que las estructuras específicas no sean importantes, es que no surgen del razonamiento y el diseño deliberados como sugieren los artículos de investigación. Las estructuras que acaban funcionando son en gran medida un producto de más datos y más potencia computacional.

Y esto es exactamente lo que deberíamos esperar cuando construimos cosas complejas. La investigación en IA es efectiva por razones que la mayoría de los investigadores en IA no parecen entender. Esto puede sonar raro, pero vemos este patrón con frecuencia. Es fácil para la gente creer que sus decisiones de diseño son responsables del progreso, cuando en realidad el progreso bajo complejidad tiene mucho más que ver con el azar que con el diseño. Y esto es cierto, está en línea con las propiedades de cómo evolucionan los sistemas complejos.

El diseño bajo complejidad se entiende correctamente como algo que interfiere con la creación de buenas soluciones. Las decisiones de diseño les quitan a los sistemas complejos sus complejidades naturales y sus dependencias opacas. Interfieren con la comunicación interna entre piezas que debe ocurrir para que se materialice lo que funciona. El diseño también limita nuestra capacidad de explorar grandes espacios de posibilidades debido a la rigidez que impone a nuestras soluciones.

Claro, el diseño de sistemas de IA no es como el diseño de la ingeniería tradicional. De nuevo, la IA es nuestro mejor ejemplo de salir de los sistemas y dejar que las cosas converjan. Pero nuestro nivel de meta está demasiado cerca de las partes internas de nuestras soluciones. Mientras que la naturaleza llega hasta el dominio bajo la clasificación taxonómica, nosotros seguimos operando justo fuera del organismo individual. Si solo quisiéramos un modelo básico que predijera cosas definidas, estaría bien. Pero en la búsqueda de algo parecido a la inteligencia general, esto no puede funcionar. Cuanto más sofisticada y potente sea la solución que buscamos, más complejidad real tenemos que crear.

Para lograr el paralelismo, la eficiencia energética y la integración física que necesitamos, tenemos que operar a niveles mucho más meta que la solución que buscamos. Si queremos construir un cerebro, no lo vamos a conseguir intentando diseñar un cerebro. Aunque parezca conveniente definir la inteligencia humana como algo que ocurre dentro de la cabeza de un individuo, somos una especie social muy conectada. No hay inteligencia sin niveles de agregación que superen una sola red neuronal biológica. El meta tiene que llegar mucho más alto que el organismo para crear el mejor organismo. El diseño nos mantiene demasiado cerca del organismo.

Cuando nos quedamos demasiado cerca de lo que estamos construyendo, como con el diseño, el ensayo y error se vuelve imposible. Esto se debe a que las cosas que intentamos mezclar durante la experimentación están demasiado definidas. Pero cuando cambiamos nuestro enfoque a la superficie, usando solo la declaración del problema más general, las partes internas tienen que solucionarse solas. Así es como funciona la complejidad.

Cuanto más difícil es el problema, más grande y complejo es su espacio de posibilidades. Y hay que buscar en ese espacio. En el capítulo cuatro vimos que, a medida que aumenta la dificultad de un problema, más suave tiene que ser nuestra forma de solucionarlo y menos analíticos podemos ser sobre cómo buscamos.

Podemos pensar en la heurística y el reconocimiento de patrones como herramientas que nos permiten encontrar cosas dentro de espacios de posibilidades enormes sin tener que buscar mucho. Pero esto solo funciona si lo aplicamos a las señales de nivel superior que emite una situación compleja. Pero el diseño nos obliga a definir la búsqueda en términos demasiado explícitos. No aprovecha lo que la naturaleza ya nos da. El diseño nos hace intentar el ensayo y error en construcciones de bajo nivel que no tienen el significado que les asignamos. No nos toca a nosotros saber cómo interactúan las cosas, solo que las interacciones tendrán lugar según sea necesario si se obliga a más partes del sistema a sobrevivir a factores de estrés. Llegar más alto en nuestros esfuerzos meta es conseguir que la naturaleza se solucione sola de forma natural.

Entonces, ¿cómo podemos operar al nivel más alto de meta sin encontrarnos con limitaciones computacionales? La respuesta es: 1) mantener las declaraciones del problema lo más generales posible (operar en la superficie) y 2) crear partes internas muy flexibles en lugar de diseñar detalles específicos.

Mantenemos la solución de problemas en la superficie manteniendo solo el objetivo de nivel superior que podamos. Un ejemplo en la IA sería definir nuestros problemas como construir una entidad que tenga conversaciones realistas y útiles. Eso es todo. El paradigma actual nos dice que profundicemos más, descomponiendo un problema en su propósito, público objetivo, alcance de la conversación, intención, contexto, manejo de la ambigüedad, tono y personalidad. Pero esta deconstrucción de un problema es reduccionista. No conocemos esos detalles, solo que toda la solución debe solucionar la definición superior de un problema. Descomponer un problema en detalles garantiza una ingeniería inferior bajo complejidad.

Para el segundo punto, creamos partes internas muy flexibles al no diseñar detalles específicos. Piensa en las funciones de activación que se usan en las redes neuronales. Sirven para introducir no linealidad en el modelo. Tenemos varias opciones, cada una con sus características, ventajas e inconvenientes. Podemos elegir sigmoide, tangente hiperbólica, unidad lineal rectificada (ReLU), ReLU con fugas, ReLU paramétrica (PReLU), unidad lineal exponencial (ELU), unidad lineal exponencial escalada (SELU), softmax, swish, gaussiana, etc. Intentar mezclar estas posibilidades con todas las demás variables que se podrían cambiar en una red neuronal es como mover una pieza de un cubo de Rubik solo para desordenar nuestros movimientos anteriores. Hay demasiadas opciones posibles a este nivel para que el ensayo y error sea viable.

Pero ahora imagina que, en lugar de intentar diseñar la mejor función de activación como algo aislado, creamos algo menos definido y más flexible. Lo más parecido que tenemos ahora son las funciones de activación aprendibles. Estas funciones incluyen parámetros que se ajustan durante el proceso de entrenamiento, permitiendo que la función cambie su forma dinámicamente. No importa si este enfoque funciona o no. La clave es no intentar diseñar la flexibilidad, sino poner algo que cambie su composición como parte de un todo. Cuanto menos definida esté la cosa en el sentido reduccionista, mejor. Igual que las mitocondrias pierden su definición fuera de la célula, las funciones de activación tienen un papel que no se puede definir fuera de la red. Es parte de una solución en la que lo que importa es su presencia en el grupo. No nos toca a nosotros saber cómo debe ser la función de activación. Solo que su estructura y función deben emerger de forma natural, mientras que nosotros solo nos preocupamos por los objetivos de nivel superior.

Para conseguir las mejores funciones de activación, arquitecturas de red, procesos de datos, funciones de pérdida, algoritmos de optimización, etc., no hay que diseñarlos. Hay que dejar que se materialicen enfocándonos solo en el nivel superior del problema que intentamos solucionar. Tenemos que llegar a meta lo más alto posible manteniendo partes internas flexibles.

A muchos científicos e ingenieros les incomoda que el progreso se defina bajo tal falta de precisión. Pero así es como funciona la complejidad. Meter más datos y potencia computacional a construcciones muy flexibles es como emergerán las mejores estructuras posibles. No hay más que ver la forma en que construye la naturaleza para darse cuenta de que esto es cierto. Esto es lo que significará construir en la era de la complejidad, si lo hacemos bien.

Ahora, hablemos de la cosa que buscamos, las estructuras meta. No hay dos copos de nieve iguales. Bueno, esto solo es cierto si miramos los detalles. Si hacemos zoom en un copo de nieve, veremos un patrón único, marcado por su cristalización diferente. Como la huella dactilar, la estructura detallada que vemos de cerca solo pertenece a ese copo de nieve. Pero si nos alejamos para ver el copo entero, vemos algo familiar. Todos los copos de nieve se pueden llamar "copos de nieve" porque comparten un patrón común. Y ese patrón no lo podemos definir de forma explícita. Si le pidiéramos a siete artistas que dibujaran la esencia de un copo de nieve, sus dibujos se parecerían, pero no serían idénticos. Todos entendemos cómo es un copo de nieve, pero ese entendimiento no nos lo da una definición precisa. Es una estructura latente que conocemos de forma intuitiva.

La esencia de algo, como la esencia de un copo de nieve, es lo que buscamos cuando aprendemos. Conocer un copo de nieve no es conocer un ejemplo de él, sino observar muchos y crear una abstracción sin etiqueta en nuestra mente que lo defina. Aprender es entender el modelo oculto al que se adhieren muchos ejemplos de un fenómeno, pero que nunca se manifiesta de forma explícita.

Por eso no hay palabras para describir cuál es la esencia de algo. Si uno aprende a tocar el piano, a hacer "swing" con un palo de golf o a desarrollar teorías en mecánica cuántica, está conectando con un patrón compartido entre innumerables experiencias. No es algo que se pueda descomponer en piezas y enseñar directamente a otros. Por eso la verdadera habilidad parece más un sentimiento que algo describible. Si lo puedes explicar con precisión, o no es una habilidad real o no eres muy bueno.

Y por eso la experiencia es la única forma de lograr una verdadera habilidad. No es que uno tenga que seguir viendo lo mismo, sino que tiene que seguir experimentando muchos ejemplos diferentes de la misma cosa latente. Solo entonces se reconocerán las verdades invariantes, porque son lo que persiste cuando todo lo demás cambia. Un pianista tiene que tocar (o mejor, componer) muchas canciones diferentes para que esta actividad le deje claro lo que significa tocar el piano. El golfista tiene que hacer innumerables "swings", cada uno ligeramente diferente, para comprender lo que hace un buen "swing".

El verdadero aprendizaje ocurre al exponernos a muchos aspectos diferentes de algo. Es la estructura no dicha, intuitiva y latente lo que buscamos. Es lo que sobrevive a la mente, pero no tiene nombre.

Uno puede predecir el aspecto general de un copo de nieve, pero no puede predecir cómo será el siguiente. Por eso los detalles no importan en la naturaleza, al menos no en el sentido en que nos suelen enseñar. Los detalles solo están ahí para cambiar, en servicio del siguiente nivel de abstracción. Como dice la realización múltiple, siempre habrá muchas formas de lograr lo mismo. Ver los detalles es ver solo una manifestación de una colección que sirve al siguiente nivel.

Esto significa que la única forma de describir o explicar realmente un copo de nieve es hablar de él en el sentido meta. Solo las propiedades generales y compartidas de todos los copos de nieve representan un conocimiento verdadero de la estructura y el comportamiento de un copo de nieve. Cualquier descripción detallada estará llena de reduccionismo y razonamiento causal, sin tener mucho que ver con por qué un copo de nieve tiene el aspecto que tiene.

La estructura real que define el copo de nieve es su estructura meta. Una estructura meta es el patrón latente que no aparece directamente en la naturaleza. Las estructuras meta son los modelos ocultos que las soluciones de la naturaleza intentan ser, pero nunca lo logran. Cualquier cosa que construyamos en la era de la complejidad tendrá la existencia de una estructura meta, porque las estructuras emergentes que vemos en los objetos complejos gravitan hacia patrones latentes.

En la parte tres veremos cómo el conocimiento de las estructuras meta es una validación verdadera al construir cosas complejas (en contraste con cosas como los principios de diseño o las supuestas causas). Las estructuras meta no tienen nada que ver con los detalles internos de los objetos complejos. No intervienen en la convergencia natural y automática de la materia y la información que hace que las cosas complejas funcionen como lo hacen. Por eso las estructuras meta representan una forma de validación bajo complejidad.

Mencioné antes que la ingeniería de la IA, a pesar de ser nuestro mejor ejemplo de trabajar externamente a los detalles, sigue estando llena de diseño. Los ingenieros de IA intentan diseñar sistemas tomando decisiones explícitas sobre cómo deben funcionar y actuar. Y luego dije que estoy en contra de esos esfuerzos por razones que ya dije. Las mejores estructuras que podemos lograr son un subproducto de operar en la superficie, sin preocuparnos mucho por los detalles internos de lo que construimos. Esto nos evita hacer un ensayo y error inútil y, en cambio, nos integra en las realidades físicas que esperamos modelar.

Puse el ejemplo de la función de activación que tiene un papel que no se puede definir en términos reduccionistas. Es parte de una solución en la que lo que importa es su presencia en el grupo. Esto significa que lo que realmente buscamos cuando construimos soluciones para problemas difíciles es la existencia del mejor grupo posible. Y esto nos lleva al último aspecto de desmitificar la emergencia. ¿Cómo crea siempre la naturaleza el mejor grupo posible y cómo podemos hacer lo mismo los humanos?

Primero, vamos a ver cómo forman grupos los humanos bajo el paradigma actual. No me refiero a la formación de grupos que se encuentra de forma natural, como el surgimiento de sociedades o movimientos sociales. Hablo de grupos como equipos deportivos, estudiantes universitarios y empleados; grupos que se eligen a mano para un propósito relacionado con el rendimiento. Estos grupos se crean a través de la selección explícita de individuos. Queremos diversidad de habilidades, así que contratamos a personas con experiencia técnica y conocimientos específicos. Definimos roles y responsabilidades claras, como el liderazgo o los conocimientos técnicos. Buscamos ciertas personalidades, estilos de trabajo y habilidades de colaboración. Queremos que haya una buena cultura entre nuestros jugadores, estudiantes o empleados y un conjunto de valores compartidos. También hay niveles de experiencia y, a veces, consideraciones geográficas.

Toda esta selección parece tener sentido hasta que nos damos cuenta de que huele a diseño. Asumimos que sabemos los papeles que deben jugar las diferentes personas en un grupo y admitimos a las personas en los grupos basándonos en esos criterios. El lector debería darse cuenta ya de que esta no es una buena forma de crear grupos. Lo único que podemos saber es que necesitamos el mejor grupo posible, no qué papeles harán las mejores piezas. Como te imaginarás, la naturaleza no toma decisiones explícitas sobre los papeles (a pesar de cómo le gusta a la ciencia reduccionista hablar de los papeles en la naturaleza). La naturaleza puede seleccionar el mejor grupo haciendo eso, selección de grupo.

Usando nuestro ejemplo de la taxonomía, podemos decir que una especie existe porque los organismos individuales trabajan juntos para solucionar el problema de la especie, que es delimitar grupos de organismos que están reproductivamente aislados entre sí. Quizás esto ayuda con la compatibilidad genética y una reproducción con menos errores. Quizás asegura que diferentes especies ocupen nichos ecológicos para reducir la competencia por los recursos. Quizás mejora la diversificación, introduciendo un nivel de estabilidad y resistencia dentro de los ecosistemas. Quizás es todo esto.

Podemos esperar que el siguiente nivel, el género, traiga más funcionamiento del ecosistema que es necesario para la vida en la tierra. La distribución de recursos, la polinización, la dispersión de semillas y los nuevos niveles de biodiversidad, estabilidad y estructuración del hábitat operan a este nivel.

Como ya dije, todos los problemas tienen una estructura, y la naturaleza manifiesta lo que se necesita para solucionar esa estructura. Los niveles de abstracción que hay debajo del nivel superior, llamado supervivencia, solo pueden ser atendidos por grupos. Un grupo es una colección de piezas que trabajan juntas para solucionar un nivel dentro de la estructura de un problema.

Esto significa que la selección en la selección natural tiene que ser selección de grupo. Este ha sido un tema polémico durante muchos años, porque la idea de la selección de grupo va en contra de ideas contemporáneas como la teoría del gen egoísta. La teoría del gen egoísta fue propuesta por el biólogo Richard Dawkins en su libro de 1976, "El gen egoísta", que se ha convertido en una piedra angular de la biología evolutiva. Esta teoría sugiere que los genes individuales son las unidades primarias de selección en la evolución y que actúan en su propio interés para asegurar su supervivencia y propagación. Esta es, por tanto, una visión de la evolución centrada en los genes, que afirma que el objetivo final de los genes es replicarse a sí mismos, mientras que los organismos son solo el medio por el cual los genes logran este objetivo.

La selección de grupo es una perspectiva muy diferente. Mientras que la teoría del gen egoísta se centra en el gen como la unidad primaria de selección, la selección de grupo se centra en la evolución de rasgos que benefician a un grupo, incluso si son perjudiciales para la adaptación de un individuo. En la selección de grupo, la selección actúa sobre grupos de individuos, favoreciendo los rasgos que benefician al grupo en su conjunto.

El problema con la teoría del gen egoísta es que no se alinea con cómo computa la naturaleza. Sugerir que hay un solo tipo de construcción que es seleccionado de forma única por la naturaleza no se adhiere a lo que sabemos de información, computación y evolución. De las secciones anteriores, debería quedar claro que la naturaleza va meta a todos los niveles, permitiendo la creación de las abstracciones físicas necesarias para comprimir información y computar salidas a problemas difíciles. Si la evolución solo seleccionara a nivel de genes, todo este proceso meta no funcionaría.

Creo que la teoría del gen egoísta es poco más que reduccionismo en la biología. Es tentador considerar que los genes tienen el papel principal en la evolución, pero, en realidad, un gen es solo una pieza

Go Back Print Chapter