O que são redes neurais recorrentes?
Saiba como as redes neurais recorrentes usam dados sequenciais para resolver problemas temporais comuns vistos na tradução de idiomas e no reconhecimento de fala
Fundo azul e preto
O que são redes neurais recorrentes?

Uma rede neural recorrente (RNN) é um tipo de rede neural artificial que usa dados sequenciais ou de séries temporais. Esses algoritmos de deep learning são comumente usados para problemas ordinais ou temporais, como tradução de idiomas, processamento de linguagem natural (nlp), reconhecimento de fala e legendagem de imagens, e são incorporados a aplicativos populares, como Siri, pesquisa por voz e Google Tradutor. Como as redes neurais feedforward e convolucionais (CNNs), as redes neurais recorrentes utilizam dados de treinamento para aprender. Elas se distinguem por sua “memória”, pois recebem informações de entradas anteriores para influenciar a entrada e a saída atuais. Enquanto as redes neurais profundas tradicionais assumem que as entradas e saídas são independentes umas das outras, a saída das redes neurais recorrentes depende dos elementos anteriores dentro da sequência. Embora os eventos futuros também sejam úteis para determinar a saída de uma determinada sequência, as redes neurais recorrentes unidirecionais não levam esses eventos em conta em suas previsões.

Vamos pensar na expressão “custar os olhos da cara”, que é comumente usada quando algo é muito caro, para nos ajudar na explicação das RNNs. Para que a expressão faça sentido, ela precisa ser expressa nessa ordem específica. Como resultado, as redes recorrentes precisam levar em conta a posição de cada palavra no idioma e usam essa informação para prever a próxima palavra na sequência.

Outra característica distintiva das redes recorrentes é que elas compartilham parâmetros em cada camada da rede. Enquanto as redes feedforward têm pesos diferentes em cada nó, as redes neurais recorrentes compartilham o mesmo parâmetro de peso dentro de cada camada da rede. Dito isso, esses pesos ainda são ajustados por meio dos processos de propagação retroativa e descida de gradiente para facilitar o aprendizado por reforço.

As redes neurais recorrentes utilizam o algoritmo de propagação retroativa através do tempo (BPTT) para determinar os gradientes, o que é ligeiramente diferente da propagação retroativa tradicional, pois isso é específico para dados de sequência. Os princípios do BPTT são os mesmos da propagação retroativa tradicional, na qual o modelo é treinado calculando os erros da camada de saída na camada de entrada. Esses cálculos nos permitem ajustar os parâmetros do modelo de maneira adequada. O BPTT difere da abordagem tradicional porque soma os erros em cada etapa, enquanto as redes feedforward não precisam somar os erros, pois não compartilham parâmetros em cada camada.

Por meio desse processo, as RNNs tendem a se deparar com dois problemas, conhecidos como gradientes explosivos e gradientes que desaparecem. Essas questões são definidas pelo tamanho do gradiente, que é a inclinação da função de perda ao longo da curva de erro. Quando o gradiente é muito pequeno, ele continua diminuindo, atualizando os parâmetros de peso até que se tornem insignificantes, ou seja, 0. Quando isso ocorre, o algoritmo não está mais aprendendo. Os gradientes explosivos ocorrem quando o gradiente é muito grande, criando um modelo instável. Nesse caso, os pesos do modelo ficarão muito grandes e, eventualmente, serão representados como NaN. Uma solução para esses problemas é reduzir o número de camadas ocultas na rede neural, eliminando parte da complexidade do modelo da RNN.

Produtos em destaque

Watson Studio

Watson Machine Learning Accelerator

Tipos de redes neurais recorrentes

As redes feedforward mapeiam uma entrada para uma saída e, embora tenhamos visualizado redes neurais recorrentes dessa maneira nos diagramas acima, elas não têm essa restrição. Em vez disso, suas entradas e saídas podem variar em tamanho, e diferentes tipos de RNNs são usados para diferentes casos de uso, como geração de música, classificação de sentimento e tradução automática.

Funções de ativação comuns

Conforme discutido no artigo do Learn sobre redes neurais, uma função de ativação determina se um neurônio deve ser ativado. As funções não lineares normalmente convertem a saída de um determinado neurônio para um valor entre 0 e 1 ou -1 e 1. 

Arquiteturas de RNN variantes

