alt=Rede neural recorrente|miniatura|Esquema simple dunha rede neural recorrente. As redes neurais recorrentes (RNN) son unha clase de redes neurais artificiais para o procesamento secuencial de datos. A diferenza das redes neurais de avance, que procesan datos nun só paso, as RNN procesan datos en varios pasos de tempo, polo que son adecuadas para modelar e procesar texto, voz e series cronolóxicas.
O bloque fundamental dunha RNN é a unidade recorrente. Esta unidade mantén un estado oculto, esencialmente unha forma de memoria, que se actualiza en cada paso de tempo en función da entrada actual e do estado oculto anterior. Este bucle de retroalimentación permite que a rede aprenda das entradas pasadas e incorpore ese coñecemento ao seu procesamento actual.
As primeiras redes neurais recorrentes sufriron o problema do esvaecemento do gradiente, limitando a súa capacidade para aprender dependencias que estaban a unha distancia considerable. Isto resolveuse coa invención das redes de memoria a longo e curto prazo (LSTM, das súas siglas en inglés, Long Short-Term Memory) en 1997, que se converteu na arquitectura estándar para as RNN.
Este tipo de redes aplicáronse a tarefas como o recoñecemento de escritura manual, o recoñecemento da fala, o procesamento da linguaxe natural e a tradución automática neural.
Historia
Antes das redes LSTM Unha orixe das redes neurais recorrentes foi a mecánica estatística. O modelo de Ising foi desenvolvido por Wilhelm Lenz e Ernst Ising na década de 1920 como un simple modelo mecánico estatístico de imáns en equilibrio. En 1963, o físico Roy J. Glauber estudou como evolucionaba no tempo modelo de Ising, como un proceso cara ao equilibrio (dinámica de Glauber), engadindo esa compoñente do tempo. En 1972, Shun'ichi Amari propuxo modificar os pesos dun modelo de Ising pola regra de aprendizaxe de Hebbian, como modelo de memoria asociativa, engadindo a compoñente de aprendizaxe. Esta foi popularizada como a rede Hopfield, en 1982.
Outra orixe das redes neurais recorrentes foi a neurociencia. A palabra recorrente úsase para describir estruturas de tipo bucle en anatomía. En 1901, Ramón y Cajal observou "semicírculos recorrentes" no córtex cerebeloso formados por fibras paralelas, células de Purkinje e células granulares. En 1933, Lorente de Nó descubriu "conexións recíprocas e recorrentes" polo método de Golgi, e propuxo que os bucles excitadores explican certos aspectos do reflexo vestíbulo-ocular. Durante a década de 1940, varias persoas propuxeron a existencia de retroalimentación no cerebro, o que contrastaba coa comprensión anterior do sistema neural como unha estrutura puramente de retroalimentación cara adiante. O psicólogo Donald O. Hebb considerou o "circuíto reverberante" como unha explicación para a memoria a curto prazo. O artigo de McCulloch e Pitts (1943), que propuxo o modelo de neuronas McCulloch-Pitts, considerou redes que contiñan ciclos. A actividade actual de tales redes pode verse afectada por actividades que se realizaron hai moito tempo. Ambos investigadores estaban interesados en bucles pechados como posibles explicacións para, por exemplo, a epilepsia e a causalxia. A inhibición recorrente propúxose en 1946 como un mecanismo de retroalimentación negativa no control motor. Os bucles de retroalimentación neural foron un tema común de discusión nas conferencias de Macy.
Minsky e Papert sinalaron que as redes recorrentes poden despregarse no tempo nunha rede retroalimentación cara adiante en capas (páx. 354Rumelhart, D. E., Hinton, G. E. & Williams, R. J. "Learning internal representations by error propagation" in Parallel Distributed Processing: Explorations in the Microstructure of Cognition. Vol. 1: Foundations (eds Rumclhart, D. E. & McClelland, J. L.) 318-362 (MIT, Cambridge, 1986).).
No rexurdir das redes neurais nos anos 80, as redes recorrentes foron estudadas de novo. Ás veces chamábanse redes iteradas. Dous primeiros traballos influentes foron a rede Jordan (1986) e a rede Elman (1990), que aplicou redes neurais recorrentes para estudar a psicoloxía cognitiva. En 1993, un sistema de compresor de historia neural resolveu unha tarefa de "aprendizaxe moi profunda" que requiría máis de 1000 capas nunha RNN despregada no tempo.
LSTM
As redes de memoria a longo e curto prazo foron inventadas por Hochreiter e Schmidhuber en 1995, e estableceron rexistros de precisión en múltiples dominios de aplicacións. Converteuse na opción predeterminada para a arquitectura de RNN.
Ao redor do 2006, as redes LSTM comezaron a revolucionar o recoñecemento de voz, superando os modelos tradicionais en determinadas aplicacións de fala. Ademais, tamén melloraron o recoñecemento de voz de gran vocabulario e a síntese de texto a voz e utilizáronse na busca por voz de Google e no ditado en dispositivos Android.
Estas redes bateron récords de mellora da tradución automática, da modelaxe lingüística e do procesamento de linguaxe multilingüe. Combinadas coas redes neurais convolucionais (CNN) melloraron o subtitulado automático en imaxes.
Un modelo importante que utiliza redes LSTM xurdiu da idea da transdución de secuencias codificador-descodificador desenvolveuse a principios da década do 2010. Unha arquitectura seq2seq emprega dúas RNN, normalmente LSTM, un codificador e un descodificador, para a transdución de secuencias, como a tradución automática. Convertéronse no estado da arte na tradución automática, e foron fundamentais no desenvolvemento do mecanismo de atención e dos transformadores.
Configuracións Un modelo baseado en RNN pódese dividir en dúas partes: configuración e arquitectura. Pódense combinar varias redes neurais recorrentes nun fluxo de datos e o propio fluxo de datos é a configuración. Cada RNN en si pode ter calquera arquitectura, incluíndo LSTM, GRU, etc.
RNN estándar miniatura| Rede neural recorrente básica comprimida (esquerda) e desdobrada (dereita). As redes neurais recorrentes teñen moitas variantes. Falando en abstracto, unha RNN é unha función de tipo , onde:
é o vector de entrada; é o vector oculto; é o vector de saída; son parámetros da rede neural.
É dicir, é unha rede neural que converte unha entrada nunha saída , co vector oculto desenvolvendo o papel de memoria, é dicir, un rexistro parcial de tódolos pares entrada-saída anteriores. En cada paso, transforma a entrada nunha saída e modifica a súa memoria para axudarlle a realizar mellor o procesamento futuro.
A ilustración pode ser enganosa para moitos porque as topoloxías usuais de redes neurais adoitan organizarse en capas e o debuxo dá esa aparencia. Non obstante, o que parecen ser capas son, en realidade, diferentes pasos no tempo, desdobrados para producir a aparencia de capas.
RNN amoreada miniatura| RNN amoreada. Unha RNN amoreada, ou RNN profunda, está composta por varias redes neurais recorrentes amoreadas unhas enriba das outras. Matematicamente, estrutúrase do seguinte xeito
A capa 1 ten un vector oculto , parámetros , e converte. A capa 2 ten un vector oculto , parámetros , e converte. ... Capa ten un vector oculto , parámetros , e converte.
Cada capa funciona como unha RNN autónoma e a secuencia de saída de cada capa utilízase como secuencia de entrada á capa superior. Non hai límite conceptual para a profundidade da RNN.
Bidireccional miniatura| RNN bidireccional. Unha RNN bidireccional está composta por dúas redes neurais recorrentes, unha procesando a secuencia de entrada nunha dirección e outra na dirección oposta. Matematicamente, estrutúrase do seguinte xeito:
A RNN cara adiante procesa nunha dirección:
Mentres que a RNN cara atrás procesa na dirección oposta:
As dúas secuencias de saída concaténanse para dar a saída total: .
A RNN bidireccional permite que o modelo procese unha porción tanto no contexto do que veu antes como do que veu despois. Ao amorear varias redes neurais recorrentes bidireccionais, o modelo pode procesar unha porción de forma cada vez máis contextual. O modelo ELMo (2018) é unha rede LSTM bidireccional amoreada que toma os caracteres como entradas e produce incrustacións a nivel de palabra.
Codificador-descodificador miniatura| Un descodificador sen codificador. miniatura| RNN de codificador-descodificador sen mecanismo de atención. miniatura| RNN de codificador-descodificador con mecanismo de atención.
Pódense executar dúas redes neurais recorrentes nunha configuración de codificador-descodificador. A RNN que xoga o papel de codificador procesa unha secuencia de entrada nunha secuencia de vectores ocultos, e a RNN que xoga o papel de descodificador procesa a secuencia de vectores ocultos nunha secuencia de saída, cun mecanismo de atención opcional. Isto utilizouse para construír tradutores automáticos neurais de última xeración entre o ano 2014 e o ano 2017. Este foi un paso fundamental para o desenvolvemento dos transformadores, creados en 2017.
PixelRNN Unha RNN pode procesar datos con máis dunha dimensión. PixelRNN procesa datos con moitas direccións posibles. Por exemplo, a dirección fila por fila procesa unha cuadrícula de vectores na seguinte orde:
A diagonal BiLSTM usa dúas redes LSTM para procesar a mesma reixa. Unha procésaa desde a esquina superior esquerda ata a parte inferior dereita, de xeito que procesa dependendo do seu estado oculto e do estado da cela na parte superior e no lado esquerdo: e . A outra procésaa dende a esquina superior dereita ata a parte inferior esquerda.
Arquitecturas
Totalmente recorrente miniatura| Unha RNN totalmente conectada con 4 neuronas. As redes neurais totalmente recorrentes (FRNN, das súas siglas en inglés, Fully Recurrent Neural Networks) conectan as saídas de tódalas neuronas ás entradas de tódalas neuronas. Noutras palabras, é unha rede totalmente conectada . Esta é a topoloxía de rede neural máis xeral, porque tódalas demais topoloxías pódense representar configurando algúns pesos de conexión a cero para simular a falta de conexións entre esas neuronas. miniatura| Unha rede de Elman simple, onde .
Rede de Hopfield A rede de Hopfield é unha RNN na que tódalas conexións entre capas teñen o mesmo tamaño. Require entradas estacionarias e, polo tanto, non é unha RNN xeral, xa que non procesa secuencias de patróns. Non obstante, garante que vai converxer. Se as conexións se adestran mediante a aprendizaxe de Hebbian, a rede de Hopfield pode funcionar coma unha memoria sólida de contido direccional, resistente á alteración da conexión.
Redes de Elman e Redes de Jordan dereita|miniatura| A rede de Elman. Unha rede de Elman é unha rede de tres capas (disposta horizontalmente como x, y e z na ilustración) coa adición dun conxunto de unidades de contexto (u na ilustración). A capa media (oculta) está conectada a estas unidades de contexto fixadas cun peso de un. En cada paso de tempo, aplícase unha regra de aprendizaxe. As conexións posteriores fixas gardan unha copia dos valores anteriores das unidades ocultas nas unidades de contexto (xa que se propagan sobre as conexións antes de que se aplique a regra de aprendizaxe). Así, a rede pode manter unha especie de estado, o que lle permite realizar tarefas como a predición de secuencias que están máis alá do poder dun perceptrón multicapa estándar.
Matematicamente, unha rede de Elman pódese representar do seguinte xeito:
Denotando como:
o vector de entrada o vector de capa oculta o vector de saída , e as matrices e vector de parámetros e as funcións de activación
En canto ás redes de Jordan, son similares ás de Elman. As unidades de contexto aliméntanse dende a capa de saída en lugar da capa oculta. As unidades de contexto nunha rede de Jordan tamén se denominan capa de estado.
Matematicamente, unha rede de Jordan pódese representar do seguinte xeito:
As redes de Elman e Jordan tamén se coñecen como "Redes simples recorrentes" (SRN, das súas siglas en inglés, Simple recurrent networks), por teren unha conexión recorrente.
Memoria a longo e curto prazo