8 Enero, 2019.
Grupo II:
Juan Arechabala Anaya
Clara Cerrato Garrido
Carla Fernández González
David Griñán Martínez
Sergio Gutiérrez Gutiérrez
Ana Matesanz Fernández-Arias
Javier Ramos Fernández
Jorge Zapatero Sánchez
Índice general
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Redes neuronales recurrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Entrenamiento de RNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Redes neuronales Long Short-Term Memory (LSTM) . . . . . . . . . . . . . . . . . . . 11
Explicación y Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Borrado de información del estado de la red . . . . . . . . . . . . . . . . . 13
Memorizado de nueva información . . . . . . . . . . . . . . . . . . . . . . 14
Obtención de nueva salida . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Variantes de LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Gated Recurrent Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Redes basadas en Atención . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Peephole LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
LSTMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Bibliografía 29
1
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
I NTRODUCCIÓN
Las redes neuronales fueron introducidas y se democratizó su uso hace ya varios años.
Desde la sencilla modelización de una neurona en la “Linear Threshold Unit”, en 1943, por
Warren McCulloch y Walter Pitts [32] y la creación de los primeros algoritmos de entrenamien-
to y las primeras redes neuronales basadas en perceptrones, por Frank Rosenblatt en 1958
[38], hasta su primera explosión durante los siguientes años y su decaimiento posterior, entre
otros motivos, por la limitación en el tipo de problemas que podían resolver (linealmente
separables). Surge posteriormente una reactivación con el uso de funciones de activación
no lineales (como la sigmoide o la tanh) y el algoritmo de retropropagación de gradiente,
pero de nuevo hay un decaimiento en los ’90 por problemas como el de desvanecimiento de
gradiente, que limita la complejidad de la red dado que deja de aprender según aumenta su
profundidad.
Figura 1: Estructura de una neurona biológica y su modelización computacional. Obtenido de [2, 14].
A principio de siglo aparece la función de activación ReLU [27], que viene a resolver este
problema y años más tarde el aumento en la potencia de cálculo, que sigue cumpliendo la
ley de Moore, da viabilidad a la creación de redes neuronales profundas (“Deep Learning”) y
con ellas aparecen nuevas arquitecturas, como por ejemplo las redes convolucionales.
Página 2 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Otra arquitectura de red neuronal ampliamente conocida (se origina en los años 50)
es la denominada red de neuronas alimentada hacia delante. En esta red, la información
se mueve en una sola dirección, hacia adelante, desde los nodos de entrada, a través de
los nodos ocultos (en caso de que los haya) y hacia los nodos de salida. En este tipo de
arquitectura las conexiones entre los nodos no forman ciclos.
Página 3 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Basado en este tipo de red neuronal, en la década de los 90 surgieron las redes alimen-
tadas hacia delante profundas, que se caracterizan por tener más de una capa oculta. La
adición de más capas llevó a un crecimiento exponencial de los tiempos de entrenamiento,
haciendo que este tipo de red neuronal fuera poco práctico. Por eso, a principios de la década
de los 2000s se desarrollaron una serie de enfoques que permitieron entrenar a las redes
alimentadas hacia delante profundas de manera más eficiente, disminuyendo los tiempos de
entrenamiento.
Figura 5: Modelo de red de neuronas alimentada hacia delante profunda. Obtenido de [42].
Página 4 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Las arquitecturas descritas hasta este punto son especialmente efectivas en problemas
clásicos como son clasificación y regresión, pero sufren cuando se tratan problemas de
procesamiento de secuencias como pueden ser el análisis de textos o series temporales. Para
resolver esta carencia, se diseñó un nuevo tipo de arquitectura denominada red neuronal
recurrente. Este tipo de arquitectura posibilita la existencia de ciclos que permiten que la
información no solo se transmita hacia delante sino que además se realimenta.
Aunque anecdótico, un aspecto a notar con respecto a las redes de neuronas alimentadas
hacia delante es que éstas podrían ser redes sin reloj (dado que es determinista, la salida de
una neurona es siempre la misma para una configuración dada de las entradas de la red). No
obstante, una red recurrente siempre debe tener un reloj que marque los tiempos de cálculo
Página 5 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
y los tiempos de paso de las nuevas salidas a las entradas de las celdas que deben usarlas (las
salidas de cada neurona no dependen sólo de las entradas de la red, sino también del estado
interno de la red).
Con respecto a las redes de neuronas recurrentes, se va a estudiar una variante de las mis-
mas que surgió a mediados de los años 90 denominada Long Short-Term Memory (LSTM).
Este tipo de red introduce una celda especial denominada de memoria que puede guardar
estados y fijarlos u olvidarlos a largo o corto plazo en el tiempo, por lo que son útiles para,
por ejemplo, procesar un fotograma de vídeo teniendo en cuenta la información contenida
en algunos fotogramas anteriores.
Página 6 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
las neuronas de una misma capa no hay sinapsis. En base a esto, en las redes de neuronas
alimentadas hacia delante es evidente que la información solo puede moverse en un sentido:
desde la capa de entrada hasta la capa de salida, atravesando todas y cada una de las capas
intermedias una sola vez.
Dada la estructura de las redes neuronales alimentadas hacia delante, el desempeño
de las mismas es adecuado para aplicaciones en las que no se requiera que la red retenga
información de eventos pasados como ayuda para evaluar eventos futuros. Cada vector de
entrada presentado como entrenamiento para este tipo de redes es una entidad aislada del
resto y, al final de dicho periodo de prueba, la red estará lista para comenzar a identificar y
clasificar patrones, reconocer imágenes u otro tipo de tareas similares. Son apropiadas para
cualquier problema de mapeado funcional en el que queramos saber cómo una serie de
variables de entrada afectan a una variable de salida.
No obstante, cuando se trabaja con patrones dinámicos; es decir, con patrones de secuen-
cias en las que aparece el concepto de tiempo, las RNA alimentadas solo hacia adelante se
encuentran bastante limitadas ya que no permiten conexiones entre neuronas que creen bu-
cles. De esta manera, este tipo de redes no son capaces de aprender funciones que dependan
de las entradas correspondientes a instantes de tiempos anteriores (solo tienen en cuenta la
entrada que se le pasa en cada instante de tiempo, no puede recordar nada de lo que pasó en
el pasado), de tal forma que su rendimiento no es adecuado para predecir futuros valores
de una serie temporal dado sus valores pasados. Además, en el caso de las RNA alimentadas
solo hacia delante la dimensión de los datos de entrada y salida está predeterminada; sin
embargo, en muchos casos queremos realizar cálculos en una entrada de longitud variable,
como por ejemplo sumar dos números binarios no acotados que se pasan bit a bit como
entrada a la red neuronal, lo que a su vez produce los bits del resultado uno tras otro. En
este caso, para llevar a cabo la suma es necesario almacenar el acarreo con el objetivo de
reutilizarlo durante todo el proceso de cálculo.
En base a todo esto, para resolver los problemas planteados existe un tipo de arquitectura
de red neuronal que es una extensión de la red neuronal alimentada hacia delante, que se
denomina red neuronal recurrente (Recurrent Neural Network, RNN) . Una red neuronal
recurrente es una clase de red neuronal artificial donde las conexiones entre nodos forman un
grafo dirigido con bucles. Es una red cuyas neuronas envían señales de retroalimentación
entre sí, de tal forma que los cálculos que se realizan en la red se reciclan a través de ella
misma y, por lo tanto, tienen en consideración la secuencia de los datos. Los ciclos presentes
en esta topología de la red hacen posible el almacenamiento y la reutilización de las señales
durante cierto tiempo después de su producción, lo que permite añadir memoria a la red
Página 7 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
y posibilitarle aprender abstracciones más amplias de las secuencias de entrada. Este tipo
de arquitectura neuronal es apropiado para resolver problemas que implican secuencias de
datos, como es la predicción de series temporales que se comentó anteriormente, además
de que permite manejar entradas de longitud variable. Esto último ocurre debido a que
cada iteración del RNN combina una “memoria del pasado” acumulativa con la entrada más
cercana, lo que permite que datos pasados de longitud arbitraria puedan ser incorporados
como contexto en la interpretación de la entrada actual.
Figura 9: Una neurona recurrente (izquierda) y su desenrollo a través del tiempo (derecha). Obtenido
de [26].
La arquitectura básica de redes neuronales recurrentes utilizada para resolver los proble-
mas previos está compuesta por una sola neurona que recibe las entradas, produciendo una
salida y enviando esa salida de vuelta a sí misma. En cada instante de tiempo t, esta neurona
recurrente recibe las entradas x (t ) , así como su propia salida del instante de tiempo anterior,
y (t −1) . Una representación análoga de esta red recurrente básica situada a la izquierda de la
Figura 9 es aquella que se realiza contra el eje del tiempo, y esto se denomina desenrollar la
red a través del tiempo, que se puede apreciar a la derecha de la Figura 9. De esta forma, las
RNNs se pueden ver también, en el caso más básico, como una red de neuronas organizadas
en “capas” sucesivas, donde cada capa contiene una neurona, esta neurona está conectada
con una conexión dirigida (unidireccional) a la neurona en la capa sucesiva y la neurona
presente en cada capa es la misma que en las demás capas. Por lo tanto, en el caso básico una
red neuronal recurrente puede ser considerada como múltiples copias de la misma neurona,
cada una de las cuales pasa un mensaje a su sucesora.
Página 8 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Figura 10: Una capa de redes de neuronas recurrentes (izquierda) y su desenrollo a través del tiempo
(derecha). Obtenido de [26].
De forma genérica, de la misma forma que antes teníamos la misma neurona repetida
en sucesivas capas, también podemos tener una capa de neuronas recurrentes copiada en
cada una de estas capas, como se puede observar en la parte izquierda de la Figura 10, que se
desenrolla en la parte derecha de dicha figura. En cada instante de tiempo t, cada neurona
recibe tanto el vector de entrada x (t ) como el vector de salida del paso de tiempo anterior
y (t −1) . En este caso, tanto las entradas como las salidas son vectores (cuando había una sola
neurona, la salida era un escalar).
Figura 11: Celda de memoria (izquierda) y su desenrollo a través del tiempo (derecha). Obtenido de
[26].
Dado que la salida de una neurona recurrente en el instante de tiempo t es una función
Página 9 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
de todas las entradas de los instantes de tiempo anteriores, se podría decir que tiene una
forma de memoria (como se mencionaba anteriormente). Una parte de una red neuronal
que preserva algún estado a través de instantes de tiempo se llama célula de memoria (ver
Figura 11), por lo que una sola neurona recurrente o una capa de neuronas recurrentes son
ejemplos de células de memoria.
En general, el estado de una célula en el instante de tiempo t, denominado h (t ) (la “h”
significa “hidden”, que quiere decir “oculto”), es una función de algunas entradas en ese
instante de tiempo y su estado en el instante de tiempo anterior: h (t ) = f(h (t −1) , x (t ) ). Su salida
en el instante de tiempo t, denominado y (t ) , es también una función del estado anterior y de
las entradas actuales. En el caso de las células básicas que se han discutido hasta ahora, la
salida es simplemente igual al estado, pero en las células más complejas no siempre es así.
Referencias adicionales:[26][19][36][11][37][22]
Entrenamiento de RNN
Una vez desarrollada una arquitectura para una red neuronal, el siguiente paso es el
entrenamiento de la misma dado un conjunto de datos etiquetados de entrada. En el caso
de las redes neuronales estándar, se pueden utilizar algoritmos evolutivos para realizar
este entrenamiento pero el algoritmo más extendido para este entrenamiento es el back
propagation. Como indica su nombre, este algoritmo calcula el error en la capa de salida
y lo distribuye hacia atrás a través de las demás capas de la red. En el caso de las redes
recurrentes, se utiliza el mismo algoritmo de retropropagación del gradiente, pero con un
mayor número de pesos respecto a los cuales tomar derivadas, ya que esta retropropagación
no se hace siguiendo la estructura estándar de la red, sino que se efectúa sobre el diagrama
desenrollado de la red. Siguiendo este esquema de paso de información, aquellos mensajes
que tendrán más relevancia serán aquellos que se pasan de derecha a izquierda, que son los
correspondientes a las conexiones recursivas.
Esta forma de entrenar una RNN se denomina Backpropagation Through Time (BPTT).
Sin embargo, este algoritmo puede ser costoso según se incrementa el número de pasos
a realizar. Es por esto que se han realizado algunas modificaciones sobre este algoritmo,
como el Truncated BPTT, como se cuenta en [9]. En esta modificación, se propone procesar
la secuencia tomándola en cada unidad de tiempo y, periódicamente pasados un número
determinado de iteraciones (k1), realizar la retropropagación del gradiente a través del tiempo
un número determinado de unidades de tiempo(k2). El primer valor denominado k1 controla
la velocidad a la que se va a realizar el entrenamiento, ya que de este parámetro depende la
Página 10 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
frecuencia con la que se actualizan los pesos. El segundo parámetro, denominado k2, controla
la “memoria” que puede tener la red, por lo que el valor que tome debe ser lo suficientemente
grande como para que capture el patrón que se desea aprender. Sin embargo, se debe tener
en cuenta que un valor demasiado grande para k2 puede resultar en un problema del tipo
vanishing gradient que se explicará más adelante.
Según los valores que se asignen a estos dos parámetros se pueden realizar los siguientes
tipos de entrenamiento:
TBPTT(n,n): Las actualizaciones se realizan tras haber visto todos los pasos de la
secuencia. Es equivalente a BPTT.
TBPTT(k1,1): Se ven k1 instantes y se actualiza hacia atrás solo un paso. Este método
de entrenamiento apenas tiene memoria y se basa principalmente en las entradas y en
el estado interno de la red.
TBPTT(k1,k2), con k1 <k2 <n: Se realizan varias actualizaciones por cada secuencia,
lo cual puede acelerar el entrenamiento.
Página 11 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
capas más profundas tienen que pasar por multiplicaciones matriciales continuas debido
a la regla de la cadena y, a medida que se acercan a las capas anteriores, si tienen valores
pequeños (menores que uno), se “encogen” exponencialmente hasta que desaparecen puesto
que se multiplican continuamente por números inferiores a uno y hacen que el modelo no
pueda aprender (vanishing gradients). Por otro lado, si tienen valores grandes (mayores que
uno), los gradientes se hacen más grandes y eventualmente “explotan” puesto que los pesos
en muchas capas se actualizan con un peso muy grande y el algoritmo se desvía, provocando
que el modelo sea inestable y que no pueda aprender (exploding gradients).
Con respecto al problema de exploding gradients, una solución para evitarlo es aplicar
el método denominado gradient clipping, que establece un umbral predefinido en los gra-
dientes para evitar que se hagan demasiado grandes; al hacerlo no cambia la dirección de
los gradientes, solo cambia su longitud. En cuanto al problema de vanishing gradients, éste
provoca que la RNN no aprenda las dependencias a largo plazo entre los datos puesto que
el componente del gradiente en direcciones que corresponden a dependencias de este tipo
es pequeño a través de los instantes de tiempo, a diferencia de las dependencias a corto
plazo, cuya componente del gradiente es alto. La forma más utilizada para resolverlo es em-
pleando una variante de la arquitectura de red de neuronas recurrente estándar denominada
arquitectura Long Short-Term Memory (LSTM) , que fue introducida por Sepp Hochreiter y
Jurgen Schmidhuber en 1997[28] y diseñada para facilitar la captura de dependencias tanto
a corto como a largo plazo en secuencias de datos, de tal forma que la memorización de
este tipo de información es prácticamente su comportamiento predeterminado. Las RNNs
construidas con unidades LSTM son capaces de aprender a “decidir” qué información de
estados anteriores olvidar o recordar.
Referencias adicionales: [34][1][10][26][39][33]
Explicación y Funcionamiento
Como se ha mencionado reiteradamente en este trabajo, la característica que hace la
arquitectura LSTM tan usada es su capacidad para retener información que fue procesada por
la red neuronal hace un relativamente largo espacio de tiempo. Para lograrlo, la arquitectura
LSTM añade complejidad a cada uno de los nodos que se encuentran en la arquitectura base
de la RNN y decide disponer una arquitectura modular repetitiva en cada uno de ellos como
se puede observar en la Figura 12.
Antes de explicar los pasos que se siguen en cada una de los módulos, es de suma impor-
tancia entender qué es cada entrada que provee de información a cada módulo marcado en
Página 12 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Figura 12: Estructura secuencial de una red neuronal formada por los diferentes módulo de memoria
LSTM. Obtenido de [34].
Estado de la red: más conocido como cell state, es la clave que permite mantener en
todo momento información relevante de estados anteriores en la LSTM. Posteriormente
se explicará como se mantiene y remplaza el contenido de esta. Se denota como c t −1 ,
donde t indica en que posición se encuentra el módulo dentro de la secuencia.
Output del módulo anterior: también usado en otras RNN, realimenta al módulo con
el output del anterior. Se denota como h t −1 .
Input: indica con que dato o datos se alimenta la red neuronal en el módulo actual. Lo
denotamos como x t .
Una vez ha quedado claro con que se alimenta cada módulo LSTM pasamos a explicar su
funcionamiento por partes.
En este primer paso que se lleva a cabo en cada módulo se debe decidir qué información
se debe mantener y cual borrarse. Se suele usar como analogía la capacidad que tenemos los
seres humanos de olvidar y memorizar información.
Para llevar a cabo este proceso, como se observa en la parte 1 (azul) de la Figura 13, a
partir del output del anterior módulo h t −1 y el input que está procesando en el módulo actual
x t se usa una función de activación sigmoid para transformar estos vectores en valores entre
0 y 1. Estos valores representan el grado con el que la red neuronal quiere mantener dicha
información del estado de la red del anterior módulo C t −1 . Es decir, un valor de 1 indica que
se mantiene ese valor mientras que un 0 indica que ese valor es prescindible y se debe olvidar.
Página 13 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Figura 13: Conjunto de operaciones que se realizan en cada módulo de una RNN con arquitectura
LSTM. Adaptado de [40].
Una vez se tiene este vector con valores entre 0 y 1 el cual se representa como f t , solo
queda multiplicarlos por el estado de la red del módulo anterior C t −1 para que surtan efecto.
Generar nuevo vector de estado de la red candidato: Mediante una función de activa-
ción tanh (tangente hiperbólica) se genera un nuevo estado candidato Čt .
Seleccionar que valores son importantes para memorizar: De modo similar al paso
anterior, mediante una función de activación sigmoide se genera un vector con valores
entre 0 y 1 i t expresando que valores son importantes memorizar del vector candidato
Čt mencionado anteriormente.
Una vez tenemos ambos vectores Čt y i t de forma análoga al paso anterior se realiza una
Página 14 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
multiplicación entre ambos vectores para que i t surta efecto delimitando con que grado se
debe memorizar cada uno de los valores del vector candidato Čt
Como observa en la parte 2 (azul) de la Figura 13, para finalizar, se genera el nuevo
estado de la red C t mediante la adición de ambas informaciones de estado lo cual se puede
representar en la siguiente fórmula:
C t = C t −1 ∗ f t + Čt ∗ i t
Una vez hemos preparado el estado de la red actual C t , ya solo queda preparar la salida
del módulo actual y pasar toda la información necesaria al siguiente.
Para generar la nueva salida h t se toma en cuenta el estado de la red después de someterla
a una función tanh y posteriormente se decide en que medida se usan estos valores con
un vector o t cuyo resultado es obtenido al someter h t −1 y x t a una función sigmoide. Este
proceso se puede observar con detenimiento en la parte numerada como 3 (azul) en la Figura
13
Hecho esto, el módulo devuelve su salida h t y lo realimenta para el siguiente módulo.
VARIANTES DE LSTM
Desde la creación de las primeras redes Long Short-Term Memory, se han venido defi-
niendo un gran número de variantes que mejoran el rendimiento para ciertas aplicaciones
o dominios concretos. En este apartado, nos centramos en las redes Gated Recurrent Unit
(GRU), las redes basadas en mecanismos de Atención, las redes Peephole LSTM y las redes
LSTM con capa de proyección recurrente.
Página 15 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
mientras que una unidad LSTM cuenta con puertas de entrada, de olvido, y de salida, y
un elemento de estado, una GRU únicamente posee puertas de reseteo y actualización,
utilizando directamente el estado interno para transferir esa información como salida. A
continuación veremos en más detalle en qué consiste cada una de las fases que permiten su
funcionamiento.
Página 16 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
En cuanto al rendimiento de las redes GRU respecto a las LSTM, diversos estudios empíri-
cos han sido realizados y se ha concluido que no existe una que sea mejor que la otra en todos
los casos. Por lo general, ambas redes consiguen mejores resultados que RNN tradicionales,
pero no existen grandes diferencias entre ellas [16]. Quizás la mayor ventaja de las GRU radica
en que, debido a su menor número de parámetros, pueden ser más rápidas que las LSTM en
hallar soluciones para problemas más pequeños.
Página 17 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
final del proceso devuelve un vector z que describe una suerte de “resumen” de las entradas
centrándose en la información que es relevante para el contexto dado. A continuación,
veremos más en detalle el modelo.
Centrándonos ahora en la Figura 16, veremos las partes más importantes y su funciona-
miento:
3. Se procede a calcular los pesos s i mediante una función softmax, con lo que el resultado
describirá la relevancia de cada variable dado el contexto.
4. Finalmente, se calcula la media ponderada en base a los pesos s i de los valores y i para
obtener el resultado z.
Página 18 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Figura 17: Estructura del modelo de Atención para la traducción. Obtenido de [7].
Peephole LSTM
Peephole LSTM es una variante de LSTM con conexiones tipo “peephole” o conexiones de
mirilla, en que el estado c t −1 de la celda se incorpora a la entrada de algunas de las funciones
tanh o sigmoide que no la tienen en el modelo estándar.
Página 19 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
El problema de la LSTM tradicional radica en que, como cada célula de la red recibe
únicamente la salida del paso anterior, si la salida es aproximadamente o está cerca de cero,
la salida de dicho paso estará cerrada. Esto provoca que, como hay una conexión directa para
controlar la CEC (Constant Error Carousel), esta salida se deba controlar para evitar pérdidas
de información y un bajo rendimiento de la red. El mismo problema ocurre con varias celdas
en un bloque de memoria: cuando la puerta de salida está cerrada, ninguna de las células
anteriores tiene acceso a los CEC que controlan.
La solución que proporciona “Peephole LSTM”, propuesta por FA. Gers, Nicol N. Schrau-
dolph y Jürgen Schmidhuber en 2002 [21] es agregar conexiones sencillas ponderadas desde
la CEC a las puertas del mismo bloque de memoria como se pueden observar en la Figura 18.
Figura 18: Esquema detallado de la unidad de Red Recurrente Simple (SRN) (izquierda) y un bloque
de Memoria a Largo Plazo Largo (derecha) y uso de “peephole” en color azul. Obtenido de [25].
Página 20 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
La segunda fase es la salida del resultado y su activación para la siguiente célula. Esto
permite el control del CEC y evitar pérdidas de información cuando hay una salida cercana a
cero en la célula anterior como se puede ver en la Figura 18.
Figura 19: Arquitectura LSTMP RNN. Con un único bloque de memoria. Obtenido de [47].
También se propone el LSTMP profundo, el cual apila múltiples capas LSTM, siendo cada
una una capa de proyección recurrente separada. LSTMP permite aumentar la memoria del
modelo independientemente de las conexiones recurrentes y la capa de salida. Sin embargo,
al aumentar el tamaño de la memoria hace que el modelo sea más propenso a sobreajustar,
ya que memoriza los datos de entrada. Luego para el LSTMP se tratan arquitecturas que
aumenten el tamaño de la memoria y generalicen el modelo.
Página 21 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
A PLICACIONES
Dadas las características de las arquitecturas LSTM, son especialmente aplicables en
aquellos problemas en que el contexto de corto o largo plazo de los datos tiene una relevancia
especial. Es decir, se aplica a series de datos en que éstos siguen algún tipo de patrón o reglas,
generalmente con combinaciones complejas de información de varios tipos, que son las que
la arquitectura LSTM va a aprender y que van más allá de una simples reglas gramaticales
como podíamos tener en otro tipo de arquitecturas.
Aunque típicamente acudimos a la referencia temporal para obtener estas series, hay que
tener en cuenta que también serían aplicables a otro tipo de magnitudes (p.e. espaciales)
Son muy diversos los ejemplos de uso en los que se han obtenido buenos resultados
aplicando arquitecturas LSTM o se está investigando para aplicar estas técnicas u otras
equivalentes (generalmente combinadas con otras tecnologías y ciencias: AI, electrónica,
biología, física, etc) y están apareciendo constantemente en los medios:
Figura 20: Predicción de la evolución del SP-500 a corto plazo y tendencias a medio. Obtenido de [4].
Página 22 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Predicción del tiempo, donde se conjugan la dimensión temporal con la espacial, sobre
un conjunto de variables como la temperatura, la presión atmosférica, la humedad o el
viento, a partir del estado anterior del sistema y la orografía del terreno (incluyendo
zonas húmedas), y pudiendo ser un “ecosistema” cerrado (sin datos de entrada, que
evoluciona a partir de su propio estado), o sofisticarse realimentando con la medición
real post predicción y/o incorporando entradas adicionales como p.e. lecturas del nivel
de radiación solar.
Página 23 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
que pueden preceder a la fase sintomática de un terremoto, pero también con otro tipo
de señales que se puedan recoger (p.e. migración de animales) y entrenando con series
históricas, para ir más allá de los pocos segundos que se obtenían de margen hasta
ahora en las alertas explotando únicamente la diferencia en tiempo entre la llegada de
las ondas P y las S debido a la diferencia de velocidad con que se propagan.
Página 24 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Interpretación de ondas cerebrales de manera que supongan una mejora del interfaz
hombre-máquina para personas discapacitadas o para facilitar comunicación directa.
Figura 26: Control con la mente de un instrumento. Ayuda a personas minusválidas. Obtenido de [18,
43].
Página 25 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Además de identificar patrones, las arquitecturas LSTM se han usado también para generar
secuencias, p.e. textos una vez han aprendido una gramática, un lenguaje y un estilo
Figura 27: Generación de texto con redes LSTM bidirecccionales. Obtenido de [12].
El segundo método, SS-LSTM, permite predecir la trayectoria de los peatones. Para ello
Página 26 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
se apoya de tres entornos los cuales transformará a tres LSTM para predecir finalmente la
trayectoria de un peatón: la trayectoria de los peatones hasta el momento, el entorno de los
peatones y sus alrededores y las características de la escena. Posteriormente la combinación
de las respuestas obtenidas de cada una de ellas se combina en otra LSTM obteniendo el
resultado.
C ONCLUSIONES
La aparición de las arquitecturas LSTM ha supuesto un importante salto adelante en el
paradigma de la Inteligencia Artificial al incluir la dimensión temporal, y con ello aprendiendo
de las secuencias de datos de una manera más sencilla que otros métodos (p.e. estadísticos)
difícilmente podrían alcanzar. El aprendizaje aplicado a secuencias de datos (entre ello de
manera significativa al lenguaje) permite abrir un nuevo paraguas de usos que potencian la
utilidad de la IA al ser humano.
La utilidad de estas redes viene de la multitud de campos en nuestra vida real en que lo
que va a pasar viene condicionado en gran medida por lo que ha pasado anteriormente, y el
aprendizaje de esa historia (sus patrones, sus estilos de decisión) se convierte en un elemento
fundamental en la calidad de la salida. Para ello, se utilizan este tipo de redes LSTM y sus
variantes en diversos tipos de aplicaciones, permitiendo obtener buenos resultados. Luego
los problemas que presentan patrones, estructuras fijas o ciclos en los conjuntos de sus datos
tienen un alto éxito de resolución con este tipo de arquitecturas debido a que se adecúan a la
estructura que las arquitecturas presentan.
Las redes neuronales que incorporan recurrencia y memoria aprenden elementos (gra-
mática, estilo, causalidad,..) en información donde es difícil estructurar las relaciones y
dependencias entre los distintos datos, o donde nosotros mismos no las conocemos.
Página 27 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
Página 28 de 33
Bibliografía
[1] Alese, Eniola. The curious case of the vanishing & exploding gradient. 2018. URL: https:
/ / medium . com / learn - love - ai / the - curious - case - of - the - vanishing -
exploding-gradient-bf58ec6822eb (visitado 07-01-2019).
[2] Arenas, Marlyn. Neuroanatomía. 2013. URL: http://morfofisiologiaa.blogspot.
com/2014/05/sistema-nervioso.html (visitado 04-01-2019).
[3] Athiwaratkun, B. y Stokes, J.W. “Malware classification with LSTM and GRU language
models and a character-level CNN”. En: 2017 IEEE International Conference on Acous-
tics, Speech and Signal Processing (ICASSP). 2017, págs. 2482-2486. DOI: 10.1109/
ICASSP.2017.7952603.
[4] Aungiers, Jakob. Time Series Prediction Using LSTM Deep Neural Networks. 2018. URL:
https://www.altumintelligence.com/articles/a/Time-Series-Prediction-
Using-LSTM-Deep-Neural-Networks (visitado 31-12-2018).
[5] Bahdanau, Dzmitry y Cho, Kyunghyun y Bengio, Yoshua. “Neural Machine Translation
by Jointly Learning to Align and Translate”. En: Proceedings of the International Confe-
rence on Learning Representations. 2015. URL: http://arxiv.org/abs/1409.0473.
[6] Bates, Sofie. Robots learn tasks from people with framework developed by Stanford
researchers. 2018. URL: https://news.stanford.edu/2018/10/26/robots-learn-
tasks-people/ (visitado 05-01-2019).
[7] Blier, Léonard y Ollion, Charles. Attention Mechanism. 2016. URL: https://blog.
heuritech.com/2016/01/20/attention-mechanism/ (visitado 04-01-2019).
[8] Brownlee, Jason. 2017. URL: https : / / machinelearningmastery . com / develop -
bidirectional-lstm-sequence-classification-python-keras/ (visitado 03-01-2019).
[9] Brownlee, Jason. A Gentle Introduction to Backpropagation Through Time. 2017. URL:
https://machinelearningmastery.com/gentle-introduction-backpropagation-
time/ (visitado 03-01-2019).
29
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
[16] Chung, Junyoung y Gulcehre, Caglar y Cho, KyungHyun y Bengio, Yoshua. “Empirical
Evaluation of Gated Recurrent Neural Networks on Sequence Modeling”. En: Procee-
dings of the Neural Information Processing Systems Conference (NIPS). 2014.
[17] Collado, Christian. El traductor de Google ahora es mucho más inteligente. 2016. URL:
https://andro4all.com/2016/11/traductor- google- inteligente (visitado
05-01-2019).
[18] Conner-Simons, Adam. How to control robots with brainwaves and hand gestures. 2018.
URL :
http://news.mit.edu/2018/how-to-control-robots-with-brainwaves-
hand-gestures-mit-csail-0620 (visitado 05-01-2019).
[19] Donges, Niklas. Recurrent Neural Networks and LSTM – Towards Data Science. 2018.
URL :
https : / / towardsdatascience . com / recurrent - neural - networks - and -
lstm-4b601dd822a5.
Página 30 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
[20] Fu, R. y Zhang, Z. y Li, L. “Using LSTM and GRU neural network methods for traffic flow
prediction”. En: 2016 31st Youth Academic Annual Conference of Chinese Association of
Automation (YAC). 2016, págs. 324-328. DOI: 10.1109/YAC.2016.7804912.
[21] Gers, Felix A. y Schraudolph, Nicol N. y Schmidhuber, Jürgen. “Learning Precise Timing
with LSTM Recurrent Networks”. En: Journal of Machine Learning Research 3 (2002),
págs. 115-143.
[22] Gestal Pose, Marcos. Introducción a las Redes de Neuronas Artificiales. URL: http :
//sabia.tic.udc.es/mgestal/cv/RNATutorial/TutorialRNA.pdf.
[23] GnanaSekar. Artificial Intelligence: Weather Forecasting and Prediction of Natural Di-
sasters. 2018. URL: https : / / www . indianweb2 . com / 2018 / 05 / 23 / artificial -
intelligence-weather-forecasting-and-prediction-of-natural-disasters/
(visitado 05-01-2019).
[24] Goodfellow, Ian y Pouget-Abadie, Jean y Mirza, Mehdi y Xu, Bing y Warde-Farley, David
y Ozair, Sherjil y Courville, Aaron y Bengio, Yoshua. “Generative Adversarial Networks”.
En: Proceedings of the 27th Advances in Neural Information Processing Systems (NIPS)
Conference. 2014.
[25] Greff, Klaus y Srivastava, Rupesh K. y Koutnik, Jan y Steunebrink, Bas R. y Schmidhuber,
Jürgen. “IEEE transactions on neural networks and learning systems”. En: LSTM: A
Search Space Odyssey 28 (2017), págs. 2222-2232.
[26] Gron, Aurlien. Hands-On Machine Learning with Scikit-Learn and TensorFlow: Con-
cepts, Tools, and Techniques to Build Intelligent Systems. 1st. O’Reilly Media, Inc., 2017.
ISBN : 1491962291, 9781491962299.
[28] Hochreiter, Sepp y Schmidhuber, Jürgen. “Long Short-Term Memory”. En: Neural
Computation 9.8 (1997), págs. 1735-1780.
Página 31 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
[31] Li, H. y Liu, J. y Zhang, G. y Gao, Y. y Wu, Y. “Multi-glimpse LSTM with color-depth
feature fusion for human detection”. En: 2017 IEEE International Conference on Image
Processing (ICIP). 2017, págs. 905-909. DOI: 10.1109/ICIP.2017.8296412.
[32] McCulloch, Warren y Pitts, Walter. “A Logical Calculus of Ideas Immanent in Nervous
Activity”. En: Bulletin of Mathematical Biophysics 5 (4): 115-133 (1943).
[33] Nguyen, Michael. Illustrated Guide to Recurrent Neural Networks – Towards Data
Science. 2018. URL: https://towardsdatascience.com/illustrated-guide-to-
recurrent-neural-networks-79e5eb8049c9.
[34] Olah, Christopher. Understanding LSTM Networks. 2015. URL: http://colah.github.
io/posts/2015-08-Understanding-LSTMs/ (visitado 27-12-2018).
[35] Pccoronado. Rectifier and softplus functions. 2017. URL: https://commons.wikimedia.
org/wiki/File:Rectifier_and_softplus_functions.svg (visitado 03-01-2019).
[36] Recurrent neural network. 2019. URL: https://en.wikipedia.org/wiki/Recurrent_
neural_network (visitado 04-01-2019).
[37] Redes neuronales recurrentes. URL: http://catarina.udlap.mx/u_dl_a/tales/
documentos/lem/oropeza_c_ca/capitulo3.pdf (visitado 05-01-2019).
[38] Rosenblatt, Frank. “The perceptron: A probabilistic model for information storage and
organization in the brain.” En: Psychological Review 65.6 (1958), págs. 386-408. ISSN:
1939-1471. DOI: 10.1037/h0042519. URL: http://doi.apa.org/getdoi.cfm?doi=
10.1037/h0042519.
[39] Rouse, Margaret. What is recurrent neural networks? - Definition from WhatIs.com.
URL :
https://searchenterpriseai.techtarget.com/definition/recurrent-
neural-networks.
[40] Sinha, Nimesh. Understanding LSTM and its quick implementation in keras for sen-
timent analisis. 2018. URL: https://towardsdatascience.com/understanding-
lstm-and-its-quick-implementation-in-keras-for-sentiment-analysis-
af410fd85b47/ (visitado 02-01-2019).
[41] Smith, Brett. Regulations for Autonomous Cars. 2018. URL: https://www.azom.com/
article.aspx?ArticleID=15668 (visitado 05-01-2019).
[42] Tchircoff, Andrew. The mostly complete chart of Neural Networks, explained. 2017. URL:
https://towardsdatascience.com/the-mostly-complete-chart-of-neural-
networks-explained-3fb6f2367464 (visitado 05-01-2019).
Página 32 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid
[46] Yang, Li-Chia y Chou, Szu-Yu y Yang, Yi-Hsuan. “MidiNet: A Convolutional Generative
Adversarial Network For Symbolic-Domain Music Generation”. En: Proceedings of the
International Society of Music Information Retrieval Conference. 2017.
[47] YuKang, Jia y Zhicheng, Wu y Yanyan, Xu y Dengfeng, Ke y Kaile, Su. “Long Short-Term
Memory Projection Recurrent Neural Network Architectures for Piano’s Continuous
Note Recognition”. En: Journal of Robotics 2017 (sep. de 2017), págs. 1-7. DOI: 10.1155/
2017/2061827.
Página 33 de 33