Entendimento das redes neurais recorrentes

alt text

Implementação simplificada em Numpy

RNN é um código em laço que reutiliza quantidades calculadas em iterações anteriors. Um das principais características de uma RNN é a step function utilizada.

alt text

RNN no Keras

Aplicação nos Reviews do IMDB

Preparo dos dados

Treino dos Reviews com SimpleRNN

LSTM e GRU Layers

Além da SimpleRNN, o Keras ainda apresenta outras duas possibilidades de camada de recorrência: LSTM e GRU, que foram projetadas para evitar o 'esquecimento' das sequências anteriores no treinamento de redes em sequências de texto. Focaremos apenas na LSTM.


LSTM (Long Short-Term Memory, memória de longo prazo)

Soluciona o problema de vanising gradient problem, que é responsável por 'esquecer' as sequências prévias, transportando informações por vários timesteps. alt text

Exemplo no Keras, com o IMBD

Leve melhora devido ao 'não esquecimento' (vanishing-gradient problem). Poderia ter melhores resultados se:

Entretanto, LSTM não é tão efetivo em análise de sentimento quanto é em problemas mais complexos, como por exemplo a análise de traduções.



Recapitulando...