Minha IBM Efetue login Inscreva-se

O que é uma rede neural recorrente (RNN)?

4 de outubro de 2024 

Autor

Cole Stryker

Editorial Lead, AI Models

Gather

O que é uma rede neural recorrente?

Uma rede neural recorrente (RNN) é uma rede neural profunda treinada com dados sequenciais ou séries temporais para criar um modelo de aprendizado de máquina (ML) capaz de fazer previsões ou conclusões com base em inputs sequenciais.

Uma RNN pode ser usada para prever níveis diários de inundação com base em dados anteriores de enchentes, marés e informações meteorológicas. Além disso, as RNNs podem ser aplicadas na resolução de problemas ordinais ou temporais, como tradução de idiomas, processamento de linguagem natural (NLP), análise de sentimentos, reconhecimento de fala e geração de legendas para imagens.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionadas por especialistas sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Como funcionam as RNNs

Redes neurais recorrentes aprendem com dados de treinamento, assim como as redes neurais tradicionais, incluindo as redes neurais feedforward e as redes neurais convolucionais (CNNs). O diferencial das RNNs está na “memória”, pois elas utilizam informações dos inputs anteriores para influenciar as entradas e saídas atuais.

Enquanto as redes tradicionais de deep learning tratam entradas e saídas como elementos independentes, as redes neurais recorrentes dependem dos elementos anteriores na sequência. Embora eventos futuros pudessem ajudar na determinação da saída de uma sequência, as redes neurais recorrentes unidirecionais não conseguem incorporá-los em suas previsões.

Vamos tomar como exemplo a expressão “sentindo-se indisposto”, frequentemente usada para indicar que alguém está doente, para ilustrar o funcionamento das RNNs. Para que a expressão tenha sentido, as palavras devem ser organizadas nessa ordem específica. Por isso, as redes neurais recorrentes devem considerar a posição de cada palavra dentro da expressão e utilizar essa informação para prever a próxima palavra da sequência.

Cada palavra da expressão "sentindo-se indisposto" faz parte de uma sequência, na qual a ordem tem importância. A RNN mantém um estado oculto a cada etapa para acompanhar o contexto. O loop de feedback ocorre ao passar o estado oculto de um instante para o seguinte. O estado oculto funciona como uma memória que armazena informações das entradas anteriores. A cada etapa, a RNN processa a entrada atual (como uma palavra em uma frase) junto com o estado oculto da etapa anterior. Isso permite que a RNN "lembre" dados anteriores e utilize essa informação para influenciar a saída atual.

Outro aspecto que diferencia as redes recorrentes é o compartilhamento de parâmetros entre as camadas da rede. Enquanto as redes feedforward atribuem pesos diferentes a cada nó, as redes neurais recorrentes utilizam o mesmo parâmetro de peso em todas as camadas. No entanto, esses pesos são ajustados pelos processos de retropropagação e gradiente descendente para otimizar o aprendizado por reforço.

As redes neurais recorrentes utilizam algoritmos de propagação direta e retropropagação através do tempo (BPTT) para calcular os gradientes (ou derivadas), um processo semelhante à retropropagação tradicional, mas adaptado para dados sequenciais. Os princípios da BPTT são equivalentes aos da retropropagação tradicional, na qual o modelo se ajusta ao calcular erros da camada de saída até a camada de entrada. Esses cálculos permitem ajustar e definir os parâmetros do modelo de forma adequada. O BPTT se diferencia da abordagem tradicional porque ele soma os erros a cada etapa, enquanto as redes feedforward não precisam somá-los, já que não compartilham parâmetros entre as camadas.

Funções de ativação comuns

A função de ativação é uma função matemática aplicada à saída de cada camada de neurônios na rede para introduzir não linearidade e permitir que a rede aprenda padrões mais complexos nos dados. Sem funções de ativação, a RNN apenas realizaria transformações lineares dos dados de entrada, o que impediria o processamento de problemas não lineares. A não linearidade é essencial para o aprendizado e a modelagem de padrões complexos, especialmente em tarefas como NLP, análise de séries temporais e previsão de dados sequenciais.

A função de ativação controla a magnitude da saída do neurônio, mantendo os valores dentro de um intervalo específico (por exemplo, entre 0 e 1 ou -1 e 1), o que evita que os valores se tornem excessivamente grandes ou pequenos durante as passagens direta e reversa. Nas RNNs, as funções de ativação são aplicadas a cada etapa aos estados ocultos, determinando como a rede atualiza sua memória interna (estado oculto) com base nos dados atuais e nos estados ocultos anteriores.

As funções de ativação mais comuns (listadas a seguir) incluem:

A função sigmoide é usada para interpretar a saída como probabilidades ou controlar portas que determinam quanta informação deve ser retida ou descartada. No entanto, a função sigmoide sofre com o problema do gradiente que desaparece (explicado adiante), tornando-a menos adequada para redes mais profundas.

A função tangente hiperbólica (Tanh) é amplamente utilizada porque gera valores centralizados em torno de zero, facilitando o fluxo do gradiente e melhorando o aprendizado de dependências de longo prazo.

A ReLU (Unidade Linear Retificada) pode gerar problemas com gradientes explosivos devido à sua natureza ilimitada. Entretanto, variantes como Leaky ReLU e Parametric ReLU são utilizadas para reduzir esses problemas.

Para uma análise mais detalhada sobre o funcionamento das RNNs, confira nosso estudo aprofundado sobre redes neurais recorrentes.

Tipos de RNNs

