lunes, 22 de diciembre de 2014

DeepMind: Neural Turing Machine

DeepMind Technologies es una compañia Británica de inteligencia artificial fundada en 2011. Adquirida por  Google en 2014.

Extinguidos por las máquinas. Inteligencia Artificial: ¿progreso vital o peligro letal?






Les presento a Deep Mind, una computadora capaz de aprender a jugar contra las computadoras mucho más rápido de lo que cualquier persona podría hacer. Deep Mind hace lo que usted y yo hacemos: observar patrones de conducta e intentar predecir cómo reaccionar. De momento Deep Mind se lo está pasando genial jugando a los juegos Arcade (vean en el video cómo aprende de rápido).
Digamos que Deep Mind es un adolescente feliz porque es capaz de derrotar a todas las maquinetas que nos hacían imposible la vida cuando teníamos doce o catorce años. El problema es que Deep Mind es tan increíblemente bueno y rápido aprendiendo que ha despertado algunas alarmas, entre ellas, significativamente, las de su propio creador, Shane Legg, que ha dicho que los avances en inteligencia artificial, si no se controlan bien, pueden convertirse en la amenaza número 1 para el ser humano en este siglo (parece broma pero no lo es). 
El tema que planteo ahora es, si cabe, aún más peliagudo. El que la inteligencia artificial acabara dominado al ser humano que la ha creado es una pesadilla recurrente de la ciencia-ficción. Seguro que hay lectores de este blog que pueden documentar quién fue el primero en plantear esta distopia pero está claro que el cine, desde 2001 Una Odisea del Espacio hasta Terminator ha dado buena cuenta del tema.
Pero que a guionistas y novelistas de ciencia-ficción les preocupe este tema no nos preocupa tanto (al fin y al cabo, les pagan por dibujar y simular futuros) como que un científico de verdad, de la talla de Stephen Hawking, manifieste su preocupación porque las máquinas puedan ser más listas que nosotros y tomar el control.
En una reunión con especialistas en I.A. celebrada en Sillicon Valley (ver referencia), Hawking ha planteado el contraste entre, por un lado, la lentitud con la que mejora la esperanza de vida y la calidad genética de los humanos con, por otro, la Ley de Moore, que establece la duplicación de la capacidad de las computadoras cada 18 meses. Por tanto, las mejoras genéticas y nuestro entendimiento del cerebro humano llegarán mucho más tarde que la inteligencia artificial.

Deep Mind es ahora propiedad de Google, que compró esta pequeña y prometedora empresa británica en enero de 2014 por 400 millones de dólares. Google está invirtiendo masivamente en máquinas que aprendan intuitivamente y en procesadores basados en la mente humana. Estas máquinas se programan a sí mismas como hacen los humanos, observando el entorno y aprendiendo, en un proceso llamado "Neural Turing". En su orígen está, como siempre, el cruce de dos campos científicos previamente desconectados: la neurología y la computación. ¿El responsable? Demis Hassabis, un genio de la neurociencia y de la computación (es quien explica en el video el funcionamiento de Deep Mind).
¿Será a él a quien las máquinas manden buscar o matar en el futuro? O, como señala Stephen Hawking, habremos conseguido evacuar el planeta tierra antes de que las máquinas acaben con él. Dice Hawking que las próximas amenazas para la humanidad pueden venir de la inteligencia artificial porque al paso que vamos, dentro de 1.000 años, las máquinas ya serán lo suficientemente fuertes como para poder destruirnos por accidente.

DeepMind start up de  Google da a conocer su "Neural Turing Machine"


DeepMind ha construido una red neuronal que puede acceder a una memoria externa como una máquina de Turing convencional. El resultado es un equipo que imita la memoria a corto plazo del cerebro humano.


Uno de los grandes retos de la neurociencia es entender el corto plazo la memoria de trabajo en el cerebro humano. Al mismo tiempo, los informáticos les encantaría a reproducir el mismo tipo de memoria in silico.

