Está en la página 1de 94

Redes Recurrentes

MÓDULO 4

2
Contexto
RNNs

4
Sinónimos
• Redes Neuronales Recurrentes (RNNs)

• Redes Neuronales Recursivas


• Familia general; piensa en grafos en lugar de cadenas

• Tipos:
• Long Short Term Memory (LSTMs)
• Gated Recurrent Units (GRUs)
• …

• Algoritmos
• BackProp Through Time (BPTT)
• BackProp Through Structure (BPTS)

5
¿Qué pasa con las NNs?
• Problema 1: no se pueden modelar secuencias
• Entradas y salidas de tamaño fijo
• Sin estructura temporal

• Problema 2: procesamiento de alimentación hacia adelante pura


• Sin "memoria", sin comentarios

6
Secuencias están en todo lado

7
Incluso cuando no se espere una secuencia ...

8
Incluso cuando no se espere una secuencia ...

• Orden de entrada
= secuencia

9
¿Por qué modelar secuencias?

10
¿Por qué modelar secuencias?

11
¿Cómo modelar secuencias?
• Sin entrada

12
¿Cómo modelar secuencias?
• Con entradas

13
¿Cómo modelar secuencias?
• Con entradas y salidas

14
¿Cómo modelar secuencias?
• Con redes neuronales

15
¿Cómo modelar secuencias?

Entrada: secuencia
Entrada: secuencia
Entrada: no secuencia Entrada: no secuencia Salida: secuencia
Salida: no secuencia
Salida: no secuencia Salida: secuencia Ej.: traducción automática,
Ej.: clasificación de
Ej.: clasificación Ej.: Im2Caption subtítulos de video, respuesta a
oraciones, respuesta a
"estándar" /problemas de preguntas abiertas, respuesta a
preguntas de opción múltiple
regresión preguntas de video

16
Las cosas pueden volverse arbitrariamente complejas

17
Ideas Claves
• Parámetro compartido + desenrollado
• Mantiene el número de parámetros bajo control
• ¡Permite longitudes de secuencia arbitrarias!

• "Profundidad"
• Medido en el sentido habitual de capas
• Pasos de tiempo no desenrollados

• Aprendizaje
• Es complicado incluso para modelos "poco profundos" debido a que se
desenrolla
18
RNN
Estructura de la Red Neuronal
Las redes neuronales estándar son DAG (grafos acíclicos dirigidos). Eso significa
que tienen un orden topológico.
• El ordenamiento topológico se utiliza para la propagación de la activación y
para la gradiente back-propagation.

Conv Conv
3x3
ReLU
3x3
+

• Procesan una instancia de entrada a la vez.

20
Redes Neuronales Recurrentes (RNNs)
● Las redes neuronales introducen ciclos y una noción de tiempo.

Retraso de un paso

● Ellas están diseñadas para procesar secuencias de datos x1,x2,...,xn y puede


producir secuencias de salidas y1,y2,...,ym.

21
Desenrollando RNNs
RNNs se puede desenrollar a través de múltiples pasos de tiempo.

Retraso de un paso
Esto produce un DAG que soporta
backpropagation.

Pero su tamaño depende de la


longitud de la secuencia de entrada.
22
Desenrollando RNNs
Usualmente dibujadas como:

23
Estructura RNN
A menudo, las capas se apilan verticalmente (deep RNN):

Mismos parámetros
en este nivel


Abstracción
- características
de alto nivel Mismos parámetros
en este nivel

Tiempo 24
Estructura RNN
Backprop funciona:

Activaciones
Abstracción
- características
de alto nivel

Tiempo 25
Estructura RNN
Backprop funciona:

Activaciones
Abstracción
- características
de alto nivel

Tiempo 26
Estructura RNN
Backprop funciona:

Activaciones
Abstracción
- características
de alto nivel

Tiempo 27
Estructura RNN
Backprop funciona:

Activaciones
Abstracción
- características
de alto nivel

Tiempo 28
Estructura RNN
Backprop funciona:

Activaciones
Abstracción
- características
de alto nivel

Tiempo 29
Estructura RNN
Backprop funciona:

Activaciones
Abstracción
- características
de alto nivel

Tiempo 30
Estructura RNN
Backprop funciona:

Activaciones
Abstracción
- características
de alto nivel

Tiempo 31
Estructura RNN
Backprop funciona:

Gradientes
Abstracción
- características
de alto nivel

Tiempo 32
Estructura RNN
Backprop funciona:

Gradientes
Abstracción
- características
de alto nivel

Tiempo 33
Estructura RNN
Backprop funciona:

Gradientes
Abstracción
- características
de alto nivel

Tiempo 34
Estructura RNN
Backprop funciona:

Gradientes
Abstracción
- características
de alto nivel

