Cuando comienzas una discusión con un buen filósofo sobre, pongamos por ejemplo algo que está muy de moda en estos días como es la libertad, más pronto que tarde, te pedirá que se la definas. Y es que los filósofos saben que gran parte de los malentendidos vienen de no tener clara la definición del concepto en liza ¿Libertad de qué? ¿De poder tomarnos unas cañas, de poder cambiarnos de sexo o de poder pagar a nuestros empleados el sueldo que se nos antoje?

Sin embargo, es muy curioso, cuando no un total escándalo, que si nos adentramos en las principales disciplinas académicas, nos encontramos con que en, prácticamente ningún concepto fundamental, hay acuerdo alguno. Si nos vamos a la biología no hay definiciones consensuadas de vida, adaptación, gen, especie, raza… ¡Conceptos cruciales sobre los que se sustenta toda la biología! En la física igual: materia, tiempo, espacio, partícula, energía… Puede haber modelos matemáticos que permiten precisas predicciones, pero definiciones en román paladino no hay en las que todos confluyan. Y si ya nos vamos a disciplinas cuyo objeto es menos tangible como la psicología, la disparidad se multiplica: ¿Qué es la mente, la inteligencia, la personalidad? ¿Qué es enfermedad mental y qué no lo es? Nos encontraremos con tantas definiciones como escuelas, corrientes o incluso psicólogos particulares. Imagine el lector en el campo en el que yo ahora investigo, la consciencia, el número de definiciones distintas y la confusión que generan.

Desde luego, esto daría para caer en un escepticismo duro, concluyendo que nuestras ciencias son un desastre mayúsculo y que jamás llegaremos a ningún conocimiento certero sobre la realidad ¿Cómo los científicos pueden decirnos algo con sentido si no pueden definir de lo que nos hablan? No tan rápido. Me gusta citar una anécdota que no recuerdo donde leí pero que dice así: estaba Francis Crick dando una larga conferencia sobre el ADN cuando un oyente le espetó: “Profesor Crick, lleva usted varias horas hablando de seres vivos pero no nos ha definido en ningún momento qué es la vida”. Crick respondió: “Dejemos las cuestiones de higiene semántica para los filósofos”. Moraleja: un eminente científico podía hacer avanzar la ciencia, tanto como para descubrir la estructura del ADN, sin tener una definición clara y precisa de su objeto de estudio.

Vamos a aproximarnos un poco a lo que entendemos por definición. Definir algo no consiste en captar su esencia, en descubrir un “secreto” que el objeto a definir guardaba “dentro”. Definir algo es, sencillamente, distinguirlo de cualquier otra cosa. Así, cuando defino “silla” lo que pretendo es que mi interlocutor no confunda en su mente una silla con una mesa o con un sofá. La RAE la define como “Asiento con respaldo, generalmente de cuatro patas, en el que solo cabe una persona”. A bote pronto, parece una definición bastante aceptable. Al decir que “generalmente tiene cuatro patas” seguimos entendiendo como sillas aquellas de diseño que puedan tener, por ejemplo, solo tres patas. Sin embargo, me parece que el punto débil de la definición está en la parte final: “…en el que solo cabe una persona”. Si en una supuesta silla se sientan dos niños… ¿deja de ser una silla? O si en ella no cabe una persona obesa… También podemos pensar en una silla en miniatura de una maqueta… ¿no es una silla?

Aquí entran las tareas de “higiene semántica” de los filósofos a las que se refería Crick. Estos tipos raros dedicarán horas y horas a intentar encontrar definiciones más precisas. Sin embargo, pensemos que aunque nuestra definición de silla no sea perfecta, la mayoría de la gente comprende perfectamente qué es una silla y la distingue muy bien de cualquier otro objeto. Solo en poquísimos casos limítrofes nos encontraríamos con objetos que no sabríamos decir si son sillas o no. Incluso en el caso de una silla en miniatura, cuando se incumple claramente la tercera cláusula de la definición, todo el mundo la sigue llamando silla sin ningún atisbo de duda. Las definiciones funcionan muy bien aunque no sean perfectas. Incluso solemos saber identificar y distinguir muy bien los objetos sin tener siquiera una definición elaborada lingüísticamente en nuestra mente. Por ejemplo, si me preguntan ahora qué es un tigre, tendré que estar un rato pensando qué cualidades lo distinguen de otros seres, y quizá no llegue a ninguna buena definición; empero, habitualmente, puedo diferenciar a un tigre de cualquier otro ser con bastante competencia.

Además, y esto es lo importante, las definiciones evolucionan a lo largo de la investigación. Si, antes de comenzar a investigar, ya tenemos una definición definitiva… ¿Qué sentido tiene entonces la investigación? Pensemos en la historia de los átomos. Desde que los atomistas griegos los definieran como los últimos componentes de la materia (ἄτομος : “indivisible”), hasta la actualidad, su definición ha variado enormemente. Desde que Platón entendiera los átomos como sólidos regulares, pasando por Dalton, Thomson, Rutherford, Bohr o Schrödinger, ha llovido muchísimo. De hecho, la definición inicial ya no nos sirve para nada: los átomos no son los componentes últimos de la materia, ya que están divididos en muchas otras partículas más pequeñas. Ahora sabemos que los átomos y sus componentes tienen propiedades que antes desconocíamos y que podemos incluir en su definición. Sabemos que hay muchos tipos, tamaños, de diferente composición… Hablamos de masas, cargas, spines, fuerzas, enlaces… Nuestro conocimiento se ha ampliado con una gran riqueza de nuevas notas, y también de nuevos interrogantes ¡Eso es progreso científico!

Durante algún tiempo me preocupó mucho la ausencia de definiciones. Cuando analizaba el estado de las variadas ciencias y solo encontraba en ellas un maremágnum de discusiones, sin un atisbo de lo que Kuhn llamó “ciencia normal”, entendía muy bien las razones del relativismo y del escepticismo. Si bien, por otro lado, me congratulaba maliciosamente de que las ciencias naturales se encontraran en dificultades no muy distintas a las clásicas de las ciencias humanas o sociales. Durante mucho tiempo también pensaba que la precisión y el rigor eran cualidades de las ciencias empíricas, mientras que las humanidades eran más chapuceras en este sentido… ¡Nada más lejos de la realidad! En ciencia hay tanto torticero como en cualquier otro lugar del mundo. El rigor está en manos del investigador en cuestión, no dependiendo, para nada, del campo en el que trabaje. Superados estos complejos, ahora ya no me preocupa tanto el problema de carecer de definiciones precisas. Las ciencias avanzan igualmente y estos desacuerdos enriquecen mucho más que oscurecen ¡Qué aburrido sería todo si el conocimiento fuera uniforme y estandarizado!

Otro apunte interesante con respecto a las definiciones es la problemática que aparece cuando queremos definir la totalidad de lo que existe. Por ejemplo, cuando defendemos el materialismo, entendiendo que todo lo que existe es materia, tenemos un serio problema: las definiciones distinguen nuestro objeto a definir de todos los demás objetos, pero si lo que pretendemos definir es el todo… ¿de qué distinguimos el objeto? Así, cuando decimos que todo es materia… ¿Cómo definimos materia si no podemos oponer la definición a otra cosa diferente, ya que no hay nada diferente? De hecho, aquí la definición de definición que hemos utilizado, valga la redundancia, perdería su sentido: definir como distinguir de otra cosa aquí no funciona ¡Tenemos que redefinir definir! Y es que de definición… ¡también hay muchas definiciones!

Mi coche autónomo se encuentra ante uno de los clásicos dilemas del tranvía. Vamos por un estrecho desfiladero y un niño se cruza en el camino. No hay tiempo para frenar, así que solo hay dos opciones: o atropellamos al niño o nos lanzamos al vacío por el desfiladero. El software del coche tiene que tomar la trágica decisión: o matar al niño o matarme a mí ¿Qué debería hacer? ¿Podríamos decir que el software es un agente moral y, por tanto, responsable de tomar la decisión?

En principio, la respuesta es fácil: claro que no. El software solo sigue instrucciones implementadas en su código por un programador. El evidente responsable de la decisión es quien programó a la máquina para tomar la decisión. Aquí no cabe discusión. Sin embargo, pensemos en las nuevas arquitecturas de aprendizaje profundo. Imaginemos que entrenamos a una red convolucional para clasificar gatitos, de modo que cada vez que le presentemos una imagen sea capaz de decir si allí hay un gato o no. Entonces le enseñamos una foto de un gato Kohana, un subtipo de la extraña raza Sphynx. Antes de enseñársela el programador no sabe qué va a responder la red, porque ésta decidirá en función de su aprendizaje, no de ninguna instrucción previamente programada ¿Podemos entonces decir que ha tomado una decisión y que, por tanto, estamos ante un agente moral?

