Redes Neuronales Recurrentes

Embed Size (px)

DESCRIPTION

Un panorama de las redes neuronales recurrentes.

Citation preview

  • [REDES NEURONALES RECURRENTES] Dr. Erik Zamora

    1 La Tecnologa y la Ciencia en beneficio de los Mexicanos

    Por nuestra Independencia Intelectual

    Enfocado: a ensear los principios bsicos y el estado del arte

    Basado en:

    Denny Britz, RNN Tutorial http://ow.ly/TvgkT

    Adrej Karpathy, The Unreasonable Effectiveness of RNN (LTSM) http://ow.ly/Tvh89

    Nando de Freitas, Deep Learning Lecture 12: Recurrent Neural Nets and LSTMs http://ow.ly/TDIST

    Christopher Olah, Understanding LSTM Networks http://ow.ly/TvgCj

    Erich Elsen, Optimizing RNN performance http://ow.ly/Tvhs1

    Eje Conceptual

    Qu es?

    Para qu sirve?

    Arquitecturas generales

    o Bidireccionales

    o Bidireccionales profundas

    Aprendizaje supervisado (problema del gradiente)

    Mejores Redes Recurrentes

    o LSTM

    o Maquinas Neuronales de Turing

    o Redes de Memoria

    o Clockwork RNN

    Redes con LSTM

    o Arquitectura

    o Variantes

    Oportunidades de Investigacin

    Libreras

    Tarea

    Qu son las RNN? Redes Neuronales Recurrentes: son redes neuronales que aplican la misma operacin a cada elemento de una secuencia de datos de entrada (texto, voz, video, etc) por eso, se llaman recurrentes; y cuya salida depende tanto de los datos de entrada presentes como pasados incorporando un estado variante en el tiempo. Se caracteriza por la capacidad de memoria, y en principio, la capacidad de aproximar programas arbitrarios porque una RNN es Turing-completa (Siegelmman & Sontag 1995, On computational power of neural networks) (en lugar de solo aproximar de funciones arbitrarias en el caso de redes CNN, MLP, etc).

    = (1 + ) = ()

    W, U, V son los parmetros entrenables, s es el estado oculto, x es la entrada y o es la salida.

    Para qu sirve? Para tareas que requieren memoria, donde el estado interno de la red se mezcla con la entrada para predecir

    la salida (leer requiere recordar las palabras pasadas, clasificar eventos

    tambin, a veces para entender una escena es importante conocer como

    evoluciono en el pasado). Para tareas que involucran datos secuenciales

    como el lenguaje, la voz y el video, frecuentemente es mejor usar redes recurrentes. Ellas

    procesan los datos uno a la vez, manteniendo en sus capas ocultas el vector de estado que

    contiene informacin acerca de la historia de todas las entradas pasadas. En general, las

    redes recurrentes son ms poderosas computacionalmente (Turing-Completo) que las

    redes feedforward. Cualquier problema resuelto por las redes MLP o CNN puede ser

    transcrito para ser resuelto por una red recurrente, es decir, poner los datos en forma

    secuencial.

  • [REDES NEURONALES RECURRENTES] Dr. Erik Zamora

    2 La Tecnologa y la Ciencia en beneficio de los Mexicanos

    Por nuestra Independencia Intelectual

    Aplicaciones.

    Crear modelos de lenguaje (Hinton et al.. 2011, Generating Text with Recurrent Neural Networks ) que sirven para

    o Medir que tan correcta es la gramtica y semntica de una sentencia escrita. o Generar texto escrito con el estilo del texto de entrenamiento:

    Aprende la sintaxis, por ejemplo, abrir y cerrar parntesis, puntos, comas, etc.

    Puede generar cdigo en Linux, texto semejante a Wikipedia y Shakespeare, y hasta cdigo para latex (obiviamente con algunos errores).

    Traduccin de Idiomas. Convierte una secuencia de palabras en otra secuencia de palabras pero dado en otro idioma. (Sutskever et al. 2014 Sequence to Sequence Learning with Neural Networks).

    Reconocimiento de voz (Graves et al. 2014, Towards End-to-End Speech Recognition)

    Generador de descripciones verbales de imgenes (Karpathy & Fei 2015) http://cs.stanford.edu/people/karpathy/deepimagesent/

    Aproximacion de programas arbitrarios. Puede aprender programas sencillos a partir de datos de entrenamiento usando el mtodo del descenso por gradiente (Maquinas neuronales de Turing).

    Demo: Generacin texto manuscrito usando RNN +(Graves 2013) http://www.cs.toronto.edu/~graves/handwriting.cgi

    Aprendiendo a ejecutar programas sencillos (Zaremban & Sutskever 2014)

    Generacin de imgenes (Gregor et al. 2015) Puede usarse para completar los objetos ocluidos, para crear mejores planes de navegacin robtica, etc.

    Prediccin de video (Alex Graves et al. 2015) Video https://youtu.be/-yX1SYeDHbg?t=49m29s

    Descripcin de imgenes con atencin visual (Kelvin Xu et al. 2015) http://kelvinxu.github.io/projects/capgen.html

  • [REDES NEURONALES RECURRENTES] Dr. Erik Zamora

    3 La Tecnologa y la Ciencia en beneficio de los Mexicanos

    Por nuestra Independencia Intelectual

    Estructuras Generales Bidireccionales: un carcter o palabra se puede predecir mejor si conoce el texto

    anterior y posterior al carcter, es decir, si el texto se ve como una secuencia entonces

    el estado de una RNN debe depender tanto de las entradas pasadas como de la futuras.

    Motivado por esto, se han creado RNN bidireccionales que son dos RNN que procesan la

    secuencia en sentidos opuestos.

    Bidireccionales Multicapa: estas incorporan varias capas de RNN por lo que presentan en teora

    mayor capacidad para aprender programas y funciones ms complejas, pero tambin son ms

    complicadas de entrenar.

    Aprendizaje Supervisado Las redes RNN convencionales presentan problemas en su entrenamiento porque los gradientes retropropagados tienden a crecer o desvanecer con el tiempo debido a que el gradiente depende no solo del error presente sino tambin los errores pasados. Esto provoca que la dificultad para memorizar dependencias a largo tiempo. Por eso se han desarrollado arquitecturas y mtodos de aprendizaje que evitan estos problemas como LSTM, maquinas neuronales de Turing y redes de memoria. Hay una gama de variantes del mtodo del descenso por gradiente estocstico para entrenar las RNN: (Nesterov) Momentum Method, AdaGrad, AdaDelta and RMSprop. Explicacin del problemas de gradiente[Ver hoja manuscrita]

    Mejores Redes Recurrentes (para memorizar dependencias a largo

    plazo)

    Redes de gran memoria de corto plazo (LSTM): las redes recurrentes convencionales no pueden memorizar dependencias de largo plazo debido a que los gradientes retropropagados se desvanecen (o crecen sin lmite) con el tiempo. Las redes LSTM incorporan una memoria explicita que puede ser actualizada y borrada lo que les permite aprender dependencias de largo plazo en los datos. Actualmente 2015, son muy populares porque son fciles de entrenar (Vinyals et al. 2015) Maquinas Neuronales de Turing: En principio, una RNN es Turing completa, sin embargo es muy complicado hallar los pesos adecuados para simular cualquier programa de Turing. Para facilitar esto, la mquina neuronal de Turing es una RNN que incorpora una memoria direccionable y puede aprender programas sencillos a partir de datos de entrenamiento usando el mtodo del descenso por gradiente. Algunos programas que aprende es copiar datos y ordenar los, a veces puede generalizar sus programas a muchos datos entrenando con pocos datos (Graves et al. 2014) Redes de Memoria: tienen componentes de inferencia y de memoria de largo plazo que deben aprender a usar para razonar. Han demostrado excelente desempeo para los problemas de contestar preguntas. Por ejemplo, se les puede presentar un texto de cierto nmero de sentencias y la red puede contestar preguntas

  • [REDES NEURONALES RECURRENTES] Dr. Erik Zamora

    4 La Tecnologa y la Ciencia en beneficio de los Mexicanos

    Por nuestra Independencia Intelectual

    relacionadas con el texto (Sukhbaatar et al. 2015) Clockwork RNN: la capa oculta es separada en mdulos y cada mdulo tiene su propia frecuencia reloj a la cual computa sus operaciones. Aunque esto para aumentar la complejidad de la red, en realidad, reduce el nmero parmetros a entrenar y acelera la evaluacin de red. Ha mostrado un mejor desempeo que las RNN convencionales y las redes LSTM para la generacin de audio y la clasificacin de palabras habladas. (Koutnk, et al, A clockwork RNN, 2014)

    Redes con LTSM Fueron introducidas por Hochreiter & Schmidbuber en 1997 (Long Short-Term Memory) [Ver hojas manuscritas] RNN Convencional

    = (1 +) LSTM

    = ( [1, ] + ) = ( [1, ] + )

    = ( [1, ] + ) = 1 +

    = ( [1, ] + ) = ()

    Variantes de LSTM 1. Conexiones Peephole . Las compuertas tambin estn

    controladas por el estado, algunos autores hacen esto con todas las compuertas, otros solo con algunas (Gers & Schmidhuler 2000)..

    2. El olvido y la escritura estn controladas por la misma compuerta.

    3. Unidad Recurrente Cerrada (GRU, Gated Recurrent Unit Cho et al. 2014). Hace una combinacin ponderada entre el estado pasado y el nuevo estado relacionado a la entrada.

    4. RN Cerrada Profunda (Depth-Gated RN) (Yao, et al. 2015) 5. Grid LSTM (Kalchbrenner et al. 2015 Deepmind). Son

    bloques LSTM diseadas especialmente para colocarlas en arreglos multidimensionales. Cada bloque y arreglo de bloques de N dimensiones, tiene N lados de entradas y N lados de salida, por lo que lo hace especialmente adaptado para procesar datos secuenciales en dimensin N. Los pesos se pueden compartir en las LSTM del mismo bloque. Con ellas se han logrado alcanzar resultados cercanos al estado del arte

  • [REDES NEURONALES RECURRENTES] Dr. Erik Zamora

    5 La Tecnologa y la Ciencia en beneficio de los Mexicanos

    Por nuestra Independencia Intelectual

    en MNIST y superarlo en la traduccin de chino a ingls. Cules de estas variantes son mejores? Hay dos artculos que tratan de contestar esta pregunta:

    (Greff, et al. LSTM: A Search Space Odyssey, 2015) Compara 8 distintas variantes de la LSTM y su versin estndar en tres tareas: reconocimiento de voz, de escritura manuscrita y modelado de msica polifnica. Concluye que ninguna variante supera a la LSTM estndar de manera significativa. Adems, descubre varias guias para la implementacin de la LSTM

    o Algunas simplificaciones no daan el desempeo significativamente, por ejemplo: el acoplamiento de las compuertas de entrada y olvido, o quitar las conexiones peephole(mirilla).

    o El uso de compuerta de olvido mejora consistentemente el desempeo de la red. o La funcin de activacin de salida es necesaria si el estado de la clula es no

    acotado. o El uso de momento en el aprendizaje no fue importante. o El tamao de la red y el ndice de aprendizaje son los hiperparametros ms

    crticos, pero pueden ser ajustados de manera independiente. Recomienda ajustar el ndice primero con una red pequea y luego escalar en tamao.

    (Jozefowics, et al. An Empirical exploration of RN arquitecture 2015) Comprando entre miles de arquitecturas de RNN, busca una que sea mejor que la red LSTM consistentemente en distintas tareas, sin embargo, no la encuentra. Concluye, que si hay alguna, no es trivial encontrarla. Adems, muestra que aadiendo un sesgo de 1 a la compuerta de olvido en la LSTM se iguala el desempeo de LSTM con GRU. As que recomienda hacerlo en cada aplicacin, ya que es una estrategia que funciona consistentemente y cuesta muy poco implementarlo. Tambin el uso del dropout mejora el desempeo de la LSTM, a veces superando a la GRU.

    Recomendacin: leer estos artculos para comprender mejor los resultados.

    Libreras Caffe (C++ con interfaces para Matlab y Python) Es la ms popular http://caffe.berkeleyvision.org/

    Theano (Python) http://deeplearning.net/software/theano/

    Torch (C y Lua) usado por Facebook Research, Google Deepmind y Twitter http://torch.ch/docs/cvpr15.html

    PyBrain http://www.pybrain.org/ Jrgen Schmidhuber (LSTM, RNN)

    Deep Learning Libraries by Language http://www.teglor.com/b/deep-learning-libraries-language-cm569/

    Quora - Is there a recurrent neural networks toolkit? https://www.quora.com/Is-there-a-recurrent-neural-networks-toolkit

    Reddit - What is the simplest LSTM Library to Use?

    https://www.reddit.com/r/MachineLearning/comments/2zxfma/what_is_the_simplest_lstm_library_to_use/

  • [REDES NEURONALES RECURRENTES] Dr. Erik Zamora

    6 La Tecnologa y la Ciencia en beneficio de los Mexicanos

    Por nuestra Independencia Intelectual

    T4: Aplicaciones de las Redes Neuronales Recurrentes

    Fecha de Entrega: V011215

    Escoger 3 artculos que le interesen, leerlos y haga un resumen escrito de cada uno:

    1. Weston, et al., Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks, 2015.

    2. Vinyals, et al., Show and Tell: A Neural Image Caption Generator, 2015.

    3. Graves, Generating Sequences with Recurrent Neural Networks, 2013.

    4. Zaremba & Sustskever, Learning to execute, 2015.

    5. Graves, et al., Neural Turing Machine, 2014.

    6. Graves & Jaitly, Towards End-to-End Speech Recognition with RNN, 2014.

    7. Karpathy & Fei, Deep Visual-Semantic Alignments for Generating Image Description, 2015.

    8. Gregor, et al., Draw: a RNN for image generation, 2015.

    9. Kelvin Xu, et al., Show, Attend and Tell image caption with attention, 2015.

    Envi en un nico archivo PDF sus resmenes al correo [email protected] antes o durante de la fecha de

    entrega.