Anda di halaman 1dari 34

MUIA - C OMPUTACIÓN E VOLUTIVA

ARQUITECTURAS NEURONALES LSTM


(L ONG S HORT-T ERM M EMORY N EURAL N ETWORKS )

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

Figura 2: Funciones ReLU y Softplus. Obtenido de [35].

Desde el primer modelo neural de McCulloch y Pitts, se han desarrollado cientos de


modelos de redes de neuronas diferentes, más sofisticadas de década en década, que difieren
en las funciones de activación utilizadas, los valores aceptados, la topología o los algoritmos
de aprendizaje, entre otros factores. El perceptrón creado por Frank Rosenblatt es el modelo
más simple y antiguo de una neurona biológica en una red neuronal artificial, cuyo funcio-
namiento consiste en tomar unas entradas, sumarlas, aplicar una función de activación y
pasarlas a la capa de salida.

Figura 3: Modelo de perceptrón. Obtenido de [42].

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

Figura 4: Modelo de red de neuronas alimentada hacia delante. Obtenido de [42].

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].

Otra arquitectura de red neuronal ampliamente utilizada en la actualidad es la red de


neuronas convolucional (CNN), empleada en el reconocimiento y procesamiento de imáge-
nes. Esta arquitectura fue específicamente diseñada para el procesamiento de la información
contenida en los píxeles de una imagen, aunque posteriormente se ha ampliado su campo
de aplicación. Las CNN hacen uso de tres tipos distintos de capas, además de la capa de
entrada: convolucionales, de agrupación (pooling) y capas completamente conectadas. La
capa de entrada contiene los valores de los píxeles de la imagen, las capas convolucionales
procesan los datos de entrada (extraen características de la imagen), las capas de pooling
reducen la dimensionalidad de los datos eliminando la redundancia innecesaria y las capas
completamente conectadas finales (feed forward) se encargan de realizar la clasificación.

Página 4 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid

Figura 6: Modelo de red de neuronas convolucional. Obtenido de [42].

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.

Figura 7: Modelo de red de neuronas recurrente. Obtenido de [42].

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.

Figura 8: Modelo de red de neuronas LSTM. Obtenido de [42].

R EDES NEURONALES RECURRENTES


La arquitectura de red neuronal que se utiliza en mayor proporción en la actualidad es la
denominada red de neuronas alimentada hacia delante (RNA). Al iniciar las investigaciones
sobre redes neuronales, este tipo de redes fueron las que recibieron más atención por parte de
los investigadores porque sus características en cuanto a tiempos de procesamiento hacían
viables simulaciones con los equipos computacionales de la época. Comparadas con las
otras redes, las redes de neuronas alimentadas hacia delante son una opción con un balance
costo-velocidad y costo-exactitud bastante aceptable.
Como mencionamos anteriormente, una red neuronal alimentada hacia delante es aque-
lla en la que la información se mueve en un único sentido, desde la entrada hacia la salida.
Este tipo de redes están clásicamente organizadas en capas, donde cada una de ellas agru-
pa a un conjunto de neuronas que reciben sinapsis de las neuronas de la capa anterior y
emiten salidas hacia las neuronas de la capa siguiente. Además, en este tipo de red, entre

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(1,n): Se ve tan solo un paso de la secuencia y a continuación se realiza la


actualización de todos los pesos.

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.

TBPTT(k1,k1): Es el patrón más común de entrenamiento, donde la longitud de la


secuencia introducida es igual al número de unidades de tiempo hacia atrás que se
visitan en la retropropagación.

R EDES NEURONALES L ONG S HORT-T ERM M EMORY (LSTM)


Las redes de neuronas recurrentes vistas anteriormente contienen conexiones recurrentes
que añaden memoria a la red sobre la información de instantes de tiempo anteriores y
permiten resolver problemas de secuencias de datos como la predicción de series temporales.
Sin embargo, la memoria es de corto plazo: a medida que la distancia entre el instante de
tiempo donde se encuentra la información relevante y el punto en el que se necesita para
hacer una predicción se hace más grande, las RNNs tienen dificultades para aprender estas
dependencias entre estos instantes de tiempo debido a que se encuentran con dos problemas
denominados exploding gradients y vanishing gradients.
Estos problemas surgen durante el entrenamiento de una red profunda cuando los gra-
dientes se propagan en el tiempo hasta la capa inicial. Los gradientes que provienen de las

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].

rosa en la Figura 13.

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.

Olvido de información del estado de la red

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.

Memorizado de nueva información