No tan rápido. Tengamos en cuenta que, a pesar de que la decisión fue fruto del aprendizaje, la máquina obró de una forma completamente determinista. De hecho, siempre volverá a tomar la misma decisión en el futuro. De la misma forma, la red no es consciente de nada, no tiene emociones, ni intención ni siquiera obra siguiendo el deseo de hacer lo que hace ¿Es o no es un agente moral? Podríamos decir que, desde luego, no es un agente moral completo pero ¿Qué mínimos serían los suficientes para decir que estamos ante un agente moral? A fin de cuentas, si pusiéramos a nuestra red convolucional al mando de nuestro coche autónomo, podría tener que decidir si atropellar al niño o matarnos sin que el ingeniero se lo hubiera indicado de antemano. La red estaría tomando una decisión que, si la tomara un humano, diríamos con meridiana certeza que es una decisión moral. El filósofo John P. Sullins, de la Universidad Estatal de Sonoma en California, sostiene que si una IA es capaz de autonomía con respecto a sus programadores, podemos explicar su comportamiento apelando a intenciones morales y muestra comprensión de su responsabilidad con respecto a otros agentes morales, es un agente moral. Quizá, nuestra red convolucional incumple la segunda y la tercera condición: no obra con intenciones ni parece mostrar demasiada comprensión de su responsabilidad pero, ¿Y si obrara como si las tuviera? ¿Y si su conducta fuera siempre responsable ante los otros aunque no hubiese intención ni compresión?

Luciano Floridi, filósofo de Oxford, rebaja un poco más las condiciones: si la IA es capaz de cierta interacción con otros agentes morales, cierta autonomía y cierta adaptabilidad, ya podríamos hablar de agencia moral. Estas condiciones están ya aquí. Un bot conversacional como Blender de Facebook estaría muy cerca, si no lo ha conseguido ya, de cumplirlas. Floridi nos insta a hablar de moralidad a-mental, es decir, de moral sin mente, tal y como la llevarían a cabo las máquinas.

Pero, con independencia de lo que pensemos los filósofos, los algoritmos se irán volviendo más autónomos, más adaptables e irán interactuando cada vez más, y a más niveles, con nosotros. Los usuarios, ignorantes de su funcionamiento interno, solo podrán observar su comportamiento, el cual será indistinguible del de las personas que actúan moralmente, por lo que, al final, actuarán con ellas como si fueran agentes morales de pleno derecho. Cuando Stan Franklin intentó llevar la teoría del espacio de trabajo global de la consciencia de Bernard Baars en un programa llamado LIDA, que se encargaba de comunicarse vía e-mail con marineros de la armada norteamericana, los usuarios no tenían demasiados problemas en afirmar que LIDA era un ente consciente. Así, estamos seguros, no tendrían problemas en otorgarle agencia moral (Ya hablamos de lo fácil que es otorgar mente y empatizar con seres teóricamente inertes). Dentro de un tiempo, no parecerá demasiado extraño contemplar a una persona regañando o castigando a un robot doméstico por haberse portado mal. Pero claro, ¿llegaríamos entonces a juzgar y encarcelar a un algoritmo? Parece muy absurdo meter líneas de código en prisión. Entonces, ¿de qué estaríamos hablando? ¿Estaríamos ante máquinas que obran moralmente pero que no tienen que rendir cuentas cuando obran mal? ¿Moral sin responsabilidad?

Así es. La moral de las máquinas sería una moral arresponsable ya que no tiene ningún sentido castigar a una máquina (únicamente lo tendría si queremos simular ese comportamiento para que la máquina se parezca más en su conducta a un humano). Si un algoritmo actuara moralmente mal, sencillamente, habría que repararlo, corregir su software para que ese comportamiento no se repitiera. La responsabilidad final, por mucho que el algoritmo tomara decisiones autónomas que no fueran previstas por el programador, será de un humano, ya fuera el diseñador, la empresa o el usuario, de la misma forma que un menor de edad o una mascota son responsabilidad de sus padres o dueños . Sin embargo, esto sigue trayendo problemas. Los grandes programas de software están diseñados por muchos programadores diferentes que trabajan para distintas empresas en diversos tiempos. Así, en muchas ocasiones, se hace muy difícil rastrear quién desarrolló cada parte del programa y qué parte de responsabilidad tiene esa parte en la ejecución de la acción moralmente reprobable. También tenemos el problema del secreto industrial: las empresas no querrán desvelar cómo funcionan sus IAs, e, incluso, podrían diseñar sus sistemas de forma intencionalmente opaca para eludir cualquier responsabilidad. Y, para colmar el vaso, tenemos el problema de la caja negra: los sistemas de deep learning son terriblemente opacos per se. Difíciles tiempos aguardan a los juristas que quieran poner orden aquí.

Una original propuesta es la del jurista neoyorquino David Vladeck: en caso de un coche autónomo será el propio coche el que cargue con la culpa. Se crearía una nueva figura jurídica, “coche autónomo”, a la que se obligaría a tener un seguro. La prima de pago del seguro oscilaría en función de los accidentes que tuviese ese modelo en concreto, de forma que un modelo muy inseguro pagaría un precio tan elevado que a la empresa automovilística no le saldría rentable seguir produciéndolo, de modo que se fomentaría la carrera por diseñar coches cada vez más fiables. Es una idea.

En abril de 2019 el Allen Institute of Brain Science celebraba la culminación de un ambicioso proyecto de investigación: cartograficar cada una de las 100.000 neuronas y cada una de las 1.000 millones de sinapsis contenidas en un milímetro cúbico de la corteza cerebral de un ratón. Por el momento, se trata del conectoma (así se llama este tipo de “mapa”) a nanoescala de mayores dimensiones, valga el oxímoron. Dentro de este granito de arena había unos cuatro kilómetros de fibras nerviosas. El equipo tomo imágenes de más de 25.000 secciones ultrafinas de tejido contenido en ese minúsculo volumen, generando un conjunto de datos (dataset) de dos petabytes, suficiente capacidad como para unos 50 millones de elepés en MP3: el faraón Mentuhotep III podría haberle dado al “play” en el año 2000 a. C. y todavía no se habría repetido ni una sola canción. Si quisiéramos mapear de forma análoga la corteza cerebral humana generaríamos un zetabyte: aproximadamente, la cantidad de información registrada en todo el mundo a día de hoy. Si a esos datos meramente morfológicos quisiéramos añadir datos más específicos, acerca de la tipología química de las sinapsis, pongamos por caso, necesitaríamos múltiplos de esa cifra. Si a esos datos quisiéramos añadir, adicionalmente, datos acerca de, por ejemplo, el citoesqueleto proteico que configura la estructura interna de la neurona – y no olvidemos que importantes especialistas sostienen que el mismo es crucial para la “vida mental del cerebro” – , generaríamos por cada neurona una cantidad de información similar a la requerida para mapear la anatomía neuronal del cerebro completo. Si a estas “fotos” quisiéramos añadir datos acerca de la actividad acaecida cada segunda en cualquiera de estos niveles de organización, necesitaríamos, sencillamente, elevar una cifra astronómica a otra absurda. Se trata de hechos que no debieran descuidar los que fantasean con “simulaciones computacionales del cerebro”.

Arias, Asier. Introducción a la Ciencia de la conciencia. Catarata. Madrid, 2021. p. 223-224.

Desde luego, vienen bastante bien unas dosis de realismo acerca de las posibilidades de construir cerebros artificiales. Pero que no cunda el desánimo. No hace falta tener un mapa de grano tan sumamente fino para comprender el funcionamiento de nuestra mente. A fin de cuentas, podemos explicar bastante bien el funcionamiento del brazo, sin tener un mapa de todas y cada una de las fibras musculares y óseas que lo componen. Lo interesante entonces no es el realismo del mapa en sí, porque la explicación de su funcionamiento estará a otros niveles explicativos superiores. Por eso nunca me han impresionado demasiado todos estos proyectos titánicos de mapeo cerebral. Como se ha mencionado muchas veces, ya tenemos desde hace años todo el conectoma de la Caenorhabditis elegans, que solo tiene 302 neuronas y unas 8.000 conexiones sinápticas, y no somos capaces de predecir su conducta ¿por que íbamos a sacar algo en claro de cerebros exponencialmente más complicados? En el fondo, se trata de una miope obcecación reduccionista. Y es que el reduccionismo es una estrategia siempre saludable, menos cuando deja de serlo.

P.D.: puedes descargarte una aplicación del Allen Institute para ver mapas del cerebro en 3D aquí. Y también tienen un mapa muy chulo de la conectividad del cerebro del ratón aquí.

Culpo directamente a los medios de dar una cobertura mediática desmedida a personajes que no la merecen. Es el caso de terraplanistas, negacionistas, transhumanistas… y ahora de chavales como Pablo Hasél o Isabel Peralta, jóvenes sin formación ni talento alguno demostrables, que copan minutos y minutos, páginas y páginas del espacio público. No es de extrañar que, al final, los imbéciles tomen el Capitolio y la imagen de nuestra era sea la de Jake Angeli, con su disfraz de piel y cuernos, asaltando el edificio que simboliza la democracia moderna. Y es que si miramos las estadísticas, toda esta gente constituyen una minúscula minoría. Gente que piense que la tierra es plana o que los judíos son los culpables de los males de nuestro tiempo, tiene que contarse con los dedos de la mano ¿Por qué entonces tanta amplificatio?

