O que é uma rede neural recorrente?

12

Surpreendentemente, isso não foi feito antes - pelo menos eu não encontrei nada além de algumas perguntas vagamente relacionadas.

Então, o que é uma rede neural recorrente e quais são suas vantagens em relação aos RNs regulares?

olinarr
fonte
2
Nos anos 90, Mark W. Tilden introduziu o primeiro andador de robótica BEAM. O sistema é baseado no neurônio nv, que é uma rede neural oscilante. Tilden chamou o conceito de bicores, mas é o mesmo que uma rede neural recorrente. Explicar o trabalho interno em algumas frases é um pouco complicado. A maneira mais fácil de introduzir a tecnologia é uma rede booleana autônoma. Essa rede de portas lógicas contém um loop de feedback, o que significa que o sistema está oscilando. Ao contrário de uma porta lógica booleana, uma rede neural recorrente possui mais recursos e pode ser treinada por algoritmos.
Manuel Rodriguez
1
este blog tem uma explicação incrível: colah.github.io/posts/2015-08-Understanding-LSTMs
MRE

Respostas:

6

As redes neurais recorrentes (RNNs) são uma classe de arquitetura de rede neural artificial inspirada na conectividade cíclica de neurônios no cérebro. Ele usa loops de funções iterativas para armazenar informações.

Diferença com as redes neurais tradicionais usando imagens deste livro :

insira a descrição da imagem aqui

E uma RNN:

insira a descrição da imagem aqui

Observe a diferença - as conexões das redes neurais feedforward não formam ciclos. Se relaxarmos essa condição e permitirmos conexões cíclicas, obteremos redes neurais recorrentes (RNNs). Você pode ver isso na camada oculta da arquitetura.

Embora a diferença entre um perceptron de múltiplas camadas e uma RNN possa parecer trivial, as implicações para o aprendizado de sequência são abrangentes. Um MLP pode mapear apenas de vetores de entrada para vetores de saída , enquanto um RNN pode, em princípio, mapear de todo o histórico de entradas anteriores para cada saída . De fato, o resultado equivalente à teoria da aproximação universal para MLPs é que um RNN com um número suficiente de unidades ocultas pode aproximar qualquer mapeamento de sequência a sequência mensurável com precisão arbitrária.

Comida para levar:

As conexões recorrentes permitem que uma 'memória' de entradas anteriores persista no estado interno da rede e, assim, influencia a saída da rede.

Falar em termos de vantagens não é apropriado, pois ambos são de ponta e são particularmente bons em determinadas tarefas. Uma ampla categoria de tarefas nas quais a RNN se destaca é:

Rotulagem de sequência

O objetivo da identificação de sequências é atribuir sequências de etiquetas, desenhadas a partir de um alfabeto fixo, a sequências de dados de entrada.

Ex: transcreva uma sequência de recursos acústicos com palavras faladas (reconhecimento de fala) ou uma sequência de quadros de vídeo com gestos com as mãos (reconhecimento de gestos).

Algumas das subtarefas na rotulagem de sequência são:

Classificação de sequência

As sequências de etiqueta são limitadas a ter o comprimento um. Isso é chamado de classificação de sequência, pois cada sequência de entrada é atribuída a uma única classe. Exemplos de tarefas de classificação de sequências incluem a identificação de uma única obra falada e o reconhecimento de uma carta manuscrita individual.

Classificação por segmento

Classificação de segmento refere-se às tarefas em que as seqüências de destino consistem em vários rótulos, mas os locais dos rótulos - ou seja, as posições dos segmentos de entrada aos quais os rótulos se aplicam - são conhecidos antecipadamente.

ingênuo
fonte
resposta muito agradável obrigado! Estou começando a me arrepender de não ter feito a aula de teoria de Sistemas e Controle. Parece coisas úteis, loops de feedback e tudo isso, para saber no contexto de NNs.
Olinarr 29/04/19
1
Bem-vinda! Eles certamente são úteis.
Ingénuo
9

Uma rede neural recorrente (RNN) é uma rede neural artificial que contém conexões reversas ou automáticas, em vez de apenas ter conexões diretas, como em uma rede neural feed-forward (FFNN). O adjetivo "recorrente" refere-se, portanto, a essas conexões reversas ou automáticas, que criam loops nessas redes.

Uma RNN pode ser treinada usando retropropagação através do tempo (BBTT), de modo que essas conexões reversas ou automáticas "memorizem" as entradas vistas anteriormente. Portanto, essas conexões são usadas principalmente para rastrear relações temporais entre elementos de uma sequência de entradas, o que torna os RNNs adequados para a previsão de sequência e tarefas semelhantes.

Existem vários modelos de RNN: por exemplo, RNNs com unidades LSTM ou GRU. LSTM (ou GRU) é uma RNN cujas unidades únicas realizam uma transformação mais complexa do que uma unidade em uma "RNN simples", que executa uma transformação linear da entrada seguida pela aplicação de uma função não linear (por exemplo, ReLU) a esta transformação linear. Em teoria, "RNN simples" são tão poderosos quanto RNNs com unidades LSTM. Na prática, eles sofrem com o problema dos "gradientes que desaparecem e explodem". Portanto, na prática, LSTMs (ou unidades recorrentes sofisticadas similares) são usadas.

nbro
fonte