lunes, 26 de septiembre de 2016

¿Por qué las redes de neuronas funcionan tan bien? Computadores y cerebros

¿Y si toda la corteza cerebral no fuera más que una máquina de hacer predicciones? Con esta hipótesis, Jeff Hawkins, el inventor de la Palm, y Sandra Blakesle, graduada en ciencias políticas, escribieron en 2004 un interesante libro sobre inteligencia artificial: On Intelligence. 

El neo-cortex o corteza cerebral de los mamíferos, es una lámina que cubre los hemisterios cerebrales. Se encuentra plegada de un modo característico dando al cerebro humano el aspecto que conocemos. En toda su extensión conserva una estructura celular fija de 6 capas neuronales consecutivas conectadas entre sí y con otras zonas del cerebro.

Estructura neuronal del neocortex.
La imagen es de Wikipedia
Según los autores, la red recibiría la información del mundo exterior en forma de patrón de señales eléctricas. Con esta información realizaría una predicción de cuál sería la siguiente señal en el futuro, o lo que es lo mismo, de qué podría pasar a continuación en el mundo real. Los mamíferos usaríamos estas predicciones para ajustar nuestros comportamientos con mayores garantías de supervivencia.

Para crear sus predicciones este sistema usaría su “memoria” de experiencias previas que mantiene guardada en su propia estructura de conexiones. De hecho, sabemos que ésta es (de forma simplificada) el modo en que el cerebro guarda la memoria. Las neuronas refuerzan o destruyen conexiones, creando estructuras físicas que guardan la información de los recuerdos que tenemos y de las cosas que aprendemos.

Según esta explicación, la predicción que realiza el neo-cortex no sería más que un cálculo automático de su red neuronal ante una entrada de información del entornoSe trata de una perspectiva muy propia de ingeniería y de hecho, para desarrollarla, los autores se basan en un conocido modelo de este campo: las máquinas de estado finito.

Hawkins siempre ha defendido que es necesario aprender cómo funciona el cerebro para crear sistemas inteligentes. Cuenta la leyenda que fue esta defensa a ultranza de la neurociencia como modelo de IA la que hizo que lo rechazaran cuando intentó entrar en el MIT.

Sinceramente, en su momento no fui capaz de decidir si el libro era una locura o una genialidad. La idea era plausible pero soy incapaz de analizar las matemáticas que hay debajo y tampoco soy un experto en procesamiento de señal en cerebro. Sin embargo, la simplicidad de la idea me marcó y quedó fuertemente grabada en mi red neuronal.

La cuestión es que mucho tiempo después, hace cosa de un año, un amigo me habló de un modelo de aprendizaje de máquina que estaba consiguiendo éxitos increíbles en el campo de la IA, el "deep learning", traducido como "aprendizaje profundo".

Simplificando un poco la cuestión, un sistema de aprendizaje profundo es una red neuronal artificial muy grande, con varias capas. La teoría de las redes neuronales está establecida desde hace unos años, pero ha sido la enorme mejora en la potencia de los procesadores actuales la que ha permitido aumentar su tamaño y propiciar su desarrollo.

Como me adelantó mi amigo, las redes de aprendizaje profundo han revolucionado por completo el campo de la inteligencia artificial. Todos los sistemas actuales, de reconocimiento de escritura, de caras, lenguaje natural e incluso Siri, están basados en este modelo. Además, estos sistemas han machacado a los humanos en todos los juegos conocidos, incluidos el último reducto que nos quedaba, el Go. Un juego de origen chino que dicen es el más difícil del mundo.

Un de los campos en los que mejor se ha estudiado el funcionamiento del aprendizaje profundo ha sido en el reconocimiento facial. La estrategia es entrenar una red con imágenes etiquetadas de un grupo de personas con el objetivo de que sea capaz de reconocer a estas personas en nuevas imágenes.

Como el propio cerebro, las redes neuronales, guardan su conocimiento de forma distribuida en la red. Ante una nueva imagen, sólo se activan unas pocas neuronas de todas opciones las posibles. Si el patrón de activación coincide con el que se ocurrió con una persona determinada durante el aprendizaje, el sistema etiquetará la imagen con su nombre.

Estos patrones de activación de neuronas ocurren de forma secuencial en cada una de las capas del sistema. De hecho, podemos decir que cada capa guarda un tipo diferente de información. En la imagen de abajo puede comprobarse cómo cada una de las capas trabaja con un tipo de información diferente: color del pixel, formas simples, objetos y por fin caras.

La imagen es del sistema de reconocimiento de Andrew Ng

Sin embargo, a pesar de los increíbles resultados que hemos logrado con los sistemas de redes neuronales, tenemos que reconocer que nos falta mucho por conocer sobre ellos. De hecho, en realidad no tenemos ni idea de por qué funcionan tan bien ¿Cómo puede ser que esos sistemas sean útiles en ámbitos tan diferentes como el reconocimiento de caras, la lectura de leguaje natural o las predicciones económicas?

Respondiendo a esta cuestión, hace nos día se ha escrito un interesante artículo en arXiv (resumen) que nos da algunas pistas. Según sus autores, la respuesta de está en la propia naturaleza de la realidad, el mundo que conocemos tiene ciertas características que facilitan el trabajo de las redes neuronales:

i) Resulta que las leyes físicas son bastante simplesSé que parece una locura afirmar que la física, con todas esas fórmulas infernales, es simple. Pero digamos que podría ser peor. La mayor parte de las leyes físicas que conocemos tienen, en su representación más fundamental, ecuaciones con exponentes bajos, como máximo 4. Este hecho reduce enormemente el número de soluciones a explorar y el número de parámetros a ajustar, facilitando mucho el trabajo de la red. Es lo que los autores llaman "cheap learning" (aprendizaje barato).
La imagen me ha gustado... y
la puedes comprar aquí

ii) Además, en el mundo físico la información es normalemente independiente de procesos de rotación o traslación. Un gato es también un gato aunque le demos la vuelta o lo movamos 10 metros. Estas características también facilitan la aproximación de la red a procesos reales.

iii) Por último, la realidad, como las redes neuronales, está muy jerarquizada. Las moléculas forman células que forman organismos, planetas, sistemas solares, galaxias… los pixeles forman narices, ojos y bocas que forman caras… Cada una de las capas de la red neuronal funcionaría como una aproximación a cada uno de estos niveles jerárquicos, como hemos visto arriba.


Resulta que, años después, por fin se confirma que aquel libro era más una genialidad que una locura y que Hawkins tenía bastante razón. Copiar el cerebro ha sido una buena estrategia para crear sistemas inteligentes, al menos si van para trabajar en el mundo en que vivimos. 

Millones de años de azar y selección han permitido a la evolución crear un sistema que "comprende" bien la realidad. Parece que el secreto de las redes neuronales no sólo está en cómo guardan la información aprendida, su propia arquitectura ofrece un modelo de datos que captura la esencia última de la realidad física.

Es cierto que las redes neuronales artificiales son increíbles, pero para mi, lo más interesante de todo es lo que nos dice de nosotros mismos. Las razones del éxito del aprendizaje profundo explican también por qué nuestro cerebro nos ha proporcionado tal ventaja evolutiva. La clave ha sido aprender a predecir la realidad.


"Prediction is not just one of the things your brain does. It is the primary function of the neo-cortex, and the foundation of intelligence.*"

Jeff Hawkins



* Traducción: "La predicción no es sólo una de las cosas que hace el cerebro. Es la función principal de neocortex y el origen de la inteligencia."