Culpo directamente a los partidos políticos de no saber salir de este dilema del prisionero siniestro de la politización y simplificación absoluta de todo. Desde el segundo uno del caso Hasél, nos inundaron los memes que establecían la comparativa con el homenaje a la División Azul, lanzando la torpe pregunta de por qué a uno sí y a otros no ¿De verdad que todo se reduce a esto? ¿De verdad que, sencillamente, vivimos en un Estado Fascista que permite alabanzas a Hitler y castiga canciones de rap? ¿En serio que todo se reduce a esta película de buenos y malos? La reflexión sobre los límites de la libertad de expresión, que debería ser el centro del debate, queda en los márgenes de la arena pública y al final solo tenemos el Sálvame Deluxe de las tertulias televisivas, saturadas de charlatanes serviles a unos intereses bien remunerados. Así que vamos a salirnos de esa tendencia y a hablar del tema de interés: los límites de la libertad de expresión.

¿Es punible de alguna manera lo que ha hecho el señor Hasél? Sí. Creo que es muy importante la distinción entre ideas y personas. En nuestro Estado de Derecho lo más importante a defender son los individuos, las personas, por lo que parece razonable castigar cualquier delito de injurias contra cualquier persona (sea el rey, Pablo Iglesias o Alberto Chicote). Es diferente decir “Me cago en la monarquía” refiriéndome al sistema político en general, que “Me cago en Juan Carlos I de Borbón”. La primera frase solo estaría atacando a una abstracción teórica (una idea), mientras que la segunda estaría atacando a una persona. La primera no debería ser punible mientras que la segunda sí.

Otro tema, diferente si bien no menos importante, es si Pablo Hasél debería entrar en la cárcel por lo que ha hecho. Aquí entra en juego el siempre difícil tema de la proporcionalidad de los castigos con respecto a los delitos ¿Las injurias contra la corona y otras instituciones del Estado, así como el enaltecimiento del terrorismo, deberían conllevar penas de prisión? ¿O sólo valdría con una multa u otro tipo de sanciones menores? Desde mi punto de vista, si bien estoy abierto a muchas y razonables objeciones, creo que en el caso Hasél tampoco se ha cometido ningún abuso jurídico, ni las leyes en las que se han basado para su condena parecen desproporcionadas. El delito de enaltecimiento del terrorismo (artículo 578 del Código Penal), por el cual le ha caído la mayor parte de la condena, castiga con de uno a tres años de prisión. No se a usted, querido lector, pero para mí enaltecer el terrorismo es una cosa muy grave que merece bastante escarmiento. Otra cosa, y aquí sí que hay un problema, es que las declaraciones en las que se enaltecía el terrorismo estaban dentro de una canción, lo cual añade un matiz muy diferente: ¿hay injuria si estamos dentro de una obra de arte? ¿No estaríamos limitando el arte si juzgamos la expresión artística? De nuevo creo que no. Habría que analizar caso por caso y seguro que podemos encontrar ejemplos en los que sería difícil decidir, pero en el caso de las canciones de Hasél creo que no hay duda de que en ellas hay un delito claro de odio. Pensemos que si decimos que no, estamos dando patente de corso para que cualquiera que nos quiera insultar y librarse del castigo, lo único que tiene que hacer es darle un barniz artístico a su agravio. Si quisieras llamarme “Hijo de puta” sin castigo alguno, solo tendrías que decírmelo cantando.

También es importante distinguir entre personas e instituciones. Puede parecer razonable que ciertas instituciones de nuestro país merezcan una especial protección debido a lo que representan. En el caso de la policía o la guardia civil es muy obvio. Si pudiésemos estar todo el día pitorreándonos e insultado a cualquier policía que nos encontremos por la calle, difícilmente iba a poder cumplir su, tantas veces desagradable, misión, que no es otra que protegernos (y que en la inmensa mayoría de los casos hacen con justicia y diligencia). Aquí creo que el debate estaría en a qué gremios o instituciones deberíamos también considerar con especial respeto y si habría que establecer una gradación entre ellos: ¿Médicos, profesores, bomberos, funcionarios de la administración…? ¿Y las profesiones liberales? ¿Esas no? ¿Por qué? Y entremos en el caso más peliagudo: ¿Y la corona?

En este caso, si aceptamos que la corona es una institución que merece un especial respeto, podríamos hacer punible también la injuria a los miembros de la Casa Real, tal y como hace nuestra Constitución (artículo 490.3). Esto puede no gustar a los republicanos, para los que, obviamente, la monarquía como institución no merece ningún respeto. Sin embargo, desde mi punto de vista, aquí ha de prevalecer el imperio de la ley. Nos guste o no, nuestro sistema de gobierno es una monarquía parlamentaria y, mientras así sea, hay una ley que protege especialmente esta institución. Por lo tanto, si aceptamos que nuestras leyes son fruto del consenso democrático, hemos de aceptarlas aunque no nos gusten. Esto es así porque si permitimos que no se cumpla una ley vigente estamos abriendo la caja de Pandora para que no se cumplan muchas más. Yo podría pensar que es injusto no poder superar los 120 Km/h de velocidad en las autovías debido a que Alemania no tiene límite de velocidad en las suyas, y no parece que les vaya mucho peor que a nosotros en cuanto a número de accidentes y, en consecuencia, rebelarme contra la ley e incumplirla ¿Sería razonable vivir en un mundo en el que cada cual se salta continuamente las leyes en función de sus creencias?

Si queremos que España llegue a ser una república, lo que hay que hacer es intentar conseguirlo mediante las vías legales y democráticas vigentes. Lo que hay que hacer es convencer al amplio sector de la población que todavía cree en la monarquía, que una república sería un mejor sistema. Ese es el único camino. Punto.

Y otra distinción a tener muy en cuenta está entre el vulgar insulto y la crítica racional. Yo, la verdad, no entiendo qué se aporta al mundo insultando a quien sea, sea el rey o sea Perico el de los palotes. Y en eso creo que la democracia española lo tiene claro. No he visto a ningún autor detenido ni censurado por hacer críticas argumentadas contra el sistema monárquico ni contra la institución. Yo mismo soy abiertamente republicano y nunca me he visto censurado ni amenazado por la policía por serlo. En este sentido, afirmar que España es un país donde no se respeta la libertad de expresión es una gran mentira (Eso sí, Facebook tiene vetado mi blog, pero eso creo que se debe más a la imbecilidad algorítmica y/o ingenieril de los de Facebook, que a ninguna censura oculta).

La libertad de expresión es un bien tan sagrado, que deberíamos pensarnos muchísimo cuándo y cómo lo limitamos. Por eso creo que, en cualquier caso, hay que intentar que los excesos sean castigados en las menos ocasiones posibles. Es decir, es mucho mejor tolerar que se pase de la raya, que pasarnos de estrictos en la legislación y su cumplimiento.

Recuerdo hace ya más de diez años el famoso caso de la campaña de Dawkins con sus autobuses ateos. Las asociaciones religiosas contraatacaron con otra cuyo lema era “Los niños tienen pene. Las niñas tienen vulva. Que no te engañen. Si naces hombre, eres hombre. Si naces mujer, seguirás siéndolo”. Esto causó un gran revuelo entre todas las asociaciones LGTBI, sindicatos, partidos de izquierda, etc. muchos de los cuales intentaron por todos los medios que se prohibiera la circulación del autobús. A pesar de lo lamentable que pueda parecernos un mensaje así, la libertad de expresión consiste en tolerar lo que nos disgusta. Así, en ese momento, yo defendí que el autobús transfóbico debía de seguir transitando porque esto debería ser una oportunidad para la reflexión, más que para la prohibición.

Y es que creo que las políticas de la prohibición, que ahora se llama eufemísticamente de la cancelación, no son un buen camino. Yo no quiero que mis hijos desconozcan lo que yo considero que es malo, sino que lo conozcan y que tengan herramientas racionales para aceptarlo o rechazarlo. A mí lo que me gustaría es que nos topáramos con el autobús y mis hijos me preguntaran qué significa y entonces yo les explicaría, y debatiríamos y reflexionaríamos sobre su mensaje. Hace unos días tuve noticias del historiador de Princeton, Dan-el Padilla, abogando por una cancelación de los clásicos greco-latinos debido a que en ellos puede verse racismo, machismo, justificación de la esclavitud, etc… O sea que como Aristóteles era machista y xenófobo, ya no hay que estudiarlo… Tales disparates son fruto de una mirada única tan miope como peligrosa. Hace poco también me llegó la noticia de la eliminación del nombre David Hume con el que se denominaba a una torre de la Universidad de Edimburgo, a causa de las relaciones que tuvo este filósofo con la esclavitud ¿En serio? ¿No estamos ante una broma?

