Nas redes neurais artificiais, as redes neurais recorrentes (RNNs) são projetadas para processar dados sequenciais, como texto, fala e séries temporais, onde a ordem dos elementos é importante. Ao contrário das redes neurais feedforward, que processam as entradas de forma independente, as RNNs utilizam conexões recorrentes, onde a saída de um neurônio num passo de tempo é retroalimentada como entrada para a rede no passo de tempo seguinte. Isto permite que as RNNs capturem dependências temporais e padrões dentro de sequências.

O bloco de construção fundamental da RNN é a unidade recorrente, que mantém um estado oculto — uma forma de memória que é atualizada em cada passo de tempo com base na entrada atual e no estado oculto anterior. Este mecanismo de feedback permite que a rede aprenda com entradas passadas e incorpore esse conhecimento no seu processamento atual. As RNNs têm sido aplicadas com sucesso a tarefas como reconhecimento de caligrafia conectada e não segmentada, reconhecimento de fala, processamento de linguagem natural e tradução automática neural.

No entanto, as RNNs tradicionais sofrem com o problema do desvanecimento do gradiente, que limita a sua capacidade de aprender dependências de longo alcance. Esta questão foi abordada pelo desenvolvimento da arquitetura de memória de longo e curto prazo (LSTM) em 1997, tornando-a a variante RNN padrão para lidar com dependências de longo prazo. Mais tarde, as unidades recorrentes fechadas (GRUs) foram introduzidas como uma alternativa computacionalmente mais eficiente.

Nos últimos anos, os transformers, que dependem de mecanismos de autoatenção em vez de recorrência, tornaram-se a arquitetura dominante para muitas tarefas de processamento de sequência, particularmente no processamento de linguagem natural, devido ao seu manuseio superior de dependências de longo alcance e maior paralelizabilidade. Apesar disso, as RNNs continuam a ser relevantes para aplicações onde a eficiência computacional, o processamento em tempo real ou a natureza sequencial inerente dos dados são cruciais.

História

Antes da era moderna Uma das origens das RNNs foi a neurociência. A palavra "recorrente" é usada para descrever estruturas em forma de laço na anatomia. Em 1901, Cajal observou "semicírculos recorrentes" no córtex cerebelar formados por fibras paralelas, células de Purkinje e células granulares. Em 1933, Lorente de Nó descobriu "conexões recíprocas recorrentes" pelo método de Golgi, e propôs que os laços excitatórios explicavam certos aspetos do reflexo vestíbulo-ocular. Durante a década de 1940, várias pessoas propuseram a existência de feedback (retroalimentação) no cérebro, o que contrastava com a compreensão anterior do sistema neural como uma estrutura puramente feedforward (alimentação direta). Hebb considerou o "circuito reverberante" como uma explicação para a memória de curto prazo. O artigo de McCulloch e Pitts (1943), que propôs o modelo de neurônio de McCulloch-Pitts, considerou redes que contêm ciclos. A atividade atual de tais redes pode ser afetada por uma atividade num passado indefinidamente distante. Ambos estavam interessados em laços fechados como possíveis explicações para, por exemplo, a epilepsia e a causalgia. A inibição recorrente foi propota em 1946 como um mecanismo de feedback negativo no controlo motor. Os laços de feedback neural foram um tópico comum de discussão nas Conferências Macy. Consulte para uma revisão extensiva de modelos de redes neurais recorrentes na neurociência.

thumb|Uma rede perceptron de acoplamento cruzado em malha fechada Frank Rosenblatt, em 1960, publicou os "perceptrons de acoplamento cruzado em malha fechada" (close-loop cross-coupled perceptrons), que são redes perceptron de 3 camadas cuja camada intermediária contém conexões recorrentes que mudam por meio de uma regra de aprendizagem hebbiana.F. Rosenblatt, "Perceptual Generalization over Transformation Groups", pp. 63--100 in Self-organizing Systems: Proceedings of an Inter-disciplinary Conference, 5 and 6 May 1959. Editado por Marshall C. Yovitz e Scott Cameron. Londres, Nova Iorque, [etc.], Pergamon Press, 1960. ix, 322 p. Mais tarde, em Principles of Neurodynamics (1961), ele descreveu as redes perceptron de "acoplamento cruzado em malha fechada" e "retroacopladas", e fez estudos teóricos e experimentais para a aprendizagem hebbiana nestas redes, notando que uma rede perceptron totalmente acoplada de forma cruzada é equivalente a uma rede feedforward infinitamente profunda.