Hoy en día, el inicio DeepMind secreto de Google, que compró 400 millones de dólares a principios de este año, presenta un equipo prototipo que trata de imitar algunas de las propiedades de la memoria de trabajo a corto plazo del cerebro humano. El nuevo equipo es un tipo de red neuronal que ha sido adaptado para trabajar con una memoria externa. El resultado es un equipo que aprende ya que almacena recuerdos y más tarde puede recuperarlos para realizar tareas lógicas más allá de los que ha sido entrenado para hacerlo.

Avance de DeepMind sigue una larga historia de trabajo en la memoria a corto plazo. En la década de 1950, el psicólogo cognitivo estadounidense George Miller llevó a cabo uno de los experimentos más famosos en la historia de la ciencia del cerebro. Miller estaba interesado en la capacidad de la memoria de trabajo del cerebro humano y se dispuso a medir con la ayuda de un gran número de estudiantes que le pidió llevar a cabo tareas simples de memoria.

Sorprendente conclusión de Miller fue que la capacidad de memoria a corto plazo no puede ser definido por la cantidad de información que contiene. En lugar Miller concluyó que la memoria de trabajo almacena información en forma de "trozos" y que podía contener aproximadamente siete de ellos.

Esto plantea la curiosa pregunta: ¿qué es un trozo? En los experimentos de Miller, un trozo podría ser un solo dígito, como un 4, una sola letra como aq, una sola palabra o un pequeño grupo de palabras que en conjunto tienen un significado específico. Así que cada fragmento puede representar cualquier cosa, desde una muy pequeña cantidad de información a una idea enormemente compleja que es equivalente a grandes cantidades de información.

Pero por mucho que la información de un único trozo representa, el cerebro humano sólo puede almacenar alrededor de las siete de ellos en su memoria de trabajo.

He aquí un ejemplo. Considere la siguiente frase: "Este libro es una emocionante leer con una trama compleja y personajes reales."

Esta frase se compone de alrededor de siete trozos de información y es claramente manejable para cualquier lector ordinario.

Por el contrario, trata de esta frase: "Este libro sobre el imperio romano durante los primeros años del reinado de César Augusto en el final de la República romana, describe los acontecimientos que siguieron a la sangrienta batalla de Actium en 31 AC cuando el joven emperador derrotado Marco Antonio y Cleopatra de outmaneuvering exhaustivamente en un combate naval importante ".

Esta frase contiene al menos 20 trozos. Así que si lo encontró más difícil de leer, que no debería ser una sorpresa. El cerebro humano tiene problemas para mantener esta cantidad de trozos en su memoria de trabajo.

En la ciencia cognitiva, la capacidad de entender los componentes de una oración y almacenarlos en la memoria de trabajo se denomina variable de unión. Esta es la capacidad de tomar un pedazo de datos y asignarlo a una ranura de la memoria y hacer esto varias veces con datos de diferente longitud, como trozos.

Durante los años 1990 y 2000, los informáticos intentaron varias veces para diseñar algoritmos, circuitos y redes neuronales que podían realizar este truco. Ese equipo debe ser capaz de analizar una simple frase como "María habló a Juan" al dividirla en sus partes componentes del actor, la acción y el receptor de la acción. Así que en este caso, sería asignar el rol del actor a María, el papel de la acción a las palabras "habló" y el papel de receptor de la acción a "Juan".

Es esta tarea que las direcciones de trabajo de DeepMind, a pesar de la muy limitada rendimiento de las máquinas anteriores. "Nuestra arquitectura se basa en la potencia y este trabajo", dice Alex Graves, Greg Wayne, e Ivo Danihelka en DeepMind, que está basado en Londres.

Comienzan mediante la redefinición de la naturaleza de una red neural. Hasta ahora, las redes neuronales han sido patrones de "neuronas" interconectados que son capaces de cambiar la fuerza de las interconexiones en respuesta a alguna entrada externa. Esta es una forma de aprendizaje que les permite detectar similitudes entre las diferentes entradas.

Pero el proceso fundamental de la computación contiene un elemento adicional importante. Esta es una memoria externa que se puede escribir y leer desde durante el curso de un cálculo. En la famosa descripción de Turing de una computadora, la memoria es el teletipo que pasa hacia atrás y adelante a través de la computadora y que almacena los símbolos de diversos tipos para su posterior procesamiento.