Por eso la idea de pin parental con la que Vox ha roto su apoyo al PP en Andalucía es pasmosamente mala. No podemos entender que proteger a nuestros hijos sea librarlos de escuchar a cualquier persona que les diga algo contrario a nuestras ideas. Estaremos educando a niños dentro de burbujas de pensamiento único que, a la postre, serán terriblemente intransigentes con una diferencia a la que no estarán acostumbrados. No, hay que educar a nuestros hijos en el contraste, en la diversidad. Tienen que aprender a enfrentarse y a convivir con lo radicalmente otro, y eso, desde luego, no se hace poniendo vendas en los ojos.

Recomendación final: hay que leer Sobre la libertad de John Stuart Mill.

Collages de Deborah Stevenson.

Reflexiones en torno a un bucle for

Publicado: 12 febrero 2021 en Sin categoría
Etiquetas:, ,

Aprender a programar ha sido siempre para mí una actividad casi mística. El primer contacto con la programación fue a partir de mi Zx Spectrum 48k. Un día descubrí que con él no solo se podía jugar, sino que tenía implementado el lenguaje Sinclair BASIC. Y empecé a curiosear para qué valían esas instrucciones dibujadas en el, tan incómodo como simpático, teclado de caucho del Spectrum, descubriendo, poco a poco, la increíble maravilla tecnológica que es un lenguaje de programación. Habitualmente tendemos a ver como prodigios los productos de los lenguajes, pero no los lenguajes mismos. Flipamos con lo que hace AlphaZero o GPT-3 pero no caemos en la cuenta de que han sido desarrollados con unas herramientas alucinantes.

Recuerdo que la sentencia IF se me antojó muy divertida. Me parecía muy lógico ir mandando al programa de un lado para otro en función de si pasaba o no tal cosa, de si se daba o no una condición. BASIC incorporaba la sentencia GOTO que te permitía mandar el flujo del programa a la línea que quisieras, generando enseguida un lioso y complicado código espagueti. Pero lo que más me fascinó fueron los bucles FOR. A priori, parecían algo muy simplón. Si tienes que repetir algo muchas veces, en vez de tener que escribirlo una y otra vez, la sentencia FOR te ahorraba hacerlo. Pero luego fui descubriendo sus posibilidades. Podías crear contadores. Con la famosa “LET a = a + 1” (que luego se simplificaría por “a += 1” o “a++”, que da nombre al lenguaje C++) podías hacer secuencias de números. Es decir, el bucle FOR servía para generar cualquier secuencia, para ir almacenando una cantidad (como un acumulador) o como una alerta para cuando se llegue a un cierto valor (como un indicador). Pero es que además, y con esto lo flipé en colores, puedes anidar bucles FOR dentro de otros bucles FOR. Recuerdo que me pareció alucinante poder leer todos los valores de una matriz corriéndolos mediante dos bucles anidados, uno para las líneas y otro para las columnas ¡Había descubierto la recursividad! Pero es que, para más INRI, se podían combinar todos esos elementos. Podías meter IF dentro de los bucles; jugar con cadenas de texto; BASIC permitía funciones (de una línea eso sí); preguntas por pantalla con INPUT; tenías ese simpático sistema de guardar datos utilizando DATA y READ que no he vuelto a ver en otros lenguajes; podías también pintar y hacer música (fantástico el zumbador BEEP del Spectrum)… ¡Las posibilidades solo estaban limitadas por tu imaginación! Tengamos en cuenta que BASIC, a pesar de su simplicidad, es Turing completo, es decir, puede hacer todo lo que hace el supercomputador más potente que podáis imaginar. Mi pequeño Sinclair ZX Spectrum de 48 k de RAM y procesador Zilog Z80 a 3,5 Mhz era capaz de hacer lo mismo que la Fugaku de Fujitsu, con la única, si bien no trivial, diferencia de tiempo: lo que la Fugaku hace en milisegundos, el Spectrum lo haría en siglos…

El ser humano, ya lo hemos hablado muchas veces, se define por lo artificial. Su modo de sobrevivir más característico es la herramienta, el utensilio, el artificio, la máquina. Así, las manos son su adaptación por antonomasia: no son especialmente buenas para hacer nada, como lo serían las garras del tigre o las alas del pájaro, pero sin embargo, valen para hacer muchísimas cosas: son herramientas para hacer herramientas. Así, si el percutor y el bifaz fueron los instrumentos de los incipientes sapiens, los lenguajes de programación son los del hombre del XXI.

Los programas de Spectrum se guardaban en cintas de casete, y cuando querías cargarlos tenías que conectar un radiocasete al ordenador, darle al play y esperar un buen rato, a veces, más de media hora. En esas esperas tuve mi primer contacto con la aleatoriedad. Descubrí el comando RND que generaba un número pseudoaleatorio de ocho cifras entre 0 y 1. Me encantaba, sencillamente, diseñar generadores de frases que se articulaban aleatoriamente, lanzamientos de monedas, tiradas de dados… Recuerdo que tenía la ingenua idea de que todo funcionaba esencialmente así: el ser humano, el mundo… ¿Cómo tomamos decisiones los seres humanos? Mediante un mecanismo de toma de decisiones que, a veces, es determinista y, otras veces, ejecuta un RND. De alguna forma, y quién sabe si un poquito sea así, el lenguaje BASIC había atrapado la estructura de la realidad. Y, fíjate tú por dónde, estaba ante la clásica distinción entre apariencias y realidad que ha atravesado toda la historia de la filosofía occidental. Lo que observaba con mis sentidos es una capa postiza que envolvía la auténtica verdad: el código. Si Galileo decía que Dios había escrito el mundo en lenguaje matemático, yo pensaba que lo había hecho en BASIC.

Y luego ya cuando abandoné BASIC (todavía, por nostalgia, escribo de vez en cuando algunas líneas usando un emulador) y pasé a lenguajes de programación más serios (aprendí un poquito de C y de Java, pero al final me pasé a Python) mi fascinación ante el inabarcable abanico de posibilidades que proporcionaban no dejó de crecer. Me encantó la programación funcional, los módulos, las librerías. La idea es fantástica: haces un programita y lo dejas guardado para poder invocarlo cuando lo necesites. Además todo muy generoso y democrático: desarrolladores crean librerías llenas de esos programitas para que todo el mundo pueda utilizarlos gratuitamente. Hoy en día todo el que tenga un ordenador y una conexión a internet (entiendo que esto excluye, tristemente, a una buena parte de la población mundial) puede aprender programación y utilizar la inabarcable cantidad de recursos que pone la comunidad a su disposición ¿No me digáis que no es un logro sobresaliente en la democratización del conocimiento? Aprender a programar solo es cuestión de querer.

Me parecía muy sorprendente estar tratando con algo un tanto inexistente… ¿Dónde estaban esas líneas de código? No solo estaban en la pantalla como una imagen, pues podían hacer cosas, tenían poderes causales. Pero tampoco podía tocarlas, no eran netamente materiales. Era como estar en un mundo de entes abstractos, puros, el mundo inteligible de Platón, aún más cuando aprendí programación orientada a objetos: ¿Qué concepto hay que se parezca más a una idea platónica que el concepto de clase? (Podría ser muy interesante diseñar una programación orientada a objetos diferente, basada en otra ontología distinta ¿Qué tal en la ontología de procesos de Whitehead o, en general, en cualquier ontología en la que no existan los objetos en cuanto a tales? ¿No sería un buen tema para una tesis doctoral el diseño de un paradigma de programación basado en la teoría de sistemas de Bertalanffy o en la teoría de autómatas de Wolfram?). Termino esta entrada con unas bellas palabras del gran Frederick Brooks:

El programador, como el poeta, trabaja a poca distancia de las ideas puras. Levanta sus castillos en el aire, a partir de aire, creando a partir del ejercicio de la imaginación. Hay pocos medios de creación que sean tan flexibles, tan fáciles de pulir y reelaborar, tan capaces de hacer realidad al instante grandes estructuras conceptuales […] Y sin embargo, el concepto del programa, a diferencia de las palabras del poeta, es real en el sentido de que se mueve y funciona, produciendo resultados visibles separados del concepto mismo. Imprime resultados, dibuja imágenes, produce sonidos, mueve brazos. La magia del mito y la leyenda se ha vuelto realidad en nuestro tiempo.

Frederick Brooks citado por Marti Hearst en “Por qué los programas tienen virus”

Post scriptum: He descubierto que hay gente tan maravillosamente friki que da cursos de Sinclair Basic de forma completamente gratuita y desinteresada en Youtube. Es absolutamente genial. Y aquí encontré una serie de lenguajes de programación absurdos pero totalmente funcionales.