Tiempo 35
Estructura RNN
Backprop funciona:

Gradientes
Abstracción
- características
de alto nivel

Tiempo 36
Estructura RNN
Backprop funciona:

Gradientes
Abstracción
- características
de alto nivel

Tiempo 37
Estructura RNN
Backprop funciona:

Gradientes
Abstracción
- características
de alto nivel

Tiempo 38
1er estado oculto: puramente por
los datos (capa de entrada)
2do estado oculto: mezcla del
primer estado oculto y los datos
observados en el segundo período
de tiempo.
3er estado oculto: mezcla del
primero y el segundo, además de
datos observados en 3er período
de tiempo.
4to estado oculto: contiene parte
de la información de lo que
sucedió en todos los períodos de
tiempo.

39
Es importante señalar que, en
la práctica, la RNN elige qué
almacenar y qué olvidar. En el
segundo y tercer período de
tiempo, la RNN usó la mitad de
su estado oculto para
almacenar lo observado en
esos momentos. En el cuarto
período, consideró que solo
valía la pena almacenar una
pequeña parte de la
información capturada,
utilizando solo una cuarta
parte de su estado oculto para
eso.

40
RNN
Las redes recurrentes ofrecen mucha flexibilidad:

Redes Neuronales Vanilla


41
RNN
Las redes recurrentes ofrecen mucha flexibilidad:

ej. Subtítulos de imágenes


imagen -> secuencia de palabras
42
RNN
Las redes recurrentes ofrecen mucha flexibilidad:

ej. Clasificación de sentimiento


secuencia de palabras -> sentimiento
43
RNN
Las redes recurrentes ofrecen mucha flexibilidad:

ej. Traducción Automática


Secuencia de palabras -> secuen
de palabras 44
RNN
Las redes recurrentes ofrecen mucha flexibilidad:

Ej. Clasificación de video a


nivel de frames
45
Red Neuronal Recurrente

RNN

46
Red Neuronal Recurrente
Por lo general, quiere
y predecir un vector en algún
momento.

RNN

47
Red Neuronal Recurrente

Podemos procesar una secuencia de vectores x aplicando


una fórmula de recurrencia en cada paso de tiempo: y

RNN
nuevo estado estado vector de entrada
anterior en algún paso de
alguna función con tiempo
x
parámetros W
48
Red Neuronal Recurrente

Podemos procesar una secuencia de vectores x aplicando


una fórmula de recurrencia en cada paso de tiempo: y

RNN

Aviso: la misma función y el mismo conjunto de


parámetros se utilizan en cada paso de tiempo.
x

49
Red Neuronal Recurrente
Ecuaciones RNR en una forma desenrollada en el tiempo: 1RNN con una capa oculta,
procesando cuatro períodos de tiempo y realizando una predicción de variable continua
(problema de regresión) sólo después de observar los 4 períodos (muchos a un caso)

Luego, la gradiente se puede


calcular a partir de la función de
costo yendo hacia atrás.

50
Red Neuronal Recurrente

51
Red Neuronal Recurrente (Vanilla)
El estado consta de una capa "oculta" h:

RNN

52
Ejemplo de modelo de lenguaje a nivel de
caracter

y
Vocabulario:
[h,e,l,o]
RNN
Ejemplo de secuencia
de entrenamiento: x
“hello”

53
Ejemplo de modelo de lenguaje a nivel de
caracter

Vocabulario:
[h,e,l,o]

Ejemplo de secuencia
de entrenamiento:
“hello”

54
Ejemplo de modelo de lenguaje a nivel de
caracter

Vocabulario:
[h,e,l,o]

Ejemplo de secuencia
de entrenamiento:
“hello”

55
Ejemplo de modelo de lenguaje a nivel de
caracter

Vocabulario:
[h,e,l,o]

Ejemplo de secuencia
de entrenamiento:
“hello”

56
Subtítulos de imágenes
• Explain Images with Multimodal Recurrent Neural Networks, Mao et al.
• Deep Visual-Semantic Alignments for Generating Image Descriptions, Karpathy and Fei-Fei
• Show and Tell: A Neural Image Caption Generator, Vinyals et al.
• Long-term Recurrent Convolutional Networks for Visual Recognition and Description,
Donahue et al.
• Learning a Recurrent Visual Representation for Image Caption Generation, Chen and
Zitnick

57
Subtítulos de imágenes
Red Neuronal Recurrente

Red Neuronal Convolucional


58
Subtítulos de imágenes
Imagen de prueba

59
Subtítulos de imágenes
Imagen de prueba

60
Subtítulos de imágenes
Imagen de prueba

X 61
Subtítulos de imágenes
Imagen de prueba

x0
<START>

<START>
62
Subtítulos de imágenes
Imagen de prueba

