Ads Top

[Aprenda Time Series] - Modelo LSTM

Agora, estamos familiarizados com a modelagem estatística em séries temporais, mas o aprendizado de máquina está na moda agora, por isso é essencial estar familiarizado com alguns modelos de aprendizado de máquina também. Começaremos com o modelo mais popular no domínio das séries temporais - o modelo de Memória de Longo Prazo.


LSTM é uma classe de rede neural recorrente. Portanto, antes de irmos para o LSTM, é essencial entender as redes neurais e as redes neurais recorrentes.


Redes neurais


Uma rede neural artificial é uma estrutura em camadas de neurônios conectados, inspirada por redes neurais biológicas. Não é um algoritmo, mas combinações de vários algoritmos que nos permitem fazer operações complexas nos dados.


Redes Neurais Recorrentes


É uma classe de redes neurais adaptadas para lidar com dados temporais. Os neurônios do RNN possuem um estado / memória celular, e a entrada é processada de acordo com esse estado interno, que é conseguido com a ajuda de loops na rede neural. Existem módulos recorrentes de camadas ‘tanh’ em RNNs que lhes permitem reter informações. No entanto, não por muito tempo, por isso precisamos de modelos LSTM.


LSTM


É um tipo especial de rede neural recorrente, capaz de aprender dependências de dados de longo prazo. Isso é obtido porque o módulo recorrente do modelo possui uma combinação de quatro camadas interagindo entre si.



A imagem acima mostra quatro camadas de rede neural em caixas amarelas, operadores pontuais em círculos verdes, entrada em círculos amarelos e o estado da célula em círculos azuis. Um módulo LSTM tem um estado de célula e três portas que fornecem o poder de aprender, desaprender ou reter seletivamente as informações de cada uma das unidades. 


O estado da célula em LSTM ajuda a informação a fluir através das unidades sem ser alterada, permitindo apenas algumas interações lineares. Cada unidade tem uma entrada, uma saída e uma porta de esquecimento que pode adicionar ou remover as informações do estado da célula. 


A porta de esquecimento decide quais informações do estado anterior da célula devem ser esquecidas para as quais usa uma função sigmóide. A porta de entrada controla o fluxo de informações para o estado atual da célula usando uma operação de multiplicação ponto-a-ponto de ‘sigmóide’ e ‘tanh’ respectivamente. Finalmente, a porta de saída decide quais informações devem ser passadas para o próximo estado oculto


Agora que entendemos o funcionamento interno do modelo LSTM, vamos implementá-lo. Para entender a implementação do LSTM, começaremos com um exemplo simples - uma linha reta. Vamos ver se o LSTM pode aprender a relação de uma linha reta e predizê-la.


Primeiro, vamos criar o conjunto de dados que descreve uma linha reta.



Agora que os dados foram criados e divididos em treinar e testar. Vamos converter os dados da série temporal na forma de dados de aprendizagem supervisionada de acordo com o valor do período de lookback, que é essencialmente o número de atrasos que são vistos para prever o valor no tempo 't'.



Agora vamos treinar nosso modelo.


Pequenos lotes de dados de treinamento são mostrados à rede, uma execução de quando todos os dados de treinamento são mostrados ao modelo em lotes e o erro é calculado é chamada de época. As épocas devem ser executadas até o momento em que o erro estiver reduzindo.



Vamos ver como nossa previsão ficou:




Agora, devemos tentar modelar uma onda seno ou cosseno de maneira semelhante. Você pode executar o código fornecido abaixo e brincar com os parâmetros do modelo para ver como os resultados mudam.



Vamos treinar nosso modelo novamente:



Vamos plotar o resultado:



Agora você está pronto para avançar para qualquer conjunto de dados.

Nenhum comentário:

Tecnologia do Blogger.