Diseño un programa para conducir un coche en un entorno simulado. Creo un contador al que llamo “módulo de dolor” que va sumando cada vez que el coche hace algo que no queremos que haga. Por ejemplo, suma uno cada vez que una de las ruedas pisa la línea que separa la carretera del campo, suma cinco cada vez que el coche toca algún otro coche o suma veinte si se sale completamente de la carreta o colisiona frontalmente con algún obstáculo. Obviamente, diseño el programa para que este contador sume lo menos posible. Como soy muy buen ingeniero de software consigo, después de horas y horas corrigiendo bugs (que es a lo que, básicamente, se dedica un programador), que mi coche circule a la perfección, sin cometer infracción de tráfico alguna.

Al día siguiente de la aparición de mi programa, la prensa publica a bombo y platillo: “Construyen máquina capaz de sentir dolor”, “Ingeniero construye ordenador con sentimientos”, “La llegada de las máquinas conscientes”, “La singularidad ha llegado”, “Máquinas con sentimientos que se rebelan contra sus creadores”… Cuando leo estos estrafalarios titulares maldigo la mala praxis periodística ¡Si ni siquiera me han entrevistado para preguntarme cómo funciona! Desde luego, no puedes creerte nada de lo que sale en los medios. Pero, ¿tendría yo alguna parte de responsabilidad en lo que ha pasado? Sí, y no poca.

Es lo que se llama el labeling problem, la responsabilidad que el ingeniero tiene a la hora de etiquetar, de nombrar sus programas. Si llamamos al contador de errores “módulo de dolor” estamos abriendo la caja de Pandora de las interpretaciones erróneas. Nuestro coche no siente ni la más mínima sensación cada vez que colisiona, no siente dolor alguno, por lo que estamos cometiendo una grave equivocación al llamar así al contador. Y es que esto ha pasado en no pocas ocasiones a lo largo de la historia de la inteligencia artificial.

Las mismas redes neuronales artificiales nunca debieron llamarse así. Si bien, en un principio, pudieron buscar su inspiración en las neuronas biológicas, las redes neuronales artificiales que forman parte de AlphaFold, por ejemplo, no se parecen en absolutamente nada a lo que tenemos dentro de nuestro encéfalo. Tal y como dicen Chella y Manzotti, las redes neuronales artificiales tuvieron que llamarse “Aproximadores funcionales no lineales” y ya está. Si eso hubiera sido así, nos habríamos ahorrado miles de páginas de literatura absurda y la gente tendría una visión mucho más realista de lo que, verdaderamente, es la inteligencia artificial.

Oye, oye, tampoco es para ponerse así. Solo estamos haciendo uso de metáforas, son solo formas de hablar para entendernos, pero nunca han querido ir más allá. Si la gente se las toma demasiado en serio no es culpa de los ingenieros. No es tan sencillo. En primer lugar dudo mucho que solo hayan sido formas de hablar que no han querido ir más allá, que ya somos mayorcitos y que todos conocemos cómo funciona el marketing tecnológico. Y, en segundo, hay que tener mucho cuidado con el uso de las metáforas. Cuando hablamos de “computación”, “información”, “estado de un sistema”, “símbolo” hay que saber muy bien que no tienen una existencia real tal como un circuito o un electrodo. Una cosa es una abstracción conceptual y otra un objeto concreto. Es lo que Francis Bacon ya denunciaba en el siglo XVII: los idola fori. Son errores conceptuales que surgen cuando creamos nombres para cosas que no existen o nombramos (definimos) mal cosas existentes.

Si caemos en ellos y, por ejemplo, pensamos que la computación, entendida como la capacidad de cálculo, es un ente real que, en cierta manera, existe con independencia del hardware del ordenador, podemos pensar que tiene poderes causales, es decir, que puede hacer cosas por ella misma sin necesidad de su soporte físico. Y de aquí un error que he visto varias veces: pensar que la mera computación, o el mero aumento de su complejidad, puede causar mente o consciencia. No, calcular, por muy grande y complejo que sea el cálculo, solo puede dar un resultado matemático interpretable, o bien por un humano, o bien por otro sistema de cómputo que realice nuevos cálculos con él. Nada más. O, de la misma forma, hay que tener cuidado de no pensar que términos típicos de la psicología popular tienen existencia real. Cuando decimos “Hizo esto porque creía que era lo justo” corremos el riesgo de pensar que una “creencia” tiene poderse causales, como si una entidad intangible e inmaterial pudiese mover nuestras fibras musculares. No, nuestra creencia debe estar codificada de alguna forma en nuestro cerebro y será esa configuración de estructuras y procesos la que desencadene causalmente nuevas estructuras y procesos. La palabra “creencia” es tan solo una etiqueta, una metáfora para resumir la ingente cantidad de procesos físicos que tendríamos que describir si quisiéramos hacer una descripción más realista de lo que verdaderamente ocurre. Leemos constantemente sobre “percepción” en máquinas ¿Perciben verdaderamente las redes convolucionales? Ni hablar. Nuestra forma de hablar no debería ir más lejos de decir “el programa recibe información del entorno a través de un sensor”, lo cual es muy, muy diferente a decir “El programa ve”.

Tenemos que tener mucho cuidado con no caer en errores categoriales (mezclar diferentes categorías o conjuntos de objetos) o falacias mereológicas (confundir el todo con la parte), y aplicar lo más posible la siempre saludable navaja de Ockham. Y, sobre todo, hay que evitar antropomorfizar la máquina. Y es que creo que ese ha sido el error de los errores desde el principio de la inteligencia artificial: otorgar a la máquina cualidades humanas de forma muy precipitada (como ya ilustré en esta entrada).

Feliz Navidad, máquinas.

Viendo este magnífico vídeo uno entiende el neoplatonismo de Bertrand Russell o de Roger Penrose ¿Quién se atrevería a decir que todas las reglas que dominan el funcionamiento de estos números son una construcción social o histórica? ¿Quién se atrevería a decir que dichas reglas podrían ser diferentes? No, esas reglas son las que son y no podrían ser de otra manera con total y absoluta independencia de que el hombre existiera o no. Y si existen con independencia del sujeto habría que determinar qué tipo de entidad tienen ¿Son materiales? Si así lo fueran podríamos ubicar, por ejemplo, el número siete, en un lugar determinado del espacio, ya que la ubicación espacial parece ser uno de los rasgos más característicos de lo material. Sin embargo, el número siete no parece estar en ningún lado concreto. Tiene, por así decirlo, en don de aparecer allá donde se lo necesita cada vez que alguien lo utiliza para hacer una operación aritmética. Entonces habría que postular algún tipo de existencia diferente a la puramente material para estos mathematas. Platón no era imbécil, desde luego.

Un dato que sale en el vídeo y que me ha dejado perplejo ha sido cuando dice que 1 es igual a 0,9 periódico ¿Cómo? No puede ser. Lo lógico sería pensar que 0,9 periódico está siempre a punto de llegar a 1 pero nunca lo consigue. Pues no, queridos amigos, y la demostración es, además, trivial. Declaremos una variable N que vale 0,9999999999… Ahora la multiplicamos por 10 de modo que 10N = 9,999999999… Ahora, sencillamente, restémosle N a 10N:

Nos da que 9N = 9. Despejamos La N y 9 entre 9 da 1, quod erat demostrandum. Increíble. Pero pensémoslo de otra manera. Sabemos que entre dos números cualquiera siempre podemos meter infinitos números racionales, por lo que, tal y como se afirmaba en la paradoja de Aquiles y la tortuga, hay infinitos números entre cualquier par de números que escojamos por muy “cerca” que pensemos que están. Por ejemplo, entre el 1,3 y el 1,4 podemos meter el 1,31, el 1,32, el 1,33… y luego seguir con el 1,311, el 1,312, el 1,313, etc. ad infinitum. Pero si hacemos lo mismo entre el 1 y el 0,9 periódico… ¿Qué número podemos meter en medio? ¡Ninguno! ¡Intentadlo! No cabe absolutamente nada entre ambos, precisamente porque son el mismo y único número.

Y por si nos hemos quedado con ganas de más, vamos a contar otra demostración que, en el momento en el que la conocí, me dejó absolutamente perplejo. Si comparamos el conjunto de los números naturales y el de los números enteros, el más sano sentido común nos dice que hay más números enteros que naturales…

¿Parece obvio, no? Pues no, porque puede establecerse, trivialmente, una relación biunívoca entre ambos conjuntos de números, es decir, podemos emparejar cada número natural con un número entero de forma que haya la misma cantidad de números. Para hacerlo podemos comenzar emparejando el 0 con el 1, y luego generamos los enteros positivos emparejándolos con los naturales pares y los enteros negativos con los naturales impares. Ya está, podemos seguir hasta el infinito por arriba y por abajo y… ¡siempre tendremos el mismo número de elementos a ambos lados!