Redes semelhantes foram publicadas por Kaoru Nakano em 1971, por Shun'ichi Amari em 1972, e por William A. Little em 1974, que foi reconhecido por Hopfield no seu artigo de 1982.

Outra origem da RNN foi a mecânica estatística. O modelo de Ising foi desenvolvido por Wilhelm Lenz e Ernst Ising na década de 1920 como um modelo mecânico estatístico simples de ímãs em equilíbrio. Glauber, em 1963, estudou o modelo de Ising evoluindo no tempo como um processo em direção ao equilíbrio (Dinâmica de Glauber), adicionando a componente temporal.

O modelo de Sherrington–Kirkpatrick do vidro de spin, publicado em 1975, é a rede de Hopfield com inicialização aleatória. Sherrington e Kirkpatrick descobriram que é altamente provável que a função de energia do modelo SK tenha muitos mínimos locais. No artigo de 1982, Hopfield aplicou esta teoria recentemente desenvolvida para estudar a rede de Hopfield com funções de ativação binárias. Num artigo de 1984, ele estendeu isto para funções de ativação contínuas. Tornou-se um modelo padrão para o estudo de redes neurais através da mecânica estatística.

Moderna As redes RNN modernas baseiam-se principalmente em duas arquiteturas: LSTM e BRNN.

No ressurgimento das redes neurais na década de 1980, as redes recorrentes foram estudadas novamente. Por vezes, eram chamadas de "redes iteradas". Dois trabalhos iniciais influentes foram a rede de Jordan (1986) e a rede de Elman (1990), que aplicaram a RNN ao estudo da psicologia cognitiva. Em 1993, um sistema neural de compressor de histórico resolveu uma tarefa de "Deep Learning Muito Profundo" que exigia mais de 1000 camadas subsequentes numa RNN desdobrada no tempo. A página 150 e seguintes demonstra a atribuição de crédito através do equivalente a 1.200 camadas numa RNN desdobrada.

As redes de memória de longo e curto prazo (LSTM) foram inventadas por Hochreiter e Schmidhuber em 1995 e estabeleceram recordes de precisão em múltiplos domínios de aplicação. Tornou-se a escolha padrão para a arquitetura RNN.

As redes neurais recorrentes bidirecionais (BRNN) usam duas RNNs que processam a mesma entrada em direções opostas.Schuster, Mike, e Kuldip K. Paliwal. "Bidirectional recurrent neural networks." Signal Processing, IEEE Transactions on 45.11 (1997): 2673-2681.2. Awni Hannun, Carl Case, Jared Casper, Bryan Catanzaro, Greg Diamos, Erich Elsen, Ryan Estas duas são frequentemente combinadas, dando origem à arquitetura LSTM bidirecional.

Por volta de 2006, o LSTM bidirecional começou a revolucionar o reconhecimento de fala, superando modelos tradicionais em certas aplicações de voz. Eles também melhoraram o reconhecimento de fala de vocabulário extenso e a síntese texto-fala e foram utilizados na pesquisa por voz do Google e no ditado em dispositivos Android. Quebraram recordes em melhorias na tradução automática, modelagem de linguagem e no processamento multilíngue de linguagem. Além disso, o LSTM combinado com redes neurais convolucionais (CNNs) melhorou a legendagem automática de imagens.

A ideia de transdução de sequência codificador-decodificador foi desenvolvida no início da década de 2010. Os artigos mais frequentemente citados como os criadores que produziram o seq2seq são dois artigos de 2014. [primeira versão publicada no arXiv em 10 de set de 2014] Uma arquitetura seq2seq emprega duas RNNs, tipicamente LSTM, um "codificador" e um "decodificador", para transdução de sequência, como a tradução automática. Elas tornaram-se o estado da arte na tradução automática e foram fundamentais no desenvolvimento de mecanismos de atenção e transformers.

