martes, 16 de febrero de 2016

Las matemáticas de la mente

"[Las neuronas son] células de formas delicadas y elegantes, las misteriosas mariposas del alma, cuyo batir de alas quién sabe si esclarecerá algún día el secreto de la vida mental." (Ramón y Cajal)

Introducción.

Dibujo de Ramón y Cajal de las células del cerebelo de un pollo,
 mostrado en "Estructura de los centros nerviosos de las aves", Madrid, 1905.
Dos noticias muy importantes que han tenido lugar estas últimas semanas en el campo de la neurociencia y la inteligencia artificial (de las cuales me hice eco en este mismo blog: aquí[1][2] y aquí[3]), me hizo recordar un trabajo de computación que hice allá por el 2011 cuando inicié el doctorado en ingeniería (el cual por cierto aún no terminé, y que tengo absolutamente abandonado :( Ya me gustaría tener tiempo libre para poder retomarlo; porque además odio dejar las cosas a medias).

Pues bien, el trabajo original[4] (que he mejorado) consistía en ser el desarrollo de un algoritmo capaz de aprender a jugar al Cuatro en Raya (Conecta 4) de un modo completamente autónomo: sin necesidad de programar a priori en absoluto ningún tipo de regla de juego. En otras palabras, comenzar con un programa que eligiera movimientos en principio aleatoriamente (como hace una persona cuando no sabe cómo jugar y le obligas a hacerlo), y que posteriormente dicho algoritmo fuese aprendiendo a jugar exclusivamente mediante la práctica (sin necesitar de ninguna nueva intervención por parte del programador), hasta alcanzar un nivel aceptable de juego.

Pero, ¿cómo lograr esta "hazaña"? (en el 2011 ya hacía tiempo que todo eso estaba inventado, pero yo estaba investigando sobre el asunto para intentar alcanzar el estado del arte). Resultó ser que la solución a este complejo problema, como ha ocurrido en tantas otras ocasiones en la investigación tecnológica, se pudo conseguir simplemente imitando el modo en que la naturaleza actúa. En este caso concreto, lo único que hubo que hacer fue simular computacionalmente una red neuronal como las que nuestro cerebro contiene, y dejar que un proceso de aprendizaje modulara las sinapsis (que en el campo de la computación se llaman pesos) entre las neuronas (que en computación se denominan nodos). Y nada más: simplemente montando una red neuronal similar a las del cerebro, se puede conseguir, por ejemplo; que un programa de ordenador sea capaz de (literalmente) aprender a jugar a un juego "complejo" como el Conecta 4 sin ninguna intervención humana añadida; es decir, sin la necesidad de explicar a priori ninguna regla o norma del juego: un proceso de aprendizaje, por cierto, muy similar al que se cree que acontece entre nuestras neuronas donde, mediante una práctica empírica repetida, se piensa que nuestra estructura neuronal se va ajustando y modulando hasta alcanzar el objetivo de aprendizaje deseado.

Equivalencia entre la neurona biológica, y la emulación computacional que de ella se hace.

La red neuronal (metodología).

La red neuronal artificial finalmente utilizada, la cual sigue, como digo, las directrices básicas del funcionamiento del cerebro animal, consistió simplemente en emular 181 neuronas (nodos) unidas mediante 828 sinapsis (pesos o enlaces wij) con una estructura espacial de 42 nodos de entrada (inputs), dos capas intermedias (hidden layers) de 69 neuronas cada una, y una capa de salida (output) con un único nodo. A la salida de cada nodo se aplicó una función de activación hiperbólica (tanh) para restringir el potencial de salida de cada neurona (simulando de esta forma la aparición del potencial de acción que ocurre en las neuronas biológicas).

Las 42 "neuronas" de la capa de entrada reciben un cierto potencial de acción (simbolizado por un valor de "voltaje" de 0, 1 ó -1) según el dato sensible de la casilla enésima indique que no hay ninguna ficha en ella (huevo libre), que contiene ficha propia, o una ficha del adversario respectivamente. Posteriormente, y tras el procesado de estos datos empíricos de entrada por las dos capas intermedias de la red (teniendo en cuenta el modo en que las sinapsis estén dispuestas -valor de los pesos wij-), se produce una salida concreta en el último nodo de la red. Esta salida va a consistir en ser un determinado "voltaje" simulado por un valor escalar y continuo (un número real) restringido en el dominio (0,1]. Y será este "voltaje" de salida el que finalmente va a simbolizar con su fuerza o debilidad (valor alto o bajo) lo favorable o desfavorable que una jugada concreta es. Por último, simplemente se selecciona el movimiento (de entre los 7 posibles en cada jugada) que la red neuronal estima como más ventajoso (argmax).

Esquema del modo en que se simula una neurona biológica.
Y nada más, eso es todo. Se monta una red neuronal como esta que os he descrito, la cual simplemente se limita a emular con cierto nivel de detalle las redes del cerebro animal, y sin explicarle al programa resultante en ningún momento las reglas del juego (sin preprogramar nada más), se consigue que un ordenador aprenda él sólo a jugar con un nivel aceptable al Conecta 4 mediante un entrenamiento autónomo (no supervisado) totalmente empírico de dicha red artificial.

Resultados.

El programa inicialmente no tiene ni idea de cómo jugar, y se limita a mover de un modo casi aleatorio por entre las 7 acciones que el juego del Cuatro en Raya permite en cada jugada (es decir; que en cada jugada se puede poner una ficha en la primera columna, en la segunda columna, y así hasta las 7 disponibles -siempre y cuando quede hueco libre hacia arriba entre las 6 filas-).

En este sentido, la red neuronal comienza no sabiendo qué hacer, y le puedes ganar simplemente colocando una ficha encima de otra hasta hacer las 4 en línea (como ocurriría, por cierto; con una persona que tampoco conozca las reglas del juego). Sin embargo, la cosa cambia gradualmente conforme la red va entrenando al practicar jugando contra copias de sí misma. Es decir; que el entrenamiento no supervisado de la red neuronal lo realizo mediante una técnica de computación evolutiva (utilizando refuerzo por torneo, una técnica que por cierto ha usado Google en su reciente programa capaz de vencer a un gran maestro en el juego Go[2]). Se procede, pues, haciendo cientos de copias de la red neuronal, pero permitiendo ligeras variaciones aleatorias (mutaciones) en las fuerzas sinápticas (valor de los pesos entre los nodos). De todas estas copias "mutadas", se seleccionan aquellas que jueguen (tras el torneo) por puro azar ligeramente mejor que las demás, lo que constituye de facto un gradual proceso evolutivo (muy similar en la base a la selección natural biológica).

Este proceso evolutivo de entrenamiento puramente experimental (empírico) termina al cabo de sobre 1000 generaciones (un par de días de proceso con la potencia de mi ordenador), resultando en una red neuronal entrenada capaz de ofrecer un aceptable nivel de juego (sin hacer uso de técnicas de programación tradicionales como el uso de árboles minimax, ni tampoco heurísticos de ninguna clase). Cada generación, por cierto, la componen 300 individuos (redes neuronales independientes) compitiendo entre sí.

Y creo que en este punto es importante señalar una vez más, que la red neuronal no busca activamente la mejor jugada trazando árboles de exploración (minimax o MTCS) y adelantando así el movimiento del adversario como se suele hacer, por ejemplo, en el desarrollo clásico de programas de ajedrez, sino que la red neuronal sencillamente ve el conjunto de fichas como un todo, y simplemente es capaz de "percibir" qué movimiento le dará ventaja. De hecho, el algoritmo entrenado consigue jugar bien, porque es capaz de captar los patrones del juego del Conecta 4 que mejor expectativas ventajosas ofrece (una forma de jugar muy parecida al que utilizan, por ejemplo; las personas). Tal es así, que es posible que la red neuronal llegue a cometer lo que se puede entender como "despistes", haciendo repentinamente una jugada inesperada o errónea.

Imágenes del programa.

Para todos aquellos que no deseen descargar el programa y ejecutarlo en local (o que no quieran esperar el día de entrenamiento necesario para que la red neuronal llegue a aprender a jugar con cierto nivel de calidad), os adjunto a continuación algunas imágenes y vídeos del proceso en vivo:

Interfaz del programa justo al inicio de su ejecución. Si se pulsa sobre "Jugar" se jugará contra la
 red neuronal en cualquier momento. Al inicio, la capacidad de juego de dicha red será nula.

Si jugamos, por tanto, nada más arrancar el programa contra la red neuronal, vemos que juega de un modo nefasto (casi aleatorio):


A continuación, ponemos la red neuronal a entrenar del modo en que lo hemos explicado en el apartado anterior. Veremos cómo se van jugando cientos de partidas durante el proceso de aprendizaje empírico hasta que, pasadas muchas horas de entrenamiento (y muchas generaciones de gradual ajuste evolutivo), la misma red neuronal que al inicio jugaba sin ninguna idea, habrá conseguido un nivel de juego bastante aceptable (teniendo en cuenta el pequeño tamaño en la estructura de la red neuronal utilizada -con apenas 180 neuronas- para agilizar el entrenamiento en lo posible en mi "modesto" ordenador de sobremesa). Veamos este proceso de entrenamiento en vivo:


En el vídeo sólo se ven las 3 primeras generaciones del entrenamiento, pero podéis imaginaros que ese proceso continúa por muchas horas hasta alcanzar las 1000 generaciones de entrenamiento por refuerzo mediante competición evolutiva.

Una vez finalizado el entrenamiento, el resultado es el siguiente. Vais a ver a continuación en el vídeo como, exactamente la misma estructura red neuronal inicial, una vez suficientemente entrenada y adaptada a la tarea de aprendizaje requerida (con las sinapsis bien moduladas), juega ya con un nivel bastante aceptable (por claridad visual, la máquina siempre mueve la primera y siempre juega con fichas amarillas):


Para no demorar mucho, detuve el entrenamiento del vídeo en 556 generaciones y probé la red neuronal. Y como se puede observar en el vídeo, es impresionante como una simple red de menos de 200 nodos (neuronas) es capaz de desarrollar tal habilidad para jugar a este complejo juego de explosión combinatoria. Lo que al inicio era un juego casi aleatorio, se ha convertido (al cabo de 6 horas de entrenamiento empírico no supervisado) en una capacidad de juego ¡con la suficiente calidad como para llegar a vencerme en ocasiones! El algoritmo ha conseguido (insisto una vez más, sin exploración minimax, ni ninguna ayuda heurística preprogramada) detectar y afianzar aquellos patrones de juego que más le benefician observando el tablero como un todo (alcanzando de manera autónoma técnicas de juego como la de comprender que es ventajoso mover siempre en la columna central al inicio del juego, superponer a veces su ficha por encima de la mía, etc.).

Pero más interesante aún, es el hecho de que cuando puse hace semanas a mi hija pequeña (de 6 años) a jugar a este juego que no conocía, siguió un proceso de aprendizaje asombrosamente similar al descrito por esta red neuronal artificial. Yo no le expliqué absolutamente nada a mi hija, y fue ella la que a base de jugar y perder (entrenamiento empírico) llegó a detectar ciertos patrones básicos y dedujo las reglas del juego. ¡Y os puedo prometer que esto que os cuento es verídico!

Conclusión.

Red neuronal biológica.
Partimos del hecho de que una red neuronal artificial, al imitar el modo en que funciona cualquier red neuronal de un cerebro animal, consigue y logra emular computacionalmente a su vez con una asombrosa similitud gran parte de las capacidades cognitivas de dichos entes biológicos. Esto, a su vez, parece establecer una estrecha e innegable relación directa entre estas capacidades cognitivas animales, y la red de neuronas biológicas que contienen sus cerebros.

Puesto con otras palabras: el hecho de que al imitarse el funcionamiento neuronal animal mediante computación surjan espontáneamente capacidades muy relacionadas con estos seres vivos, parece indicar fuertemente que toda la capacidad cognitiva de éstos podría explicarse como mera consecuencia de los flujos eléctricos procesados de un modo físico-químico por entre las redes de neuronas cerebrales. Porque, sin duda el hecho de que no haga falta ningún ingrediente externo a una simple red neuronal artificial para conseguir imitar gran parte de los logros cognitivos animales, evidencia con fuerza, que muy probablemente los propios logros animales tampoco requieran de otra cosa a parte de su propia red neuronal biológica. En este sentido, incluso la enorme capacidad cognitiva del hombre, como animal evolutivo que es, también se explicaría mediante su mero procesar eléctrico neuronal. Y aunque esta última hipótesis de la que hablo, hoy por hoy es solamente un postulado con fuertes evidencias a favor; en un futuro no demasiado lejano, y conforme la capacidad del hardware se acerque a la capacidad de cómputo del cerebro humano, muy posiblemente llegará a surgir una conciencia artificial indiferenciable de la nuestra, lo cual elevará la hipótesis a la categoría de teoría establecida. Es cuestión de tiempo (posiblemente menos de 50 años).

Red neuronal biológica.
Red neuronal artificial emulando una red biológica.

Las matemáticas de la mente (discusión sobre lo tratado).

Mediante una sencilla regla transitiva, todo lo dicho anteriormente finalmente casa con la propuesta de que nuestra mente podría ser fruto exclusivo de procesos matemáticos determinados. Veamos como:

Las capacidades cognitivas humanas (y del resto del reino animal) parecen ser, como hemos visto, producto del procesado eléctrico por entre trillones de sinapsis en el cerebro. Por lo que sería pues precisamente este procesamiento de información eléctrica entre neuronas el que lograría otorgarnos todas y cada una de nuestras capacidades, sin que exista evidencia empírica alguna de que nada más intervenga en el proceso que origina lo que se entiende por mente: englobando aquí conducta, emociones, sensaciones, etc. Esta afirmación basa su fuerza en tres hechos probados: 1º) Que la moderna neurociencia indica experimentalmente [2] que todo apunta a que las redes neuronales biológicas se sobran para acometer la gama completa cognitiva del hombre, 2º) que no se ha observado empíricamente nada más en el cuerpo humano capaz contribuir a tales procesos, y 3º) que además, por otra parte, al emular este comportamiento neuronal biológico de un modo computacional, se observan cada vez resultados más y más parecidos a los observados en los seres vivos (siendo muy probablemente un problema de escala y potencia de cómputo lo que ha impedido que la inteligencia artificial no haya avanzado de un modo tan evidente hasta hace poco más de una década). De hecho, la inteligencia artificial tiende (últimamente casi exponencialmente), a conseguir cada vez resultados más parecidos a los de la inteligencia biológica, y además lo hace precisamente imitando cada vez más y mejor la base neuronal del cerebro (en este sentido, cabe destacar en mi opinión la enorme mejora que se ha conseguido en el terreno del reconocimiento de voz en los últimos años, siendo hoy día posible que un simple móvil comprenda y transcriba las palabras que cualquiera pueda decirle sin un entrenamiento personal previo, y todo gracias a los avances logrados por Google y Apple en el uso de redes neuronales para estas tareas).