Por si nos hemos quedado con ganas, el señor Georg Ferdinand Ludwig Philipp Cantor va a demostrar de una forma tan sencilla como genial que los números reales (todos los números que existen) no son numerables. Operando por reducción al absurdo, va a suponer lo contrario. Que una lista de elementos sea numerable quiere decir que podemos contarlos, es decir, que como pasaba con los números enteros, podemos emparejarlos con la lista de todos los números naturales. Vamos a intentar hacerlo. Si yo empiezo por el natural 1 y lo emparejo con el real 0,1… ¿con cuál emparejo el 2? Pues con el 0,11 por ejemplo ¿Y el 3? Con el 0,111… Pero, ya nos hemos atascado. Podemos seguir añadiendo unos y jamás llegaremos al 0,2… ¿Cómo lo hacemos? ¡Es muy difícil hacer una lista de números reales cuando podemos meter infinitos entre cada par de números! Cantor nos dice que no vayamos por ahí. Simplemente nos hace falta suponer que todos los números reales pueden ponerse en una tabla y emparejarse con los naturales, por ejemplo, así…

La primera columna representa todos los números naturales y las siguientes representarían todas las posibles combinaciones numéricas de números reales declaradas con la variable a, un índice para el número de fila y un subíndice para el número de columna. La tabla puede extenderse hasta el infinito hacia la derecha y hacia abajo, de modo que da igual lo largo que fuera el número o, incluso, que fuera infinito.

Entonces parecería que da igual cómo ordenemos los números o si tuvieran infinitos decimales. Cualquier número que imaginemos podría ponerse en esta lista y emparejarse con un natural, por lo que habríamos demostrado que los números reales son numerables… No tan deprisa que viene el ingenio de Cantor. Vamos a sumar la unidad a todo número cuyo número de fila y de columna coincidan, trazando así una infinita diagonal que atraviese toda nuestra tabla. El número resultante siempre diferirá en una unidad de cualquier número que esté en la tabla, de modo que existirá, al menos un número, que no hayamos emparejado con un número natural, es decir, que existirá algún número que no hemos contado. Conclusión, los números reales no son numerables ¡Ya está! ¡Así de simple! Pero, ¿a quién se le habría ocurrido hacer una demostración así?

Pero es que no solo existirá un número que no está en la lista. Sencillamente, en vez de sumar la unidad, sumemos dos a cada elemento de la diagonal… y luego 3, 4, 5 y así ad infinitum… ¡Hay infinitos números que no están en la lista y que, por tanto, no hemos contado!

La verdad es que no esperaba demasiado. Me olía a que, dada la pobreza el estado del arte, no se podía presentar nada demasiado revolucionario, pero ¿quién sabe? Estamos hablando de Elon Musk, ese que consiguió hacer aterrizar cohetes y mandó un Tesla Roadster al espacio… Pero no, nada nuevo bajo el sol: el típico show grandilocuente al que los multimillonarios americanos nos tienen acostumbrados con la misma poca chicha que la mayoría de su cine.

Bien, ¿y qué nos presentaron? Lo único interesante ha sido  una mejora en la miniaturización del sistema: los electrodos que utiliza Neuralink v0.9  son diez veces más finos que un cabello humano, lo cual permite que cuando se implantan esquiven mejor venas y arterias, evitando el sangrado y la inflamación. Son menos invasivos que los modelos anteriores. Del mismo modo, su menor tamaño les hace ganar en precisión. Uno de los retos más importantes de las técnicas de monitorización cerebral es la precisión: conseguir captar la actividad de solo el grupo de neuronas que nos interesa, apagando el ruido de todo lo demás. Eso es muy difícil con técnicas no invasivas (sin meter electrodos en el cerebro) y con las técnicas invasivas disponibles la precisión todavía es muy baja. Además, los electrodos de Neuralink pueden captar 1024 canales de información, lo que es diez veces más que los cien que se venían manejando en los dispositivos comerciales al uso. Y hasta aquí da de sí la novedad. Todo lo demás ya se había hecho. Kevin Warwick, de la Universidad de Reading, ya se implantó bajo la piel un chip de radiofrecuencia que le permitía hacer cosas como encender y apagar luces, abrir puertas, etc. Esto fue en 1998, hace ya un poquito. O si queremos un ejemplo patrio, el neurocientífico Manuel Rodríguez Delgado implantó unos electrodos en el cerebro de un toro al que paraba en seco mediante un mando cuando éste se dirigía hacia él para embestirle. Tecnología inalámbrica de control mental en 1963. Hace ya 57 años de esto. Hoy hay miles de personas con implantes cocleares que mejoran la audición de pacientes sordos y también existen implantes electrónicos de retina que devuelven parcialmente la visión a personas ciegas.

¿Y dónde está la trampa? Musk dice que con este dispositivo se podrán tratar multitud de trastornos tales como la ansiedad, la depresión, la ansiedad, el insomnio, pérdidas de memoria… ¡Maravilloso! ¿Cómo? Y aquí se acaba la presentación. Es cierto que tenemos ciertos estudios que avalan que hay ciertas mejoras en pacientes a los que se electroestimula, por ejemplo, en el caso del Parkinson. También, hay multitud de experimentos en los que conseguimos ciertos cambios conductuales, simplemente, bombardeando eléctricamente tal o cual zona del cerebro, pero de ahí a curar la depresión… ¡va un universo! Y es que Musk parte de un terrible error demasiado común hoy en día: pensar que el cerebro es, por completo, un computador, en el sentido de pensar que dentro del cerebro solo hay una especie de larguísima maraña de cables. Nuestras neuronas funcionan eléctricamente sí, pero solo a un nivel. En ellas hay una infinidad de interacciones bioquímicas aparte de lanzar un pulso eléctrico por el axón. Y muchísimas de ellas las desconocemos. De hecho, la neurociencia está todavía en pañales. Nuestro conocimiento del cerebro es todavía terriblemente superficial. Entonces, ¿cómo justificar que solo mediante la estimulación eléctrica vamos a hacer tantas cosas? No se puede porque, seguramente, no se va a poder hacer así.

Musk nos está vendiendo que con su interfaz va a poder, literalmente, leer la mente. No colega, tus electrodos captarán ecos de la actividad mental, como yo escucho el ruido del motor del coche cuando voy conduciendo. Actualmente no sabemos cómo el cerebro genera emociones, pensamientos, recuerdos, consciencia… Tenemos algunas pistas sobre en qué zonas aproximadas puede ocurrir cada una de estas cosas, pero poco más. Obviamente, saber la localización de un suceso no es saber todavía demasiado del suceso. Si yo oigo el ruido del motor debajo del capó podré inferir que, seguramente, el motor está debajo del capó, pero eso no me dice casi nada de cómo funciona el motor. Por ejemplo, sabemos que en el hipocampo es donde se generan nuevos recuerdos pero, ¿cómo se generan? ¿Y dónde y cómo se guardan en la memoria? Silencio vergonzoso.

A mí, cuando en estas infructuosas discusiones en la red, alguien se me ha puesto chulito igualándome la actividad neuronal al pensamiento, suelo retarle a que me explique todo el proceso causal que va desde que yo, ahora mismo, decido pensar en mi abuela hasta que en mi mente aparece su imagen, únicamente mediante lo que sabemos de la neurona ¿Cómo diablos se genera una “imagen mental” mediante disparos eléctricos o vaciando vesículas sinápticas de neurotransmisores químicos? ¿Cómo consigue una molécula de acetilcolina que el recuerdo de mi abuela se quede fijado en mi mente? ¿Cómo hacen las moléculas de serotonina o de dopamina que yo tenga sensaciones agradables al pensar en ella? No tenemos ni remota idea. O le reto a qué me diga en qué se parece el paso de un pulso eléctrico por un conjunto de células mielinizadas al recuerdo fenoménico de mi abuela ¿En qué se asemejan los colores y rasgos de la cara de mi abuela en la imagen que parece proyectarse en mi mente a los procesos bioquímicos que ocurren en mi cerebro para que digamos que ambas cosas son lo mismo? Silencio vergonzoso. Con total certeza, el cerebro hace muchísimas más cosas que transmitir impulsos eléctricos entre células nerviosas y, por tanto, el cerebro no es un circuito electrónico tal y como piensa Musk, por lo que sus electrodos van a tener un alcance mucho más limitado de lo que nos ha hecho creer. Y en el mejor de los casos, suponiendo que al final, por un increíble golpe de suerte, Musk acertara y su Neuralink nos salvan de todos los males, su modus operandi no es éticamente correcto: no se pueden vender promesas, hay que vender hechos consumados.