Redes neurais recorrentes bidirecionais (BRNN): são uma variedade de arquitetura de redes RNNs. Enquanto as RNNs unidirecionais só podem fazer a extração de entradas anteriores para fazer previsões sobre o estado atual, as RNNs bidirecionais extraem dados futuros para melhorar a precisão. No caso do exemplo anterior “custar os olhos da cara”, o modelo pode prever melhor que o segundo termo “olhos” está no meio da frase quando sabe que ela termina em “da cara”.

Memória de curto prazo longa (LSTM): esta é uma arquitetura de RNN popular, que foi introduzida por Sepp Hochreiter e Juergen Schmidhuber como uma solução para o problema do gradiente de desaparecimento. No artigo (PDF,  388 KB) (link externo à IBM), eles trabalham para resolver o problema de dependências de longo prazo. Ou seja, se o estado anterior que está influenciando a previsão atual não estiver no passado recente, o modelo de RNN poderá não ser capaz de prever com precisão o estado atual. Como exemplo, digamos que queremos prever as palavras em itálico a seguir, “Alice é alérgica a amendoim. Ela não pode comer manteiga de amendoim". O contexto de uma alergia a amendoim pode nos ajudar a antecipar que o alimento que não pode ser consumido contém amendoim. No entanto, se esse contexto estivesse em algumas frases anteriores, seria difícil, ou mesmo impossível, para a RNN conectar as informações. Para lidar com isso, as LSTMs têm “células” nas camadas ocultas da rede neural, que possuem três portas: uma de entrada, uma de saída e uma de esquecimento. Essas portas controlam o fluxo de informações necessárias para prever a saída na rede.  Por exemplo, se pronomes de gênero, como “ela”, foram repetidos diversas vezes em frases anteriores, é possível excluí-los do estado da célula.

Unidades recorrentes fechadas (GRUs): esta variante de RNN é semelhante às LSTMs, pois também funciona para resolver o problema de memória de curto prazo dos modelos de RNN. Em vez de usar informações de regulação de “estado da célula”, ela usa estados ocultos e, em vez de três portas, tem duas: uma de redefinição e uma de atualização. Semelhante às portas nas LSTMs, as portas de redefinição e atualização controlam quanto e quais informações devem ser retidas.

Redes neurais recorrentes e IBM Cloud

Há décadas, a IBM é pioneira no desenvolvimento de tecnologias de IA e redes neurais, destacando-se pelo desenvolvimento e evolução do IBM Watson. O Watson agora é uma solução confiável para empresas que buscam aplicar técnicas avançadas de processamento de linguagem natural e deep learning em seus sistemas, usando uma abordagem em camadas comprovada para adoção e implementação de IA.

Os produtos IBM, como o IBM Watson Machine Learning, também suportam bibliotecas Python populares, como TensorFlow, Keras e PyTorch, que são comumente usadas em redes neurais recorrentes. Utilizando ferramentas como o IBM Watson Studio e o Watson Machine Learning, sua empresa pode colocar seus projetos de IA de software livre em produção sem problemas enquanto implementa e executa modelos em qualquer cloud.

Para obter mais informações sobre como começar a usar a tecnologia de inteligência artificial, descubra o IBM Watson Studio.

Inscreva-se para obter um IBMid e criar sua conta da IBM Cloud.
Soluções relacionadas
Watson Studio

Desenvolva e ajuste a escala da IA confiável em qualquer cloud. Automatize o ciclo de vida de IA para ModelOps.

Conheça o IBM Watson Studio
Cloud Paks

Software de cloud híbrida impulsionado por IA.

Conheça os IBM Cloud Paks
Soluções da IBM Cloud

Híbrida. Aberta. Resiliente. Sua plataforma e parceira para a transformação digital.

Conheça as soluções da cloud
Recursos Watson Studio

Desenvolva e ajuste a escala da IA confiável em qualquer cloud. Automatize o ciclo de vida de IA para ModelOps.

Watson Machine Learning Accelerator

Acelere sua carga de trabalho de deep learning. Acelere seu time to value com a inferência e o treinamento de modelos de IA.

Dê o próximo passo

Descubra como o IBM Watson agora é uma solução confiável para empresas que buscam aplicar técnicas avançadas de processamento de linguagem natural e deep learning a seus sistemas.

Acelere seu jogo