Pero ahora viene lo interesante del asunto. Si dado todo lo anterior, aceptamos que nuestra capacidad cognitiva se reduce a la red neuronal biológica que la sustenta, y si por lo tanto la mente queda determinada por esta base material físico-química subyacente (neuronas, neurotransmisores, iones, etc.), mientras que al mismo tiempo también hemos visto que esta red neuronal biológica se puede emular cada vez con más éxito en un ordenador, ¡esto quiere decir que podemos estudiar transitivamente la mente de un modo explícito a partir de nuestro conocimiento computacional!

Es decir; que si logramos comprender en profundidad cómo y por qué una red neuronal artificial es capaz de lograr logros equiparables a los cognitivos humanos, estaremos al mismo tiempo comprendiendo el porqué de nuestra propia mente biológica. En este sentido, saber por qué yo puedo, por ejemplo, detectar y clasificar objetos dentro de una foto, es equivalente a comprender por qué una red neuronal artificial es capaz de conseguir el mismo fin al imitar el funcionamiento de mi cerebro.

Así pues, todo se reduce a comprender por qué funciona una red neuronal artificial debidamente configurada (o adaptada a cierta tarea). Y la respuesta es simple, muy simple: gracias a las matemáticas. Todo el funcionamiento neuronal artificial (y según hemos concluido, también biológico), se basa en sumas aditivas de potenciales eléctricos y en la inclusión de un umbral (o constante numérica de voltaje) a partir de la cual se produce la transmisión de un pulso de acción.