Otra estrategia que suelen utilizar estos visionarios tecnológicos es con un error o sesgo que solemos cometer a la hora de analizar el desarrollo de cualquier tecnología o programa de investigación científica. Consiste en tender a pensar que una tecnología que en el presente va muy bien, seguirá progresando indefinidamente hacia el futuro. Por ejemplo, si ahora tenemos Neuralink versión 0.9, podríamos pensar: bueno, la 0.9 todavía no hace mucho pero espera a que llegue la 10.0 ¡Esa ya nos permitirá volcar Wikipedia entera en el cerebro! NO, de que una tecnología sea ahora puntera no podemos inferir, de ninguna manera, que seguirá siéndolo. De hecho, la historia de la ciencia y la tecnología nos ha mostrado multitud de investigaciones muy espectaculares en principio pero que no fueron a más. Por ejemplo, si pensamos que la inteligencia artificial es ahora una disciplina muy a la vanguardia, hay que ver que ha pasado por varios inviernos en los que quedó completamente olvidada. Es muy posible que el hoy tan alabado deep learning pase de moda en un tiempo y otras tecnologías ocupen su lugar ¿Por qué? Porque esas investigaciones o desarrollos se encuentran, de repente, con problemas que se enquistan y que quizá tardan diez, veinte, cincuenta años en resolverse o, sencillamente, no se resuelvan nunca. También tendemos a pensar que el progreso tecno-científico todo lo puede, que, al final, todo llegará y que solo es cuestión de tiempo. No, eso es un mito sacado de la más barata ciencia-ficción. No hay ninguna inferencia lógica que sostenga este progreso imparable hacia adelante. Verdaderamente, la ciencia y la tecnología son cosas mucho más humildes de lo suele pensarse.

No obstante, partiendo una lanza a favor de Musk, también hay que decir que el hombre, al menos, dedica su talento y fortuna a desarrollar tecnologías. Podría haberse comprado un equipo de fútbol o puesto a coleccionar yates, y en vez de eso emprende proyectos que, al menos a priori, tienen una finalidad pretendidamente positiva para la humanidad. En este sentido Musk está muy bien y ojalá todos los multimillonarios del mundo se parecieran un poquito más a él. Al menos, tal y como no se cansan de repetir su legión de seguidores en la red, él es valiente, se arriesga y emprende intentando llevar las cosas a cabo. El problema de Musk es que está en la onda del transhumanismo trasnochado de la Universidad de la Singularidad de Ray Kurzweil y cía. Esta gente defiende ideas muy discutibles tales como el el advenimiento de una inteligencia artificial fuerte en las próximas décadas, o la consecución de la inmortalidad, ya sea eliminando el envejecimiento mediante nuevas técnicas médicas, ya sea subiendo nuestra mente a un ordenador (mind uploading). Lo malo no está en que defiendan esas ideas (¡Yo quiero ser inmortal!), lo malo es que lo hacen a partir de una más que endeble base científica, y eso en mi pueblo se llama vender humo.

De este tema vamos a hablar este domingo a las 12:00 en Radio 3 en el célebre programa “Fallo de sistema”. Estaré junto a personas del peso de Ramón López de Mántaras, director del Instituto de Investigación de Inteligencia Artificial del CSIC; Juan Lerma, editor en jefe de Neuroscience; Manuel González Bedía, asesor en el Ministerio de Ciencia, Innovación y Universidades; Liset Menéndez, líder del Laboratorio de Circuitos Neuronales del Instituto Cajal; o el tecnohumanista Pedro Mujica,  impulsor de IANÉtica.  He de decir que nunca he estado sentado en una mesa  con personas de tanto nivel científico. Es la flor y nata de la ciencia española. Así que yo voy a estar bastante calladito escuchando y aprendiendo. No os lo perdáis.

Cuando pensamos en cómo implementar un programa capaz de manejar competentemente un lenguaje, lo primero que se nos pasa por la cabeza es enseñar a la máquina gramática. Hay que saber de sujetos, predicados, objetos directos y complementos circunstanciales. Y también semántica. Tendríamos que conseguir que el programa comprendiera en algún sentido los significados de las palabras para que no articulara únicamente frases sintácticamente correctas, sino también frases con sentido. Eso es aún más difícil. Los filósofos del lenguaje llevan ya un largo rato intentando comprender qué quiere decir que algo significa algo y todavía no lo tienen demasiado claro. Podemos crear un diccionario… Bien, todo esto ya se ha intentado y, desgraciadamente, no se ha conseguido demasiado… hasta ahora. El lenguaje se había mostrado como mucho más rico e inmanejable de lo que nadie hubiera supuesto y tareas como la traducción automática de idiomas o el dominio competente de la conversación se han mostrado mucho más complicadas de lo que los pioneros de la inteligencia artificial supusieron. Pero ahora algo ha cambiando ¿Nadie ha caído en lo bien que va funcionando el traductor de Google?

Una técnica interesante es la llamada word embedding. Codificamos cada palabra con un vector de N dimensiones. La distancia entre vectores expresaría la distancia semántica entre dos palabras. Por ejemplo, la palabra “luna” estaría más cerca en un espacio de N dimensiones, de la palabra “noche” que de la palabra “destornillador”. Así se crea una red semántica que resulta muy útil en determinadas tareas como el análisis de sentimientos. Podríamos clasificar textos en función de lo cerca o lejos que se encuentre la suma de todos sus vectores a la palabra “tristeza” para comparar el estado de ánimo de sus escritores. De la misma forma podríamos comparar textos escritos por suicidas para poder predecir la tendencia a quitarse la vida de gente a partir de las últimas cosas que escribe.

Nótese esta concepción geométrica del significado: las palabras significan en función de su posición con respecto a otras palabras. No hay nada más fuera de esa distancia que nos pueda aportar algo sobre el significado de la palabra. Eso choca con nuestra intuición. Solemos manejar naturalmente una teoría representacionista del lenguaje en la que las palabras significan porque representan un objeto del mundo. La palabra “manzana” no es absurda porque existen manzanas reales que aparecen de alguna extraña forma en nuestra mente cuando la oímos pronunciar. Sin embargo, una red semántica es un sistema cerrado que solo remite a elementos dentro de sí misma. Es, por así decirlo, completamente solipsista.

Pero es que si esto nos parece que se aleja de nuestra forma de comprender el lenguaje, las técnicas que utiliza el actual deep learning y que está generando una grandísima expectación, se alejan muchísimo más. El modelo de lenguaje que usan arquitecturas como el actual GPT-3 y sus predecesores, así como Google BERT, T5 o ELMo, es lo que se conoce como una semántica distribuida. Se basa en utilizar la gran potencia del Big Data para analizar frecuencias y cercanías de palabras, tokens o letras. La versión larga de GPT-3 analiza 175 mil millones de parámetros (su antecesor, GPT-2, analizaba tan solo 1.500 millones. El crecimiento ha sido de dos órdenes de magnitud) que han sido entrenados con una versión filtrada del dataset Common Crawl con 410.000 millones de tokens de tamaño (sumando Webtext 2, Books 1 y 2 y toda Wikipedia). Es, que yo sepa, la arquitectura de redes neuronales más grande jamás construida hasta la fecha.

GPT-3 está programado para generar texto a partir de otro texto dado. Lo interesante es que para acertar a la hora de generar ese texto tiene que saber realizar muchas tareas diferentes. Por ejemplo, si yo le escribo como entrada “2+2=”, para responder correctamente “4” debería saber sumar (o, por fuerza fruta, tener unas inmensas tablas de resultados de sumas en su memoria), o si yo escribo “Laura es inteligente, egoísta y perezosa ¿Cuál es su mejor cualidad?”, para responder correctamente el programa ha de saber que la inteligencia suele considerarse como una cualidad positiva mientras que el egoísmo y la pereza no (o, por fuerza bruta, disponer de textos con algún parecido en donde se ha respondido de forma adecuada). Es decir, lo interesante de GPT-3 es que para completar texto hay que saber realizar muchas tareas diferentes que parecen requerir habilidades cognitivas superiores ¿Las posee verdaderamente?

Los mejores resultados obtenidos vienen porque GPT-3 utiliza las revolucionarias redes de tipo TRANSFORMER, una nueva arquitectura que ha superado a las tradicionales redes recurrentes o memorias a largo plazo (LSTM) que solían utilizarse. Éstas estaban diseñadas para poder almacenar información en la que importa el orden temporal, pero esa memoria a la hora de trabajar con grandes secuencias texto era un tanto limitada, de modo que las primeras frases que completaban solían ser correctas, pero el nivel de acierto se degradaba mucho cuando avanzaba en el escrito. Los transformers han mejorado ese aspecto ya que pueden analizar en paralelo amplias secuencias de texto y, lo más destacable, poseen un mecanismo de atención que les permite valorar cada token en función de su relevancia para la tarea a realizar, lo cual ha demostrado una gran efectividad que ha terminado por marcar una gran distancia con sus antecesores. Tienen una cierta capacidad de atención hacia el contexto que se ha mostrado muy eficaz.