Este tipo de memoria de lectura y escritura está ausente en una red neuronal convencional. Así Graves y co simplemente han añadido uno. Esto permite que la red neuronal para almacenar las variables en su memoria y volver a ellos más tarde para utilizar en un cálculo.

Esto es similar a la forma en que una computadora ordinaria podría poner el número 3 y el número 4 en el interior de registros y después añadirlos a hacer 7. La diferencia es que la red neural puede almacenar patrones más complejos de variables que representan, por ejemplo, la palabra "María ".

Dado que esta forma de computación difiere de manera importante de una red neural convencional, Graves y co le dan un nuevo nombre-lo llaman una máquina de Turing Neural, la primera de este tipo que se han construido. La máquina de Turing Neural aprende como una red neuronal convencional utilizando las entradas que recibe del mundo exterior, pero también aprende cómo almacenar esta información y cuando para recuperarlo.

El trabajo DeepMind implica en primer lugar la construcción del dispositivo y luego ponerlo a prueba. Sus experimentos consisten en una serie de pruebas para ver si, después de haber entrenado una Máquina Turing Neural para realizar una determinada tarea, podría luego extender esta capacidad a las tareas más grandes o más complejos. "Por ejemplo, teníamos curiosidad por ver si una red que había sido entrenado para copiar secuencias de longitud de hasta 20 podría copiar una secuencia de longitud 100 sin más formación", dicen Graves y co.

Resulta que la máquina de Turing neural aprende a copiar secuencias de longitudes de hasta 20 más o menos perfectamente. Y a continuación, copia secuencias de longitudes de 30 y 50 años con muy pocos errores. Para una secuencia de longitud 120, errores comienzan a deslizarse, incluyendo un error en el que un solo término es duplicada y lo empuja a todos los siguientes términos un paso atrás. "A pesar de ser subjetivamente cerca de una copia correcta, esto conduce a una alta pérdida," decir que el equipo.

Aunque las secuencias implicadas son al azar, no es difícil imaginar cómo podrían representar ideas más complejas, como "María" o "habló" o "John". Un punto importante es que la cantidad de información que estas secuencias contienen es variable, al igual que trozos.

Comparan el rendimiento de su máquina de Turing Neural con una red neuronal convencional. La diferencia es significativa. La red neuronal convencional aprende a copiar secuencias hasta la longitud 20 casi a la perfección. Pero cuando se trata de secuencias que son más largos que los datos de entrenamiento, los errores se convierten inmediatamente significativo. Y su copia de la secuencia más larga de la longitud 120 es casi irreconocible en comparación con el original.

El equipo DeepMind ir a probar la máquina de Turing Neural en otras tareas. Por ejemplo, uno de estos es el equivalente de fotocopiadora: la tarea es copiar una secuencia y luego repetir esa secuencia de un número especificado de veces y terminar con un marcador predeterminado. Una vez más, la máquina de Turing Neural supera significativamente a una red neuronal convencional.

Esa es una impresionante pieza de trabajo. "Nuestros experimentos demuestran que [nuestra máquina de Turing Neural] es capaz de aprender algoritmos simples de datos de ejemplo y de la utilización de estos algoritmos para generalizar así fuera de su régimen de entrenamiento", dice Graves y co.

Ese es un paso importante que tiene el potencial de hacer que las máquinas de computación mucho más parecidas al cerebro humano que nunca. Pero hay un importante trabajo por delante.

En particular, el cerebro humano realiza un truco ingenioso para dar sentido a los argumentos complejos. Una pregunta interesante que se desprende de los primeros trabajos de Miller es la siguiente: si nuestra memoria de trabajo sólo es capaz de manejar siete trozos, ¿cómo podemos hacer sentido de argumentos complejos en los libros, por ejemplo, que se compone de miles o decenas de miles de pedazos?

La respuesta de Miller es que el cerebro utiliza un truco conocido como una recodificación. Volvamos a nuestro ejemplo del libro y agregar otra frase: "Este libro es una emocionante leer con una trama compleja y personajes reales. Está claro que es la pena el precio de la cubierta ".

