- View
Redes Neurais Recorrentes
As Redes Neuronais Recorrentes (Recurrent Neural Networks – RNNs) são um tipo de rede neuronal utilizado, principalmente, para o processamento de dados sequenciais. As redes recorrentes processam a sequência elemento por elemento.
Os dados sequenciais, ou sequências, são compostos por elementos que surgem uns após os outros. Exemplos disso são: dados textuais (em que os elementos são palavras individuais); gravações de áudio (elementos são amostras individuais); séries temporais (elementos são medições ao longo do tempo); sequências genéticas (elementos são nucleótidos individuais), entre outros. As redes recorrentes processam a sequência elemento a elemento.
Para processar um elemento na posição t, todos os elementos anteriores têm de ser processados. E, para que os elementos da sequência sejam ligados num todo coerente, os valores das camadas ocultas são partilhados entre o processamento de elementos sucessivos da entrada. Este funcionamento é normalmente representado graficamente, como mostrado na figura abaixo.
Rede neural recorrente
(imagem retirada de https://d2l.ai/chapter_recurrent-neural-networks/index.html)
As redes neuronais recorrentes são, hipoteticamente, capazes de processar sequências infinitamente longas, elemento por elemento. No entanto, ao treinar este tipo de redes, observou-se que elas esquecem. Se as sequências forem demasiado longas, a rede começa a esquecer o que viu no início e guarda apenas as informações mais recentes ao nível das camadas ocultas. Esta observação levou à criação de neurónios especiais chamados LSTM (Long Short-Term Memory) e GRU (Gated Recurrent Unit), cujos detalhes não abordaremos aqui devido à sua complexidade.
Uma das soluções para este problema são as redes neuronais recorrentes bidireccionais (Bidirectional Recurrent Neural Networks): nestas redes, por um lado, a sequência é processada do início para o fim, e por outro, do fim para o início. A representação de entrada dos elementos individuais é composta pelas representações combinadas desses dois percursos, como ilustrado na figura abaixo.
Rede neural recorrente bidirecional - elementos sequenciais
(imagem retirada de https://www.arxiv-vanity.com/papers/1506.00019/)
Na tabela abaixo, vamos apresentar brevemente alguns dos exemplos mais conhecidos, mostrando-os graficamente na coluna da esquerda e descrevendo a rede e as suas áreas de aplicação na coluna da direita.
|
ARQUITETURA |
CLARIFICAÇÃO E EXEMPLOS DE APLICAÇÃO |
|---|---|
|
|
Este tipo de rede corresponde a tarefas em que a entrada é uma sequência e a saída é uma representação vetorial de um comprimento fixo. Redes deste tipo são chamadas codificadores, e os vetores obtidos de comprimentos fixos por contexto. As tarefas em que encontramos este tipo de redes são várias tarefas de classificação, como a classificação de faixas de áudio ou a classificação de texto. |
|
|
Ao contrário do exemplo anterior, a entrada para este tipo de rede é uma representação vetorial de comprimento fixo, e a saída é uma sequência. Este tipo de rede chama-se descodificador (decoder). As tarefas em que utilizamos descodificadores incluem a geração de títulos para imagens. |
|
|
Este tipo de rede é uma combinação dos dois tipos anteriores e é chamado de arquitetura codificador-decodificador (encoder-decoder). A tarefa do codificador é criar uma representação (contexto) baseada na sequência de entrada, que o decodificador pode usar para gerar uma nova sequência de saída. Este tipo de rede é utilizado em tarefas como tradução automática ou geração de resumos (abstracts). |
|
|
Este tipo de rede permite a geração de saídas para cada elemento da entrada. Como podes ver, tanto a entrada como a saída são sequências. As tarefas em que encontramos este tipo de rede incluem, por exemplo, tarefas de anotação (ou marcação) de elementos individuais.. |
Uma das principais desvantagens das redes neuronais recorrentes é a incapacidade de serem paralelizadas: para processar um elemento na posição t, é necessário que todos os elementos anteriores já tenham sido processados. Por isso, o treino de redes neuronais recorrentes requer muito mais tempo e recursos do que o treino das redes neuronais convolucionais que conhecemos na lição anterior. Estas limitações levaram ao aparecimento do mecanismo de atenção e dos transformers, redes neuronais que serão abordadas com mais detalhe na próxima aula.
As gravações de áudio também podem ser processadas usando redes neuronais convolucionais. Ou seja, uma gravação de áudio pode ser dividida em fragmentos, pequenos trechos com alguns segundos de duração, e depois podem ser criados espectrogramas para cada parte. Um espectrograma é uma representação gráfica de todas as frequências de som presentes numa gravação áudio. As imagens resultantes podem então ser usadas como entradas para redes neuronais convolucionais e utilizadas para análise de áudio.

Um exemplo de espectrograma