As redes feedforward mapeiam entradas e saídas de forma direta e, embora as redes neurais recorrentes tenham sido visualizadas dessa forma nos diagramas anteriores, elas não possuem essa limitação. Em vez disso, suas entradas e saídas podem ter comprimentos variados, e diferentes tipos de RNNs são aplicados em casos específicos, como geração musical, classificação de sentimentos e tradução automática. Algumas das variantes mais comuns da arquitetura de redes neurais recorrentes incluem:

  • RNNs padrão
  • Redes neurais recorrentes bidirecionais (BRRNs)
  • Memória de curto longo prazo (LSTM)
  • Unidades recorrentes fechadas (GNUs)
  • RNN com codificador-decodificador

RNNs padrão

A versão mais simples das RNNs, em que a saída de cada etapa depende tanto da entrada atual quanto do estado oculto da etapa anterior, sofre com problemas como o gradiente que desaparece, dificultando o aprendizado de dependências de longo prazo. Elas se destacam em tarefas simples com dependências de curto prazo, como prever a próxima palavra em uma sentença curta e simples ou o próximo valor em uma série temporal básica.

As RNNs são ideais para tarefas que processam dados sequencialmente em tempo real, como a análise de dados de sensores para identificar anomalias em curtos períodos, onde as entradas são recebidas uma por vez e as previsões precisam ser feitas imediatamente com base nas entradas mais recentes.

Redes neurais recorrentes bidirecionais (BRNNs)

Enquanto as RNNs unidirecionais só utilizam entradas anteriores para prever o estado atual, as BRNNs incorporam dados futuros para aumentar a precisão da previsão. Voltando ao exemplo “sentindo-se indisposto”, um modelo baseado em BRNN pode prever com mais precisão que a segunda palavra dessa frase é “se” se souber que a última palavra da sequência é “indisposto”.

Memória de curto longo prazo (LSTM)

LSTM é uma arquitetura popular de RNN, desenvolvida por Sepp Hochreiter e Juergen Schmidhuber para solucionar o problema do gradiente desaparecendo. Esse modelo resolveu a questão das dependências de longo prazo. Ou seja, se o estado anterior que influencia a previsão atual não estiver no passado recente, o modelo RNN pode ter dificuldades para fazer uma previsão precisa.

Por exemplo, suponha que queiramos prever as palavras em itálico na frase: “Alice tem alergia a nozes. Ela não pode comer manteiga de amendoim.” O contexto da alergia a nozes permite prever que o alimento proibido contém nozes. No entanto, se esse contexto estivesse algumas frases antes, a RNN teria dificuldades, ou até seria incapaz, de estabelecer essa conexão.

Para resolver esse problema, redes LSTM possuem “células” nas camadas ocultas da rede neural artificial, com três portas: entrada, saída e esquecimento. Essas portas regulam o fluxo de informações necessário para prever a saída da rede. Por exemplo, se pronomes de gênero, como “ela”, aparecerem repetidamente em frases anteriores, eles podem ser descartados do estado da célula.

Unidades recorrentes fechadas (GRUs)

Uma GRU é semelhante a uma LSTM, pois também resolve o problema da memória de curto prazo nos modelos RNN. Em vez de um “estado de célula” para regular as informações, ela utiliza estados ocultos e, em vez de três portas, tem duas: redefinição e atualização. Assim como nas LSTMs, as portas de redefinição e atualização determinam quais informações devem ser mantidas e em que quantidade.

Devido à sua arquitetura mais simples, as GRUs são mais eficientes em termos computacionais e exigem menos parâmetros do que as LSTMs. Isso permite um treinamento mais rápido e as torna mais adequadas para aplicações em tempo real ou com restrições de recursos.

RNNs codificador-decodificador

Elas são amplamente utilizadas em tarefas de transformação de sequências, como a tradução automática. O codificador transforma a sequência de entrada em um vetor de comprimento fixo (contexto), e o decodificador usa esse contexto para gerar a sequência de saída. No entanto, o vetor de contexto com comprimento fixo pode limitar o desempenho, especialmente em sequências de entrada mais longas.

Limitações das RNNs

O uso de RNNs tem diminuído na inteligência artificial, especialmente com a ascensão de arquiteturas como os modelos de transformação, mas elas ainda não foram completamente substituídas. As RNNs eram amplamente utilizadas no processamento de dados sequenciais (como séries temporais e modelagem de linguagem) por sua capacidade de lidar com dependências temporais.

Entretanto, a vulnerabilidade das RNNs aos problemas do gradiente desaparecendo e explodindo, somada à popularidade dos modelos de transformação como BERT e GPT, contribuiu para essa queda no uso. Os transformadores capturam dependências de longo alcance com mais eficiência, são mais fáceis de paralelizar e apresentam melhor desempenho em tarefas como PLN, reconhecimento de fala e previsão de séries temporais.

Apesar disso, as RNNs ainda são utilizadas em cenários específicos onde sua natureza sequencial e seu mecanismo de memória são vantajosos, especialmente em ambientes menores e com restrições de recursos, ou em tarefas que exigem processamento recorrente de dados.

Para quem deseja explorar esses casos de uso, o Keras é uma biblioteca de código aberto popular, agora integrada ao TensorFlow, oferecendo uma interface Python para RNNs. Sua API foi desenvolvida para facilitar o uso e a personalização, permitindo que os usuários definam suas próprias camadas de células RNN com comportamentos personalizados.

Mistura de Especialistas | Podcast

Decodificando a IA: resumo semanal das notícias

Junte-se a nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Soluções relacionadas

Soluções relacionadas

IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real