y0
antes:
h = tanh(Wxh * x + Whh * h)
Wih
h0
ahora:
h = tanh(Wxh * x + Whh * h + Wih * v)
x0
<START>

v <START>
63
Subtítulos de imágenes
Imagen de prueba

y0

muestra

h0

x0
straw
<START>

v <START>
64
Subtítulos de imágenes
Imagen de prueba

y0 y1

h0 h1

x0
straw
<START>

v <START>
65
Subtítulos de imágenes
Imagen de prueba

y0 y1

muestra

h0 h1

x0
straw hat
<START>

v <START>
66
Subtítulos de imágenes
Imagen de prueba

y0 y1 y2

h0 h1 h2

x0
straw hat
<START>

v <START>
67
Subtítulos de imágenes
Imagen de prueba

y0 y1 y2
muestra
<END> token
h0 h1 h2 => finish.

x0
straw hat
<START>

v <START>
68
Conjuntos de datos de oraciones de imagen

Microsoft COCO
[Tsung-Yi Lin et al. 2014]
mscoco.org

actualmente:
~120K imágenes
~5 oraciones en cada

69
Conjuntos de datos de oraciones de imagen

70
Conjuntos de datos de oraciones de imagen

71
Vista previa de arquitecturas más sofisticadas
RNN atiende espacialmente a diferentes partes de las imágenes mientras
genera cada palabra de la oración:

Attend and Tell, Xu et al., 2015


72
Problema con RNN y
LSTMs
RNN
• Diagrama de bloques básico

74
RNN

75
Problema clave
• Aprender las dependencias a largo plazo es difícil

76
Problema clave
• Aprender las dependencias a largo plazo es difícil

Hochreiter Yoshua Bengio

77
Solución: LSTM: Long Short-Term Memory
• ¿Qué tal si codificamos explícitamente la memoria?

Redes de gran memoria de corto


plazo

78
Solución: LSTM: Long Short-Term Memory

79
Solución: LSTM: Long Short-Term Memory
• ¿Qué tal si codificamos explícitamente la memoria?

Redes de gran memoria de corto


plazo

80
Solución: LSTM: Long Short-Term Memory

Cada fila lleva un vector entero, desde la salida de un nodo hasta las entradas de otros. Los
círculos rosados representan operaciones puntuales, como sumar vectores, mientras que los
recuadros amarillos son capas de redes neuronales aprendidas. Las líneas combinadas indican
concatenación, mientras que una línea bifurcada indica que su contenido se está copiando y las
copias van a diferentes ubicaciones.

81
Intuición de LSTMs: memoria
• Estado / memoria de la célula

82
Intuición de LSTMs: memoria

83
Intuición de LSTMs: Puertas de Olvido
• ¿Debemos seguir recordando este “bit” de información o no?

El primer paso en nuestro LSTM es decidir qué


información vamos a descartar del estado de la celda.
Esta decisión la toma una capa sigmoidea llamada "capa
de puerta de olvido".

84
Intuición de LSTMs: Puertas de Entrada
• ¿Debemos actualizar este "bit" de información o no?
• Si es así, ¿con qué?

El siguiente paso es decidir qué nueva información almacenar en el estado de la celda.


Esto tiene dos partes. Primero, una capa sigmoidea llamada "capa de entrada" decide
qué valores se actualizarán. Luego, una capa tanh crea un vector de nuevos valores
candidatos, que podrían agregarse al estado
85
Intuición de LSTMs: Actualización de memoria

• Olvida eso + memoriza esto

Combinamos estos dos (olvidar y


agregar) para crear una actualización del
estado.

86
Intuición de LSTMs: Puerta de Salida
• ¿Deberíamos enviar este "bit" de información a capas "más profundas"?

Finalmente, debemos decidir qué vamos a


producir. Esta salida se basará en el estado de
nuestra celda, pero será una versión filtrada.

87
LSTM: Long Short-Term Memory
Una célula bastante sofisticada

88
Variantes de LSTMs
Variante de LSTM 1: Peephole Connections
• Deje que las puertas vean el estado/memoria de la celda

90
Variante de LSTM 2: Coupled Gates
• Solo memoriza lo nuevo si olvida lo viejo

91
Variante de LSTM 3: Gated Recurrent Units
• Cambios:
• Sin memoria explícita; memoria = salida oculta
• Z = memorizar lo nuevo y olvidar lo viejo

92
Últimos Comentarios
● Las RNN permiten mucha flexibilidad en el diseño de la arquitectura.
● Los RNN vanilla son simples pero no funcionan muy bien
● Común para usar LSTM o GRU: sus interacciones aditivas mejoran el
flujo de gradiente

● Las arquitecturas mejores / más simples son un tema candente de la


investigación actual
● Se necesita una mejor comprensión (tanto teórica como empírica).

93
FIN

También podría gustarte