Una vez que haya leído y entendido la primera frase, el cerebro almacena los siete trozos de una manera que está disponible como un solo trozo en la frase siguiente. En esta segunda frase, el pronombre "él" es el único trozo. Nuestro cerebro sabe automáticamente que "" significa: ". El libro que es una emocionante leer con una trama compleja y personajes reales" Ha recodificado los siete trozos anteriores en un solo trozo.

Para Miller, la capacidad del cerebro para volver a codificar de esta manera fue una de las claves de la inteligencia artificial. Él cree que hasta que una computadora podría reproducir esta habilidad, nunca podría igualar el rendimiento del cerebro humano.

DeepMind de Google ha declarado que su objetivo es "Solución de inteligencia." Si esta solución es algo parecido a la inteligencia humana, una buena prueba sería ver si las máquinas de Turing neuronales son capaces de recodificación truco de Miller. 


Neural Turing Machine


Extendemos las  capacidades de las  "neural networks" llevándolas a  "external memory resources", which they can interact with by attentional processes. El sistema combinado esa analogo   a Turing Machine or Von Neumann architecture pero diferenciable  end-to-end, permitiéndole ser  "efficiently trained with gradient descent". Los resultados preliminares demuestran que una  Neural Turing Machines puede inferir  algoritmos simples  como copying, sorting, and associative recall desde ejemplos input and output. 



Máquinas de Turing Neuronales: aprende sus algoritmos

Escrito por Mike James


¿Otro avance en Google DeepMind? Se propone una forma de redes neuronales de la arquitectura de la máquina de Turing y demostró, y que no parece aprender de sus algoritmos.

Uno de los problemas con las redes neuronales es que sabemos que son de gran alcance en la teoría, pero en la práctica entrenarlos y llevarlos a aprender lo que queremos resulta ser difícil. Por ejemplo, una red de alimentación directa con tres capas puede aprender cualquier función y una red neuronal recurrente RNR se Turing completa y así puede calcular cualquier cosa que puede ser calculado.

Lo que necesitamos son algunas reglas e ideas para dar a las redes más estructura para que la altura de su promesa. Después de todo, el cerebro humano no es sólo un conjunto conectado al azar de neuronas que tiene unidades funcionales que hacen trabajos particulares.

La Máquina NTM Neural Turing se inspira en el diseño estándar de la máquina de Turing - pero utilizando redes neuronales para implementar las unidades funcionales. Una máquina de Turing estándar consiste en una unidad de control y una cinta. La unidad de control es una máquina de estados finitos que puede leer y escribir la cinta. Como se lee símbolos que cambia de estado y luego escribe un símbolo. Este es un modelo de lo que es el cálculo y, aunque en teoría puede calcular cualquier cosa que puede ser calculado, no es una máquina práctica.

La máquina de Turing neural también tiene una unidad de control y una memoria que es un poco más potente que una simple cinta de la máquina de Turing. La unidad de control puede ser o bien una red de alimentación directa simple o una red neuronal recurrente. La memoria toma la forma de una matriz de valores que se actualiza de manera más gradual que una memoria digital estándar. Una operación de escritura consiste en una operación de borrado, que es como una multiplicación por 1-w, es decir, se reduce lo que se almacena en un factor de w, y una operación de suma que añade a continuación, w a la ubicación. Se puede ver que la memoria puede funcionar de tal manera que los recuerdos se desvanecen y son reemplazados lentamente por otros nuevos. Si usted sabe acerca de las redes de Hopfield esto suena familiar, y de hecho la memoria es una memoria de contenido direccionable modificado.

Hasta ahora esto sólo suena como un intento de hacer una máquina de Turing a partir de componentes de redes neuronales, pero hay algo muy diferente acerca de esta forma de máquina. Todos los componentes trabajan con valores continuos y toda la máquina es diferenciable. Es decir, se puede cuantificar el cambio en la salida que cualquier cambio en las entradas provoca. Esto significa que se puede utilizar de propagación hacia atrás estándar para entrenar a la máquina de Turing neuronal y esto es una diferencia muy grande.

NTMdiagram

Por supuesto, el hecho de que usted puede entrenar a un equipo no significa que vaya a aprender bien o particularmente útil nada. Así que el equipo de Alex Graves, Greg Wayne e Ivo Danihelka volvió su teoría en un programa y entrenado en algunos datos adecuados.