Una vez el módulo ha olvidado la información que ha interpretado como no necesaria, o


no, se procede a memorizar la nueva información que se considera relevante.
Partiendo del mismo input que en el paso anterior, es decir, h t −1 y x t , el objetivo es
generar el nuevo estado del módulo actual a partir de dos pasos.

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

Es decir, primero consideramos el olvido C t −1 ∗ f i y después decidimos qué queremos


memorizar y en qué grado Čt ∗ i t .

Obtención de nueva salida

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.

Gated Recurrent Unit


La Gated Recurrent Unit fue presentada en 2014 por Cho y col. [15] para hacer que
cada unidad recurrente sea capaz de adaptarse a los cambios de escalas temporales de
un problema. De manera análoga a las LSTM, las GRU basan su funcionamiento en una
serie de puertas que modulan el flujo de información que recorre la unidad. Sin embargo,

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.

Figura 14: Estructura de una Gated Recurrent Unit. Obtenido de [30].

1. En primer lugar, introducimos la entrada actual (x t ) y el estado oculto previo (h t −1 ) y


cada uno de ellos se ve multiplicado por su peso asignado. Estos resultados se suman y
se les aplica una función sigmoide para que los valores se encuentren entre 0 y 1. Este
proceso se puede apreciar en las líneas azul y morada en la izquierda de la Figura 14.
Esta operación corresponde al proceso de actualización de la unidad y denotaremos el
resultado como z t .

2. A continuación, se realiza la misma operación del paso 1 para el proceso de olvido,


obteniendo de esta manera el resultado r t que se aprecia en la Figura 14.

3. Posteriormente, es necesario hallar el contenido actual de la memoria (h 0 t ). Para


ello, haremos una multiplicación elemento a elemento del estado previo h t −1 y r t
y sumaremos el resultado a la entrada x t . Finalmente, le aplicaremos una función
tangente hiperbólica para que el valor final se encuentre entre -1 y 1.

4. En último lugar, ya estamos en posición para hallar el estado final de la memoria en


el momento actual. Haremos el producto elemento a elemento de h 0 t con 1-z t , el

Página 16 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid

producto elemento a elemento de h t −1 con z t y sumaremos el resultado para obtener


el estado final de la memoria. Se trata de la operación que se aprecia en la Figura con
líneas rojo claro y rojo oscuro.

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.

Redes basadas en Atención


Desde la presentación de la primera red neuronal que incorporaba un mecanismo de
Atención [5], esta técnica se ha venido utilizando debido a la gran mejora de rendimiento
que proporciona respecto a las redes LSTM, aunque su resultado mejora al combinar ambas
arquitecturas.
De una manera similar a como ocurre en el cerebro humano, la Atención en redes neu-
ronales permite centrarse en ciertas partes de la entrada que son más interesantes dado un
contexto específico.

Figura 15: Estructura de un modelo de Atención.

En la Figura 15 se puede apreciar la estructura más básica de un modelo de atención.


Este consta de n partes/elementos de la entrada y 1 , ... , y n , y un contexto c. Como resultado

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.

Figura 16: Estructura de un modelo de Atención. Obtenido de [7].

Centrándonos ahora en la Figura 16, veremos las partes más importantes y su funciona-
miento:

1. En primer lugar, contamos con los datos de entrada (y i ) y el contexto (c).

2. A continuación, se calculan los factores m i agregando los valores de y i y c con una


tangente hiperbólica de tal manera que los valores resultantes de esta operación estén
acotados entre -1 y 1. Es importante destacar que cada m i se calcula independiente-
mente del resto.

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.

En otros modelos, la función softmax se ha visto reemplazada por un simple producto


escalar entre las entradas y i y el contexto, consiguiendo resultados comparables.
La primera aplicación de un modelo de este tipo fue creada por Bahdanau y col. [5] para
el propósito de traducción del inglés al francés. Anteriormente, se habían venido utilizando

Página 18 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid

redes neuronales recurrentes, habitualmente GRU o LSTM, con un modelo de codificador-


descodificador, pero en este trabajo además se incorporaron modelos de atención para
conseguir que la red se centrase en partes específicas del texto original que pudiesen mejorar
la corrección del texto traducido.

Figura 17: Estructura del modelo de Atención para la traducción. Obtenido de [7].

En la Figura 17 se muestra el modelo de Atención utilizado para la traducción de textos.


