Está en la página 1de 6

[REDES NEURONALES RECURRENTES] Dr.

Erik Zamora

Enfocado: a enseñar los principios básicos 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 o Redes de Memoria


 ¿Qué es? o Clockwork RNN
 ¿Para qué sirve?  Redes con LSTM
 Arquitecturas generales o Arquitectura
o Bidireccionales o Variantes
o Bidireccionales profundas  Oportunidades de Investigación
 Aprendizaje supervisado (problema del gradiente)  Librerías
 Mejores Redes Recurrentes  Tarea
o LSTM
o Maquinas Neuronales de Turing

¿Qué son las RNN?


Redes Neuronales Recurrentes: son redes neuronales que aplican la
misma operación 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 parámetros 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
también, 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 información acerca de la historia de todas las entradas pasadas. En general, las
redes recurrentes son más 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.

1
“La Tecnología y la Ciencia en beneficio de los Mexicanos”
“Por nuestra Independencia Intelectual”
[REDES NEURONALES RECURRENTES] Dr. Erik Zamora

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 gramática y semántica de una sentencia escrita.
o Generar texto escrito con el estilo del texto de entrenamiento:
 Aprende la sintaxis, por ejemplo, abrir y cerrar paréntesis,
puntos, comas, etc.
 Puede generar código en Linux, texto semejante a Wikipedia
y Shakespeare, y hasta código para latex (obiviamente con
algunos errores).
 Traducción 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 imágenes (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 método del
descenso por gradiente (Maquinas neuronales de Turing).

 Demo: Generación texto manuscrito usando RNN +(Graves 2013)


http://www.cs.toronto.edu/~graves/handwriting.cgi

 Aprendiendo a ejecutar programas sencillos (Zaremban & Sutskever 2014)


 Generación de imágenes (Gregor et al. 2015) Puede usarse para completar los objetos
ocluidos, para crear mejores planes de navegación robótica, etc.
 Predicción de video (Alex Graves et al. 2015) Video https://youtu.be/-
yX1SYeDHbg?t=49m29s
 Descripción de imágenes con atención visual (Kelvin Xu et al. 2015)
http://kelvinxu.github.io/projects/capgen.html

2
“La Tecnología y la Ciencia en beneficio de los Mexicanos”
“Por nuestra Independencia Intelectual”
[REDES NEURONALES RECURRENTES] Dr. Erik Zamora

Estructuras Generales
Bidireccionales: un carácter o palabra se puede predecir mejor si conoce el texto
anterior y posterior al carácter, 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 teoría
mayor capacidad para aprender programas y funciones más complejas, pero también son más
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 también
los errores pasados. Esto provoca que la dificultad para memorizar dependencias a largo tiempo. Por eso se han
desarrollado arquitecturas y métodos de aprendizaje que evitan estos problemas como LSTM, maquinas neuronales de
Turing y redes de memoria.

Hay una gama de variantes del método del descenso por gradiente estocástico para entrenar las RNN: (Nesterov)
Momentum Method, AdaGrad, AdaDelta and RMSprop.

Explicación 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 límite) 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 fáciles 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 máquina neuronal de Turing es una RNN que incorpora una memoria
direccionable y puede aprender programas sencillos a partir de datos de entrenamiento
usando el método 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
desempeño para los problemas de contestar preguntas. Por ejemplo, se les
puede presentar un texto de cierto número de sentencias y la red puede
contestar preguntas 3
“La Tecnología y la Ciencia en beneficio de los Mexicanos”
“Por nuestra Independencia Intelectual”
[REDES NEURONALES RECURRENTES] Dr. Erik Zamora

relacionadas con el texto (Sukhbaatar et al. 2015)

Clockwork RNN: la capa oculta es separada en módulos y cada módulo tiene su


propia frecuencia reloj a la cual computa sus operaciones. Aunque esto para
aumentar la complejidad de la red, en realidad, reduce el número parámetros a
entrenar y acelera la evaluación de red. Ha mostrado un mejor desempeño que
las RNN convencionales y las redes LSTM para la generación de audio y la
clasificación de palabras habladas. (Koutník, 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 también están
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 están controladas por la misma
compuerta.
3. Unidad Recurrente Cerrada (GRU, Gated Recurrent Unit
Cho et al. 2014). Hace una combinación 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 diseñadas 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 dimensión
N. Los pesos se pueden compartir en las LSTM
del mismo bloque. Con ellas se han logrado
alcanzar resultados cercanos al estado del arte
4
“La Tecnología y la Ciencia en beneficio de los Mexicanos”
“Por nuestra Independencia Intelectual”
[REDES NEURONALES RECURRENTES] Dr. Erik Zamora

en MNIST y superarlo en la traducción de chino a inglés.

¿Cuáles de estas variantes son mejores?


Hay dos artículos que tratan de contestar esta pregunta:
 (Greff, et al. “LSTM: A Search Space Odyssey”, 2015) Compara 8 distintas variantes de la
LSTM y su versión estándar en tres tareas: reconocimiento de voz, de escritura
manuscrita y modelado de música polifónica. Concluye que ninguna variante supera a la
LSTM estándar de manera significativa. Además, descubre varias guias para la
implementación de la LSTM
o Algunas simplificaciones no dañan el desempeño 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 desempeño de la red.
o La función de activación de salida es necesaria si el estado de la célula es no
acotado.
o El uso de momento en el aprendizaje no fue importante.
o El tamaño de la red y el índice de aprendizaje son los hiperparametros más
críticos, pero pueden ser ajustados de manera independiente. Recomienda
ajustar el índice primero con una red pequeña y luego escalar en tamaño.
 (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. Además, muestra que añadiendo un sesgo de
1 a la compuerta de olvido en la LSTM se iguala el desempeño de LSTM con GRU. Así que recomienda hacerlo en
cada aplicación, ya que es una estrategia que funciona consistentemente y cuesta muy poco implementarlo.
También el uso del dropout mejora el desempeño de la LSTM, a veces superando a la GRU.
Recomendación: leer estos artículos para comprender mejor los resultados.

Librerías
 Caffe (C++ con interfaces para Matlab y Python) Es la más 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/ Jürgen 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/

5
“La Tecnología y la Ciencia en beneficio de los Mexicanos”
“Por nuestra Independencia Intelectual”
[REDES NEURONALES RECURRENTES] Dr. Erik Zamora

T4: Aplicaciones de las Redes Neuronales Recurrentes


Fecha de Entrega: V011215

Escoger 3 artículos 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 resúmenes al correo ezamora1981@gmail.com antes o durante de la fecha de
entrega.

6
“La Tecnología y la Ciencia en beneficio de los Mexicanos”
“Por nuestra Independencia Intelectual”

También podría gustarte