La primera consistía en conseguir la máquina para copiar una secuencia de entrada. Secuencias binarias azar fueron presentados y el objetivo de que la máquina fue entrenado para producir era sólo la secuencia de nuevo. Esto suena trivial, pero hay que tener en cuenta que las secuencias fueron variables en longitud y cuando se prueba la máquina no se habrían visto las secuencias de prueba. En otras palabras, para llevar a cabo, así que tuvo que aprender un algoritmo que tenía para almacenar y reproducir cualquier secuencia que se presenta a la misma.

Los resultados son muy convincentes. La máquina de Turing neural aprendidas compara muy rápidamente a una red LSTM estándar que normalmente se utiliza en este tipo de tarea:

ntmsequence

Observe que dos versiones de la máquina Turinig neural fueron juzgados; uno con un LSTM como su controlador y una con una red feedforward estándar. Se puede ver en las curvas de error que el tanto logrado resultados que son de una naturaleza diferente a la LSTM por su cuenta.

Cuando se examinó la estructura aprendido de la máquina se descubrió que la secuencia de operaciones correspondió a la algoritmo:

inicializar: mover la cabeza para empezar ubicación
mientras delimitador de entrada que no se ve hacer
recibir vector de entrada
de entrada a la ubicación cabezal de escritura
ubicación cabeza de la subasta por 1
extremo mientras
cabeza volver a empezar ubicación
mientras que la verdadera do
leer vector de salida de ubicación cabeza
emitir salida
ubicación cabeza de la subasta por 1
extremo mientras

Citando el documento:

"Esto es esencialmente cómo un programador humano sería realizar la misma tarea en un lenguaje de programación de bajo nivel. En términos de estructuras de datos, podríamos decir que la MNT ha aprendido a crear y iterar a través de las matrices."

La siguiente tarea era aprender a copiar secuencias de un determinado número de veces. El algoritmo que tenía que aprender era esencialmente la anterior dentro de un bucle. Esto se logra a la perfección, pero con más formación. Siguiente aprendió una tarea que requería para llevar a cabo el recuerdo asociado y luego una que requiere el aprendizaje de un modelo de n-gramas.

La tarea final es quizás la más impresionante - aprender a ordenar los datos.

El NTM fue entrenado en un conjunto de datos que consistía en un vector binario con una calificación de escalar prioridad. El objetivo era los mismos vectores ordenados en orden de acuerdo con el grado de prioridad. El NTM aprendió a hacerlo usando cualquier tipo de controlador, pero la tradicional LSTM realmente no manejarlo:

ntmsort

¿Qué algoritmo que se aprendió?


Los investigadores esperan que el NTM inventaría una pila binaria especie, pero en realidad parecían haber inventado una tabla hash. Los vectores se almacenan en posiciones de memoria controladas por la prioridad y luego leen en orden de prioridad para dar una lista ordenada.

¿Qué significa todo esto para la IA?


Tenemos una nueva arquitectura de red neuronal que parece ser capaz de resolver problemas de una manera que puede ser interpretado como la creación de un algoritmo. La conexión con una máquina de Turing, probablemente no es importante y no hay que leer mucho en ella. El NTM es quizás mejor considerado como una arquitectura que combina con éxito una red de procesamiento con una memoria de tal manera que ambos pueden ser entrenados.

Si esto realmente funciona, sería digno de ver lo que hace que los problemas difíciles de la actualidad - robot bípedo, la comprensión del lenguaje y la contención de plasma, por ejemplo.



Ver estos enlaces: 


Attempt at implementing system described in "Neural Turing Machines." by Graves, Alex, Greg Wayne, and Ivo Danihelka. (http://arxiv.org/abs/1410.5401)
https://blog.wtf.sg/category/neural-turing-machines/
https://github.com/shawntan/neural-turing-machines
http://arxiv.org/pdf/1410.5401v2.pdf

Puedes COMPARTIR esta entrada en tus redes sociales: Twitter; Facebook; Google+
Con solo presionar un botón. ¡gracias por compartir!
 
Regístrese y participe en mi blog como escritor invitado: ¡Anímese sus inquietudes cuentan en este blog!  
 

No hay comentarios:

Publicar un comentario en la entrada