En este caso, en lugar de contar con un estado oculto único común a toda la frase, se codifican
tantos estados ocultos como palabras en la frase. Cuando la red descodifica una palabra,
determina la contribución de cada uno de estos estados ocultos para encontrar la traducción
más adecuada utilizando Atención. Nótese que la salida de una traducción (h i0 ) se toma como
entrada para realizar la siguiente.

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].

Cada componente de celda de memoria debe actualizarse en función de las activaciones


o inhibiciones más recientes de las células anteriores a las que están conectadas. En el caso
más simple, esto requiere un esquema de actualización de dos fases cuando hay conexiones
recurrentes en sus respectivas entradas.
La primera fase debe subdividirse en tres pasos:

1. Entrada de activación a la puerta de la celda

2. Guardado y borrado de la activación en dicha puerta,

3. Actualización de la entrada y el estado de la celda

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.

LSTMP - LSTM con capa de proyección recurrente


Como alternativa a la arquitectura estándar, se propone una arquitectura proyectada a
largo plazo a largo plazo (LSTMP) [47]. Esta arquitectura consta de una capa de proyección
lineal, la cual se encuentra separada después de la capa LSTM. Las conexiones recurrentes se
conectan desde la capa de proyección recurrente a la entrada de la capa LSTM. Las unidades
de salida de red están conectadas a esta capa recurrente.

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:

Predicción en series temporales de distinta naturaleza

• Datos financieros, como p.e. evolución de índices bursátiles

Figura 20: Predicción de la evolución del SP-500 a corto plazo y tendencias a medio. Obtenido de [4].

• Datos de consumo, p.e. consumo eléctrico para decidir la activación de generación


eléctrica

Reconocimiento de lenguaje, desde distintos medios:

• Texto escrito (a partir de imagen)

• Reconocimiento de voz (a partir de audio)

• Reconocimiento de lenguaje de signos (a partir de vídeo)

Página 22 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid

Figura 21: Reconocimiento de lenguaje de signos. Obtenido de [44].

Traducción de un lenguaje a otro, donde la red no sólo aprende vocabulario, sino


también la gramática y los usos de la lengua, y las correspondencias entre las gramáticas
de la lengua origen y la de destino.

Figura 22: Evolución de la traducción automática de Google. Obtenido de [17].

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.

Predicción de desastres naturales, p.e. a partir de señales sísmicas (ondas P y ondas S)

Página 23 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid

Figura 23: Modelos de clima. Obtenido de [23].

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.

Figura 24: Alarmas y predicción de terremotos. Obtenido de [13].

Control de elementos robóticos, donde el control se ejerce mediante secuencias de


instrucciones a elementos de activación (p.e. motores). En esta categoría podría entrar
tanto activadores sencillos (p.e. el movimiento de un robot de barrido tipo roomba),
o muy sofisticados (p.e. un coche autónomo) en que se deben unir los elementos de
aprendizaje ligados a percepción (bordes de la carretera, señales de tráfico, estado del
firme) con los que están ligados a la activación (potencia del motor, cambio de marcha,

Página 24 de 33
Arquitecturas neuronales LSTM Universidad Politécnica de Madrid

activación de intermitentes, giro del volante o frenado) y a la planificación y generación


de objetivos.

Figura 25: Entrenamiento de un Robot. Coche autónomo. Obtenido de [6, 41].

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].

Detección de malware en sistemas informáticos o de intrusos[3]. Para ello se ayudan


de las LSTM o de algunas de sus variantes explicadas anteriormente.

Predicción del trafico automovilistico [20]. Permitiendo identificar la cantidad de co-


ches en cada momento en un corto periodo de tiempo.

En el aprendizaje de secuencias se han mejorado en algunos casos los resultados usando


arquitecturas LSTM bidireccionales [8], en las que se entrena una capa LSTM con la entra-
da, en paralelo con otra capa con la entrada invertida (es decir, aprendiendo del futuro).

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].

Aunque, como hemos comentado, tanto la identificación de “patrones” como la gene-


ración puede ser multidimensional (p.e. un cuadro) y multimagnitud (espacio-temporal u
otras)
En 2014 Goodfellow [24] introdujo las redes generativas, GAN (Generative Adversarial
Network) que, además de usarse ampliamente en generación de imágenes[29], últimamente
se están empezando a utilizar también para generación de flujos, p.e. de música[46], en
ocasiones sin necesidad de usar arquitecturas RNN para introducir la dimensión temporal.
Además de estas aplicaciones también existen modelos de LSTMs para la detección de
personas y de su comportamiento. Entre ellos destaca Multi-Glimpse LSTM (MG-LSTM) [31] y
Social-Scene-LSTM (SS-LSTM) [45]. El primer método, MG-LSTM, está basado en cómo el ser
humano analiza una imagen de forma contextual a la hora de identificar objetos o personas.
Se trata de la construcción de una red de LSTM que permite incluir tanto los colores captados
como la profundidad de la imagen dentro de LSTM, permitiendo fusionarlos posteriormente
dentro de otra LSTM.