En las redes neuronales artificiales todo se reduce a vectores (y matrices) de números, que posteriormente se multiplican y suman hasta ofrecer un valor de salida numérico en la última capa. Exclusivamente de este sencillo modo algebraico funcionan las redes artificiales, y según lo visto igualmente debe funcionar una red neuronal biológica. De hecho, la experimentación en neurociencia casa perfectamente con esta idea, al proponer que en el cerebro se va sumando el voltaje variable que llega (inputs) desde las dendritas de otras neuronas, y que cuando se supera cierto umbral de mili voltios (mV), ocurre la transferencia eléctrica hacia la salida de la neurona, mientras que si por el contrario no se supera dicho umbral la neurona no transmite ese pulso. Y no habría más. 

El simple álgebra que permite a una red neuronal artificial lograr hitos comparables a los biológicos, indican con determinación, que es un álgebra muy similar el que nos otorga a nosotros todas nuestras capacidades. Es decir; que debidamente configurada y estructurada por la evolución, serían estas estructuras matemáticas neuronales las responsables de dar cuenta de todo el potencial cognitivo observable en los animales.

En este sentido, nuestro cerebro es literalmente una especie de computador biológico trabajando, al igual que ocurre con nuestros ordenadores, mediante el procesamiento de señales digitales (un pulso = 1 y no pulso = 0). Aunque este procesamiento, sin embargo, es totalmente paralelo (y no secuencial como en un procesador), y además cuenta con la posibilidad de ajustar la friolera del trillón de sinapsis (mientras que actualmente no podemos simular con éxito más que redes neuronales artificiales de poco más de un millón de conexiones -sinapsis-; varios órdenes de magnitud por debajo de la capacidad biológica).