Configurações

Um modelo baseado em RNN pode ser decomposto em duas partes: configuração e arquitetura. Várias RNNs podem ser combinadas num fluxo de dados, e o fluxo de dados em si é a configuração. Cada RNN pode ter qualquer arquitetura, incluindo LSTM, GRU, etc.

Padrão thumb|Rede neural recorrente básica comprimida (esquerda) e desdobrada (direita) As RNNs apresentam-se em muitas variantes. Falando de forma abstrata, uma RNN é uma função do tipo , onde

: vetor de entrada; : vetor oculto; : vetor de saída; : parâmetros da rede neural.

Em outras palavras, é uma rede neural que mapeia uma entrada para uma saída , com o vetor oculto desempenhando o papel de "memória", um registo parcial de todos os pares entrada-saída anteriores. A cada passo, ela transforma a entrada numa saída e modifica a sua "memória" para ajudá-la a realizar melhor o processamento futuro.

A ilustração à direita pode ser enganadora para muitos, porque as topologias práticas de redes neurais são frequentemente organizadas em "camadas" e o desenho dá essa aparência. No entanto, o que parecem ser camadas são, na verdade, diferentes passos no tempo, "desdobrados" para produzir a aparência de camadas.

RNN Empilhada thumb|RNN EmpilhadaUma RNN empilhada (stacked RNN), ou RNN profunda (deep RNN), é composta por múltiplas RNNs empilhadas umas sobre as outras. Abstratamente, está estruturada da seguinte forma:

A camada 1 tem o vetor oculto , parâmetros , e mapeia . A camada 2 tem o vetor oculto , parâmetros , e mapeia . ... A camada tem o vetor oculto , parâmetros , e mapeia .

Cada camada opera como uma RNN independente, e a sequência de saída de cada camada é usada como a sequência de entrada para a camada superior. Não há um limite conceptual para a profundidade de uma RNN empilhada.

Bidirecional

thumb|RNN BidirecionalUma RNN bidirecional (biRNN) é composta por duas RNNs: uma processa a sequência de entrada numa direção, e a outra na direção oposta. Abstratamente, está estruturada da seguinte forma:

A RNN para a frente (forward) processa numa direção:

A RNN para trás (backward) processa na direção oposta:

As duas sequências de saída são então concatenadas para dar a saída total: .

A RNN bidirecional permite que o modelo processe um token tanto no contexto do que o precedeu quanto do que o sucedeu. Ao empilhar várias RNNs bidirecionais juntas, o modelo pode processar um token de forma cada vez mais contextual. O modelo ELMo (2018) é um LSTM bidirecional empilhado que recebe entradas no nível de caractere e produz embeddings no nível da palavra.

Codificador-decodificador

thumb|Um decodificador sem um codificador thumb|RNN codificador-decodificador sem mecanismo de atenção thumb|RNN codificador-decodificador com mecanismo de atenção

Duas RNNs podem ser executadas ponta a ponta numa configuração codificador-decodificador (encoder-decoder). A RNN codificadora processa uma sequência de entrada numa sequência de vetores ocultos, e a RNN decodificadora processa a sequência de vetores ocultos para uma sequência de saída, com um mecanismo de atenção opcional. Isto foi usado para construir tradutores de tradução automática neural no estado da arte durante o período de 2014–2017. Este foi um passo fundamental para o desenvolvimento dos transformers.

PixelRNN Uma RNN pode processar dados com mais de uma dimensão. A PixelRNN processa dados bidimensionais, com muitas direções possíveis. Por exemplo, a direção linha a linha processa uma grade de vetores na seguinte ordem:

O BiLSTM diagonal usa dois LSTMs para processar a mesma grade. Um processa do canto superior esquerdo para o canto inferior direito, de forma que processa dependendo do seu estado oculto e estado de célula no topo e no lado esquerdo: e . O outro processa do canto superior direito para o canto inferior esquerdo.

Arquiteturas

Totalmente recorrente