Figura 28: Multi-Glimpse LSTM. Obtenido de [31].

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.

Figura 29: SS-LSTM. Obtenido de [45].

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

A pesar de la importancia de este componente de la arquitectura de redes neuronales,


su uso generalmente no es aislado, sino que las arquitecturas actuales combinan varios de
estos elementos (capas convolucionales, capas LSTM, autoencoders, etc) sacando partido a
cada una de ellas para obtener estructuras espaciales, relaciones temporales, reducción de
dimensionalidad, etc.
La mayoría de estas arquitecturas han sido desarrolladas en los últimos 10-15 años. Entre
las últimas aportaciones están las arquitecturas GAN, que suman una nueva pieza a nuestro
puzle, en este caso con capacidad de crear (generación de nuevos elementos siguiendo los
estilos de lo aprendido).

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

[10] Brownlee, Jason. A Gentle Introduction to Exploding Gradients in Neural Networks.


2018. URL: https://machinelearningmastery.com/exploding- gradients- in-
neural-networks/ (visitado 07-01-2019).
[11] Brownlee, Jason. Crash Course in Recurrent Neural Networks for Deep Learning. 2017.
URL : https://machinelearningmastery.com/crash-course-recurrent-neural-

networks-deep-learning/ (visitado 07-01-2019).


[12] Campion, David. Text Generation using Bidirectional LSTM and Doc2Vec models. 2018.
URL : https://medium.com/@david.campion/text-generation-using-bidirectional-

lstm-and-doc2vec-models-1-3-8979eb65cb3a (visitado 04-01-2019).


[13] Cardinal, David. QuakeFinder: Is earthquake prediction finally a reality? 2013. URL:
https://www.extremetech.com/extreme/153197- quakefinder- earthquake-
prediction-technology (visitado 05-01-2019).
[14] Cartas, Alejandro. Perceptrón. 2015. URL: https : / / es . wikipedia . org / wiki /
Archivo:Perceptr%C3%B3n_5_unidades.svg (visitado 04-01-2019).
[15] Cho, Kyunghyun y van Merrienboer, Bart y Gulcehre, Caglar y Bahdanau, Dzmitry y
Bougares, Fethi y Schwenk, Holger y Bengio, Yoshua. “Learning Phrase Representations
using RNN Encoder-Decoder for Statistical Machine Translation”. En: Proceedings of
the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP).
Qatar, 2014, págs. 1724-1734.

[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.

[27] Hahnloser, R. y Sarpeshkar, R. y Mahowald, M. A. y Douglas, R. J. y Seung, H. S. “Digital


selection and analogue amplification coexist in a cortex-inspired silicon circuit”. En:
Nature 405: 947-951 (2000).

[28] Hochreiter, Sepp y Schmidhuber, Jürgen. “Long Short-Term Memory”. En: Neural
Computation 9.8 (1997), págs. 1735-1780.

[29] Hui, Jonathan. 2018. URL: https://medium.com/@jonathan_hui/gan-some-cool-


applications-of-gans-4c9ecca35900 (visitado 04-01-2019).
[30] Kostadinov, Simeon. Understanding GRU networks. 2017. URL: https://towardsdatascience.
com/understanding-gru-networks-2ef37df6c9be (visitado 03-01-2019).

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

[43] The Lancet. High-performance neuroprosthetic control by an individual with tetraplegia.


2012. URL: http://www.thelancet.com/journals/lancet/article/PIIS0140-
6736(12)61816-9 (visitado 05-01-2019).
[44] Valis, Dioreleytte. Diseñan sistema para el reconocimiento del lenguaje de señas. 2017.
URL : https://www.mipatente.com/disenan-sistema-para-el-reconocimiento-

del-lenguaje-de-senas/ (visitado 05-01-2019).


[45] H. Xue, D. Q. Huynh y M. Reynolds. “SS-LSTM: A Hierarchical LSTM Model for Pe-
destrian Trajectory Prediction”. En: 2018 IEEE Winter Conference on Applications of
Computer Vision (WACV). 2018, págs. 1186-1194. DOI: 10.1109/WACV.2018.00135.

[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

Anda mungkin juga menyukai