Fundamentos de IA

O que são RNNs e LSTMs em Aprendizado Profundo?

mm
Adicione Unite.AI às suas fontes preferidas no Google

Muitos dos avanços mais impressionantes em processamento de linguagem natural e chatbots de IA são impulsionados por Redes Neurais Recorrentes (RNNs) e Redes de Memória de Curto Prazo (LSTM). RNNs e LSTMs são arquiteturas de redes neurais especiais que são capazes de processar dados sequenciais, dados em que a ordem cronológica é importante. LSTMs são basicamente versões aprimoradas de RNNs, capazes de interpretar sequências de dados mais longas. Vamos dar uma olhada em como RNNs e LSTMs são estruturados e como eles permitem a criação de sistemas de processamento de linguagem natural sofisticados.

O que são Redes Neurais Feed-Forward?

Então, antes de falarmos sobre como as Redes de Memória de Curto Prazo (LSTM) e Redes Neurais Convolucionais (CNN) funcionam, devemos discutir o formato de uma rede neural em geral.

Uma rede neural é projetada para examinar dados e aprender padrões relevantes, para que esses padrões possam ser aplicados a outros dados e novos dados possam ser classificados. Redes neurais são divididas em três seções: uma camada de entrada, uma camada oculta (ou múltiplas camadas ocultas) e uma camada de saída.

A camada de entrada é o que recebe os dados na rede neural, enquanto as camadas ocultas são as que aprendem os padrões nos dados. As camadas ocultas no conjunto de dados são conectadas às camadas de entrada e saída por “pesos” e “viés” que são apenas suposições de como os pontos de dados estão relacionados entre si. Esses pesos são ajustados durante o treinamento. À medida que a rede treina, as suposições do modelo sobre os dados de treinamento (os valores de saída) são comparadas com as etiquetas de treinamento reais. Durante o treinamento, a rede deve (esperançosamente) se tornar mais precisa em prever relações entre pontos de dados, para que possa classificar novos pontos de dados com precisão. Redes neurais profundas são redes que têm mais camadas no meio/mais camadas ocultas. Quanto mais camadas ocultas e mais neurônios/nós o modelo tiver, melhor o modelo pode reconhecer padrões nos dados.

Redes neurais feed-forward regulares, como as que descrevi acima, são frequentemente chamadas de “redes neurais densas”. Essas redes neurais densas são combinadas com diferentes arquiteturas de rede que se especializam em interpretar diferentes tipos de dados.

O que são RNNs (Redes Neurais Recorrentes)?

Redes Neurais Recorrentes (RNNs) pegam o princípio geral das redes neurais feed-forward e as habilitam a lidar com dados sequenciais, dando ao modelo uma memória interna. A parte “recorrente” do nome RNN vem do fato de que as entradas e saídas formam um loop. Uma vez que a saída da rede é produzida, a saída é copiada e retornada à rede como entrada. Ao fazer uma decisão, não apenas a entrada e saída atuais são analisadas, mas também a entrada anterior é considerada. Para colocar de outra forma, se a entrada inicial para a rede for X e a saída for H, tanto H quanto X1 (a próxima entrada na sequência de dados) são alimentados na rede para a próxima rodada de aprendizado. Dessa forma, o contexto dos dados (as entradas anteriores) é preservado à medida que a rede treina.

O resultado dessa arquitetura é que RNNs são capazes de lidar com dados sequenciais. No entanto, RNNs sofrem de alguns problemas. RNNs sofrem do problema do gradiente desaparecendo e do gradiente explodindo.

O comprimento das sequências que um RNN pode interpretar é bastante limitado, especialmente em comparação com LSTMs.

O que são LSTMs (Redes de Memória de Curto Prazo)?

Redes de Memória de Curto Prazo (LSTMs) podem ser consideradas extensões de RNNs, aplicando novamente o conceito de preservar o contexto das entradas. No entanto, LSTMs foram modificados de várias maneiras importantes que permitem que eles interpretem dados passados com métodos superiores. As alterações feitas nos LSTMs lidam com o problema do gradiente desaparecendo e permitem que LSTMs considerem sequências de entrada muito mais longas.

Modelos LSTMs são compostos por três componentes diferentes, ou portas. Há uma porta de entrada, uma porta de saída e uma porta de esquecimento. Assim como RNNs, LSTMs consideram as entradas do tempo anterior ao modificar a memória do modelo e os pesos de entrada. A porta de entrada toma decisões sobre quais valores são importantes e devem ser passados pelo modelo. Uma função sigmoide é usada na porta de entrada, que toma decisões sobre quais valores passar pelo recorrente. Zero faz com que o valor seja descartado, enquanto 1 o preserva. Uma função TanH é usada aqui também, que decide quão importante o valor de entrada é para o modelo, variando de -1 a 1.

Depois que as entradas atuais e o estado de memória são considerados, a porta de saída decide quais valores passar para o próximo passo de tempo. Na porta de saída, os valores são analisados e recebem uma importância que varia de -1 a 1. Isso regula os dados antes que sejam passados para o próximo cálculo do passo de tempo. Finalmente, o trabalho da porta de esquecimento é descartar informações que o modelo considera desnecessárias para tomar uma decisão sobre a natureza dos valores de entrada. A porta de esquecimento usa uma função sigmoide nos valores, produzindo números entre 0 (esqueça isso) e 1 (mantenha isso).

Uma rede neural LSTM é composta por camadas LSTM especiais que podem interpretar dados de palavras sequenciais e as camadas densamente conectadas como as descritas acima. Uma vez que os dados passam pelas camadas LSTM, eles prosseguem para as camadas densamente conectadas.

Blogueiro e programador com especialidades em Machine Learning e Deep Learning tópicos. Daniel espera ajudar os outros a usar o poder da IA para o bem social.