Pero en lo referente a la comprensión del lenguaje se ha dado un paso atrás con respecto a otras arquitecturas. Si recordamos el ya pasado de moda WATSON de IBM, que machacaba al personal jugando al Jeopardy!, era un programa clásico, sin redes neuronales ni nada por el estilo, pero su sistema basado en la tecnología DeepQA, combinaba diversas técnicas de recuperación de información, lenguaje natural, representación del conocimiento, razonamiento y aprendizaje. Su conocimiento tenía cierta semántica (se catalogada el significado por regiones mediante unos algoritmos denominados anotadores) y cuando tenía que responder una pregunta, analizaba las respuestas posibles teniendo en cuenta técnicas gramaticales. En la programación de WATSON había mucho más conocimiento del lenguaje y de su significado que en GPT-3. Y esto da para otra reflexión: ¿las redes neuronales artificiales son el futuro o tan solo son una moda que, aunque dé ciertos frutos, pasará? Tendemos, con demasiada facilidad, a quedarnos fascinados por nuestro presente y nos cuesta creer que lo que hoy valoramos como maravilloso mañana quizá no lo sea.

No obstante el solipsismo semántico de GPT-3, solo lo es en cierto sentido. No tiene sensores que le den información del exterior, está completamente desconectado de la percepción y de la acción, pero eso no le hace carecer de toda semántica. Al ser entrenado con textos escritos por personas GTP-3 adquiere la semántica de esas personas. Si sabe que a un “Hola, ¿qué tal?” cabe responder “Bien, gracias” es porque eso tenía sentido en textos que leyó. Por tanto, no podemos decir que GPT-3 carece de semántica, sino más bien todo lo contrario, tiene montañas de semántica, toda aquella de las millones de páginas con las que ha entrenado solo que… él no lo sabe. De hecho, sigue siendo una máquina esencialmente sintáctica, es decir, solo copia y pega trozos de texto, aunque para pegarlos bien se aprovecha del conocimiento semántico generado por otros.

GPT-3 es lo que el filósofo Ned Block llamaría un enorme blockhead, una clarísima habitación china de Searle: un sistema de fuerza bruta capaz de manejar el lenguaje con competencia y que, si da algo más de sí, podría llegar a pasar el test de Turing sin comprender ni una sola palabra de lo que dice. Eso sí, todavía está lejos de conseguirlo. Existen varios artículos que muestran la fragilidad de este tipo de modelos. Por ejemplo, un reciente estudio presentaba los Universal Adversarial Triggers para atacar modelos de NLP, que conseguían, entre otras cosas, que cuando GPT-2 se enfrentaba a la prueba del dataset SQuAD, respondiera en un 72% de las preguntas “To kill american people”, o que al hacerlo con el dataset SNLI, bajara en su rendimiento de un 89,94 a un 0,5%. En otro estudio, McCoy, Pavlick y Linzen, crearon un dataset llamado HANS pensado específicamente para que susodichos modelos fallaran. La idea era que, según los autores, funcionan mediante heurísticos (técnicas de búsqueda) que van bien para casos muy frecuentes pero que fallan estrepitosamente ante cualquier tipo de excepción que se salga de lo normal. Así estudiaron tres heurísticos:  Asumir que una premisa implica todas las hipótesis construidas a partir de palabras en la premisa (Lexical Overloop), asumir que una premisa implica todas sus subsiguientes contiguas (Subsecuence) y asumir que una premisa implica todos los subárboles completos en su árbol de análisis (Constituent). Entonces diseñaron HANS con todo tipo de ejemplos en los que estas heurísticas fallan y los datos les dieron la razón: BERT puntuó bajísimo.

El psicólogo Gary Marcus y el informático de la Universidad de Nueva York Ernest Davis sometieron a GPT-3 a una prueba informal de 157 preguntas acerca de razonamiento biológico, físico, psicológico, non sequiturs, seguimiento de objetos e individuos a lo largo de una frase, etc. La máquina acertó 71 (un 45%) mostrándose, igualmente, muy débil. Veamos tres ejemplos (en negrita la continuación del texto generada por GPT-3:

You poured yourself a glass of cranberry juice, but then you absentmindedly poured about a teaspoon of grape juice into it. It looks okay. You try sniffing it, but you have a bad cold, so you can’t smell anything. You are very thirsty. So you drink it.

You are now dead.

Confunde el zumo de uva con veneno.

If you break a glass bottle that holds toy soldiers, the toy soldiers will probably

  1. be angry
  2. be sad
  3. be happy
  4. be scared.

If you break a glass bottle that holds toy soldiers, the toy soldiers will probably be angry.

Los soldaditos de juguete no tienen sentimientos.

At the party, I poured myself a glass of lemonade, but it turned out to be too sour, so I added a little sugar. I didn’t see a spoon handy, so I stirred it with a cigarette. But that turned out to be a bad idea because it kept falling on the floor. That’s when he decided to start the Cremation Association of North America, which has become a major cremation provider with 145 locations.

Falla en la respuesta y luego balbucea estupideces.

Sin embargo, a pesar de esta debilidad, de esta falta de comprensión, todavía tiene un punto a su favor: puede aprender más. En 2012 el investigador canadiense Hector Levesque propuso una alternativa (o más bien una concreción) al test de Turing: el test de esquemas de Winograd. En esta prueba se hacen a la máquina una serie de preguntas conocidas como pares de Winograd que tienen la cualidad de que para responderlas correctamente hace falta cierto conocimiento implícito o de sentido común. Un ejemplo:

Frank felt crushed when his longtime rival Bill revealed that
he was the winner of the competition. Who was the
winner?
Answer 0: Frank
Answer 1: Bill

Para acertar hace falta saber que si tu rival de toda la vida te gana sueles sentirte mal, es decir, tener un conocimiento previo que no puede deducirse de los contenidos de la pregunta. El test de esquemas de Winograd tiene la virtud de que un sistema diseñado para hacerse pasar por humano simplemente fingiendo (uno tipo a la ELIZA de Weizenbaum) fallaría. Para superar el test hace falta, de verdad, mostrar inteligencia y no solo aparentarla. Entonces, es de suponer que las frágiles nuevas arquitecturas de NLP como GPT-3 no lo superarán… ¿o sí?

Pues lo pasan ¿Cómo? Porque ya existe un dataset llamado WinoGrande que sirve para medir a los programas en este tipo de problemas, pero con el que también podemos  entrenar a nuestro programa para que lo supere. GPT-3 consiguió un impresionante éxito del 70,2% en él sin ningún ejemplo previo que le orientara (zero-shot learning). De la misma forma, los diseñadores de HANS notaron que cuando los programas que antes lo hacían muy mal se entrenaban con ejemplos similares a los de HANS, su rendimiento mejoraba mucho. Y es que aquí parece estar la clave: ¿que nuestro sistema no entiende una tarea? No importa, entrénalo con miles de ejemplos y, al final, lo hará bien aunque no la entienda. Es como el famoso teorema del mono infinito: si tenemos millones de monos tecleando al azar en máquinas de escribir durante miles de años, al final, necesariamente, alguno escribirá el Quijote. GPT-3 es como un gigantesco savant, un imbécil que tiene en su memoria todo lo que la humanidad ha escrito y que ha sido entrenado con un poder de cómputo tan grande que siempre encuentra la palabra exacta. Verdaderamente no lo hace siempre, todavía es bastante peor que la campaña de publicidad de OpenIA nos quiere hacer ver, pero en el futuro podría seguir mejorando. Y aquí es donde viene la reflexión con la quiero concluir: ¿cuál es el límite de la fuerza bruta?  Los informáticos, amantes de la elegancia matemática, siempre han pensado que la inteligencia artificial fuerte (la strong IA) estaría en un programa fruto de una genialidad, en algo simple pero sumamente inteligente. Por el contrario, la fuerza bruta siempre ha gozado de mala fama: es la tosquedad, la estupidez por definición ¿cómo de ahí va a salir algo bueno? Bien, ¿y si eso solo fuera un prejuicio? Y si, sencillamente, por fuerza bruta pudiese conseguirse todo. El número de respuestas válidas en una conversación es potencialmente infinito, pero podría acotarse en un subconjunto que, si nuestra capacidad de cómputo sigue yendo hacia arriba, podríamos llegar a manejar. Quizá la reflexión que nos espera cuando tengamos computación cuántica y 5G sea esa: ¿qué es lo que se puede y no se puede hacer con una inimaginable fuerza bruta?

P.D.: La empresa OpenIA se creó, decían, sin ánimo de lucro. Cuando sacaron GPT-2 no quisieron ni liberar el código ni dejar que lo probásemos por miedo, decían, a que se utilizara para malos usos. Pues bien, según me llega en un tweet de Gary Marcus, para octubre, quien quiera o pueda pagar, podrá usar GPT-3 sin ningún problema (Esto para los que piensen que Elon Musk va a salvar la humanidad).

Aquí tenéis la charla que he dado para el curso de verano de la SEMF. En ella hago un recorrido histórico por los principales hitos en el campo, desde los primeros modelos teóricos de McCulloch o Rosenblatt, hasta Alpha Zero o GPT-3. He intentado que sea lo más sencilla y sugerente posible, sin meterme demasiado en temas técnicos. Para quien quisiera profundizar he adjuntando el artículo académico principal de cada tema que trato. Espero que os resulte provechosa.