Sin embargo, lo importante del asunto no es realmente saber cuánto nos queda aún para lograr emular por completo el potencial que ofrece el cerebro biológico, sino el hecho de que ya hoy día podemos asegurar, con poco lugar a dudas, que nuestra mente es fruto del procesar eléctrico de la red neuronal del cerebro, y que dicha red neuronal es equivalente a un proceso de computación digital matemático:

Nuestra mente, en el fondo, no es más que el fruto de una enorme calculadora digital capaz de ejecutar en paralelo cientos de trillones de operaciones por segundo: operaciones que, por cierto, se reducen a meras sumas de potenciales eléctricos.

Código fuente del trabajo de Conecta 4.

Archivo JAR directamente ejecutable (sólo necesitas tener instalado Java JRE en tu ordenador y hacer doble click en el fichero).
- Código fuente del proyecto (no he tenido tiempo de poner en limpio el código, ni de comentarlo como es debido; pero sí creo que está más o menos bien estructurado para el poco tiempo que tengo para dedicar a estas cosas :P).

Referencias.

[1] http://quevidaesta2010.blogspot.com.es/2016/01/nada-mas-que-neuronas.html
(Nuevo hito histórico conseguido por un equipo de Google, por el cual han conseguido desarrollar una red neuronal capaz de vencer por primera vez a un gran maestro en el juego Go.
[2]Scientific American: "Computer Beats Go Champion for First Time" (http://www.scientificamerican.com/article/computer-beats-go-champion-for-first-time/)
[3] http://quevidaesta2010.blogspot.com.es/2016/02/decodificando-la-mente.html
(Gran trabajo de Rajesh P. N. Rao, un neurocientífico computacional de renombre que formó parte del equipo de desarrollo de un importante experimento. El paper original se puede leer de forma gratuita desde este enlace: http://www.ploscompbiol.org/article/fetchObject.action?uri=info:doi/10.1371/journal.pcbi.1004660&representation=PDF y su título es el siguiente: "Spontaneous Decoding of the Timing and Content of Human Object Perception from Cortical Surface Recordings Reveals Complementary Information in the EventRelated Potential and Broadband Spectral Change").
[4] http://algoritmoevolutivo.blogspot.com.es/2011/10/computacion-evolutiva-ejemplo-iii.html
(Este es el trabajo que escribí originalmente en el 2011, y que acabo de mejorar para que no necesite ya ni siquiera de la ayuda del árbol minimax que originalmente utilicé de apoyo).

domingo, 7 de febrero de 2016

La izquierda nos miente, la derecha nos roba y el centro no existe


No suelo escribir en el blog mucho sobre política, porque además no es algo que me interese demasiado. Sin embargo, me gustaría compartir con vosotros una pequeña reflexión (muy personal) sobre el asunto de la "nueva" izquierda que está emergiendo aquí en España, liderada por el partido político de Podemos:

Pues bien. Resulta que parece ser que se confirma una vez más lo que por otra parte es evidente para cualquiera con dos dedos de frente: que de donde no hay, no se puede sacar; y que en el fondo todos los políticos (sin importar su ideología) no son más que personas con demasiados intereses personales como para tener una verdadera libertad de decisión. Y es que es un secreto a voces que la izquierda normalmente llega al poder prometiendo, mediante una propaganda descarada, cosas que se ven a leguas que son inviables económica y socialmente (aunque la necesidad hace que la mayoría no quiera, o acaso ni pueda, aceptar dicha inviabilidad). Luego, una vez llegan a tomar el cargo; pues simplemente ignoran alegremente todas esas medidas populistas que nos vendieron, y se dedican a maquillar esta falta con "tonterías" de marketing sin trascendencia real y profunda: como fue el caso en Madrid de poner a reinas magas en las cabalgatas, quitar el retrato del Rey del salón del pleno, y demás sandeces por el estilo.

En el caso concreto de Cádiz capital (que me toca de cerca), la cosa va quedando muy clara: ni el nuevo alcalde de Podemos "el Kishi" se bajó el sueldo como prometió, ni ha reducido el número de asesores para la alcaldía (ni sus sueldos), e igualmente tampoco ha detenido los desahucios de vivienda (como afirmó), ni mucho menos aseguró el agua y la luz a los vecinos con necesidades de La Corrala; ni, en definitiva, ha hecho "na de na". Aunque lo que sí ha hecho (como no) es pretender "vender e insistir" en el gran cambio social que su gobierno ha supuesto, aunque lo hace exclusivamente mediante audaces y simplistas artimañas propagandísticas, como la de desplazar durante los concursos de Carnaval del palco del Gran Teatro Falla a los políticos; y metiendo en su lugar a gente con necesidades económicas: que vale, que está muy bien; pero que mejor habría sido que les hubiera detenido los desahucios, asegurado el agua y la luz, o dado un trabajo digno; es decir: cumpliendo con su programa electoral. Es como si el hecho de que esos pocos necesitados vayan a poder asistir al Falla durante un par de días pudiese hacernos olvidar que ha faltado a más del 99% de sus promesas electorales (¿O quizás si puede? No olvidemos que la propaganda es un arma muy poderosa en tiempos de crisis).

En fin, que todo sigue como siempre. La izquierda nos miente, la derecha nos roba y el centro no existe. Estamos apañados.

miércoles, 3 de febrero de 2016

Decodificando la mente

"Tradicionalmente los científicos han examinado las neuronas individuales, nuestro estudio da una visión más global, a nivel de grandes redes de neuronas, de cómo una persona que está despierta y presta atención percibe un objeto visual complejo." (Rajesh P. N. Rao)

A finales del año pasado ocurrió un hito en neurociencia del cual los medios de comunicación no se han hecho el debido eco. En concreto, un equipo multidisciplinario de participantes de muy diversas universidades estadounidenses (además de otros miembros de centros públicos como la NASA), ¡consiguieron literalmente decodificar  parte de la información contenida en los impulsos eléctricos que recibían desde varios electrodos implantados en pacientes voluntarios!

Llegué a este trabajo que os comento gracias a que soy un fiel seguidor del trabajo de Rajesh P. N. Rao, un neurocientífico computacional de renombre que formó parte del equipo de desarrollo de este experimento. El paper original se puede leer de forma gratuita desde este enlace: http://www.ploscompbiol.org/article/fetchObject.action?uri=info:doi/10.1371/journal.pcbi.1004660&representation=PDF y su título es el siguiente: "Spontaneous Decoding of the Timing and Content of Human Object Perception from Cortical Surface Recordings Reveals Complementary Information in the EventRelated Potential and Broadband Spectral Change".

¿En qué consistió el experimento?

El desarrollo técnico es un poco complejo y no voy a entrar en mucho detalle por aquí (aunque tenéis el paper para saber más), por lo que voy a limitarme a divulgar qué es concretamente lo que este equipo de investigación ha hecho de un modo que se pueda entender con claridad:

Comenzaron implantando mediante cirugía varios electrodos dentro de ciertas zonas concretas del cerebro de 7 sujetos voluntarios (los cuales iban a ser operados de todas maneras por otros motivos), de modo que pudieron ir recopilando mediante diversas técnicas los datos eléctricos que esos electrodos recogía.

Una vez implantado los electrodos (de 4 mm de diámetro) en los lóbulos temporales, se comenzó una serie de 3 rondas en las que se le mostraban a estas personas imágenes de cientos de rostros (de caras) y de cientos de casas (imágenes que el paciente no había visto antes). Cada 400 milisegundos la figura que se le mostraba cambiaba por otra imagen aleatoria hasta llegar a las 100 imágenes (por tres series = 300 imágenes).

Durante todo ese tiempo en que se le hacía el pase de imágenes de diferentes objetos al individuo, se iban almacenando digitalmente los valores eléctricos que los diversos electrodos implantados sentían en cada momento del experimento. De este modo consiguieron una base de datos de los valores eléctricos registrados por los 7 participantes durante el pase de las 300 imágenes mostradas. Esa base de datos, por cierto, la han hecho pública y la podéis descargar vosotros mismos desde este enlace: https://purl.stanford.edu/xd109qh3109 (junto con el algoritmo de Matlab desarrollado para la decodificación de las propias señales).

Y ahora viene lo interesante. Una vez con este enorme conjunto de datos, el equipo de investigación se propuso demostrar si esos impulsos eléctricos registrados por los electrodos contenían suficiente información (o incluso alguna información) correlacionada con el estímulo concreto presentado al paciente (y percibido por éste) en cada instante. Es decir; había que estudiar si todos esos datos contenían algún tipo de información oculta detrás de algún patrón de codificación neuronal no conocido a priori.

Estudio de los datos.

Hay que tener en cuenta, que lo que los electrodos recopilan es simplemente un valor escalar que representa el voltaje aproximado que hay en sus proximidades en cada momento, lo cual nos permite en un primer momento simplemente formar gráficas de voltaje por unidad de tiempo de este estilo:


En esta imagen se puede ver, por ejemplo; los valores registrados por cuatro electrodos durante la exposición de 400ms a un imagen conteniendo un objeto determinado (una casa, una cara, etc.). En concreto, la línea rosa representa los valores de voltaje recogidos cuando el objeto del estímulo contuvo la imagen de una casa, mientras que la línea azul representa los valores eléctricos tomados cuando el estímulo fue el de una faz. Estos valores no son siempre los mismos (la gráfica no es siempre igual aunque se presente de nuevo una casa o una cara), por lo que había que descubrir si detrás de todos esos datos había un patrón oculto utilizado por el cerebro a modo de codificación. Y puestos a que fuera ese el caso, se propuso intentar decodificar el mensaje eléctrico para poder prever el objeto de la percepción de un individuo de un modo continuo y sincronizado: es decir; que se pretendía encontrar un algoritmo capaz de decodificar en tiempo real los impulsos que llegaban desde los electrodos del cerebro para poder "adivinar" (sin ninguna otra información), qué tipo o clase de objeto era el que estaba percibiendo el paciente (el cual se encontraba incomunicado del experimentador).

El proceso de decodificación.

Con este fin en  mente, se desarrolló un algoritmo utilizando técnicas de computación mediante aprendizaje automático ("Machine learning"), haciendo uso concretamente de una técnica estadística que se conoce como LDA ("Fisher linear discriminant analysis"). Para lograrlo, dividieron la enrome muestra de datos en 3 partes, y asignaron dos partes al proceso de entrenamiento del modelo ("training"), dejando la parte restante para las pruebas de fidelidad del clasificador ("testing"). Como ya he dicho, este algoritmo escrito en Matlab (junto con los datos recogidos del voltaje de los electrodos), lo han hecho público y lo podéis descargar desde aquí.

Resultados.

Siguiendo este procedimiento, y gracias al algoritmo desarrollado con estas técnicas computacionales de inteligencia artificial, se consiguió detectar ciertos patrones clasificadores detrás de toda esa información eléctrica, lo cual ha permitió el enorme logró que supone el hecho de poder, literalmente, decodificar la suficiente información transportada por estos impulsos neuronales conjuntos como para poder prever (clasificar) en tiempo real lo que los sujetos van percibiendo con una precisión superior al 96% de aciertos.

Es decir; que únicamente a partir del estado eléctrico del cerebro en cierto momento, se pudo detectar (sin ninguna otra información por parte del sujeto) el contenido visual abstracto que el paciente estaba percibiendo en cada momento. Todo esto sugiere que el hecho de que de que un sujeto perciba un tipo de objeto u otro (y lo relacione con un concepto abstracto concreto: "veo una casa, o veo una cara"), se refleja principalmente en un patrón eléctrico determinado el cual codifica dicha información, demostrándose de este modo que cualquier información abstracta del ser humano se puede reducir, en principio, exclusivamente a un estado físico-químico (eléctrico) del cerebro.

Por cierto, que toda esta compleja codificación habría sido evolutiva y gradualmente ajustada por un largo proceso de selección natural actuando sobre la estructura material del cerebro.

Futuros desarrollos.

Esta técnica desarrollada, y que está dando sus primeros pasos, es realmente un trampolín hacía un futuro mapeo cerebral completo, lo cual podrá utilizarse para identificar en tiempo real qué lugares del cerebro son sensibles a los distintos tipos de información. En otras palabras; una mejora de esta técnica podrá llevar, con toda probabilidad, a que podamos finalmente lograr una decodificación completa del cerebro, pudiéndose prever no sólo estímulos visuales abstractos (casas, caras, etc.), sino también cualquier otro producto de un proceso cognitivo. La metodología sería básicamente la misma: tomar datos de la actividad eléctrica neuronal ante una conducta o estímulo de estudio, y proceder a continuación a decodificar esos datos usando técnicas computacionales ante esas señales eléctricas. Posteriormente, simplemente con medir el estado cerebral de un individuo cualquiera se podría prever cualquier proceso cognitivo que haya detrás de dicho estado eléctrico.

Discusión.

A parte de las grandes utilidades prácticas de este estudio (como la de ayudar a "adivinar" qué piensan los pacientes con grave parálisis motora o que han tenido un derrame cerebral y están completamente bloqueados), hay que resaltar un hecho muy importante: este estudio demuestra que la percepción sensorial y la posterior objetivación abstracta (conceptual) del mundo percibido, es un proceso que se produce exclusivamente de un modo material en la red neuronal evolutiva del cerebro (si no fuese este el caso, este experimento no habría podido tener éxito puesto que basa todas sus premisas en el estudio material -eléctrico- del cerebro).

El acto de percibir estímulos, y el acto de transformar esas percepciones en ideas de objetos o conceptos relacionales, se ha demostrado ser un complejo proceso eléctrico disperso entre la red neuronal del cerebro, el cual literalmente codifica un patrón de voltaje distinto para cada concepto, idea, sensación, etc. Tanto es así, que en este estudio se ha conseguido la decodificación de varios de estos patrones "objetivizadores" que permite a un paciente diferenciar en su mente cuando ve, por ejemplo, una casa cualquiera (no una casa concreta, sino cualquier casa, aunque sea la primera vez que la ve), de cuando ve, por ejemplo, una cara cualquiera (aunque sea la de alguien que ve por primera vez). En otras palabras, el acto de ver y reflexionar sobre un objeto concreto, se traduce en distintos patrones eléctricos que van recorriendo las diferentes partes del cerebro transmitiendo la información de un modo codificado. Y es ese patrón constituido por miles de impulsos eléctricos, que hasta no hace mucho parecían caóticos, los que estamos ya empezando a comprender.

Siguiendo este proceso, llegará un momento en que un algoritmo de este tipo será capaz de detectar cualquier clase de percepción y proceso cognitivo únicamente a partir de la información eléctrica que corre entre las sinapsis de nuestra red de neuronas. Es decir; que bastante pronto (relativamente hablando), se conseguirá decodificar (mapear) el patrón del estado eléctrico completo que origina cualquier acto cognitivo en el hombre.

Se puede decir por tanto, a modo de resumen, que el verdadero hito histórico de este trabajo consiste en ser el primero en demostrar con la suficiente fuerza (con aciertos cercanos al 100% y sincronizado en tiempo real) el hecho de que toda la mente humana puede no ser más que la emergencia ocurrida tras el procesado eléctrico conjunto de cientos de millones de neuronas; las cuales utilizan un complejo conjunto de patrones eléctricos (evolutivamente determinados) para comunicar información entre las distintas zonas cerebrales y posteriormente hacia el exterior (mediante la comunicación verbal, por ejemplo).

Si quedaban pocas esperanzas para algún tipo de dualismo en la explicación de nuestra mente, este estudio acaba de dar al traste con ellas: no sólo se ha visto que no es necesario nada a parte del estado material del conjunto del cerebro, sino que incluso ya vamos siendo capaces de decodificar dicho estado material para prever ciertas propiedades emergentes de la mente. En un futuro no demasiado lejano, literalmente podremos usar el estado eléctrico global de un sujeto para adelantar (sin más información) cualquier idea, pensamiento, estimulo sensible, o proceso cognitivo en general que tenga esa persona.

Referencias.

Kai J. Miller, Gerwin Schalk, Dora Hermes, Jeffrey G. Ojemann, Rajesh P. N. Rao: Spontaneous Decoding of the Timing and Content of Human Object Perception from Cortical Surface Recordings Reveals Complementary Information in the Event-Related Potential and Broadband Spectral ChangePLOS Computational Biology (2016). DOI: 10.1371/journal.pcbi.1004660.