Obtenha o máximo dos LSTMs no seu problema de previsão de sequência

Obtenha o máximo dos LSTMs no seu problema de previsão de sequência

Long Short-Term Memory (LSTM) Redes Neurais Recorrentes são um tipo poderoso de aprendizado profundo adequado para problemas de predição de sequência.

Uma possível preocupação ao usar LSTMs é se a complexidade adicional do modelo está melhorando a habilidade do seu modelo ou está de fato resultando em menos habilidade do que modelos mais simples.

Neste post, você descobrirá experimentos simples que pode executar para garantir que está obtendo o máximo dos LSTMs em seu problema de predição de sequência.

Depois de ler esta postagem, você saberá:

  • Como testar se seu modelo está explorando a dependência de ordem em seus dados de entrada.
  • Como testar se seu modelo está aproveitando a memória em seu modelo LSTM.
  • Como testar se seu modelo está aproveitando o BPTT ao ajustar seu modelo.

Dê início ao seu projeto com meu novo livro Long Short-Term Memory Networks With Python, incluindo tutoriais passo a passo e a Código-fonte Python arquivos para todos os exemplos.

Vamos mergulhar.

Obtenha o máximo dos LSTMs no seu problema de previsão de sequência

Obtenha o máximo dos LSTMs no seu problema de previsão de sequência
Foto de DoD News, alguns direitos reservados.

3 capacidades do LSTMS

A rede neural recorrente LSTM tem alguns recursos-chave que dão ao método seu poder impressionante em uma ampla gama de problemas de predição de sequência.

Sem mergulhar na teoria dos LSTMs, podemos resumir alguns comportamentos discretos dos LSTMs que podemos configurar em nossos modelos:

  • Dependência de ordem. Os problemas de predição de sequência requerem uma ordenação entre as observações, ao passo que os problemas de aprendizado supervisionado mais simples não, e esta ordem pode ser randomizada antes do treinamento e da previsão. Um problema de predição de sequência pode ser transformado em uma forma mais simples ao randomizar a ordem das observações.
  • Memória. LSTMs têm uma memória interna em observações em sequências de entrada, enquanto redes neurais simples, como Perceptrons Multicamadas, não. Os LSTMs podem perder essa memória redefinindo o estado interno após cada observação de entrada.
  • BPTT. As redes neurais recorrentes usam um algoritmo de treinamento que estima a direção das atualizações de peso em todas as etapas de tempo de uma sequência de entrada, enquanto outros tipos de redes são limitados a amostras únicas (excluindo a média entre lotes de entradas em ambos os casos). Os LSTMs podem desconsiderar a contribuição do erro de passos de tempo anteriores nas estimativas de gradiente, trabalhando com sequências de uma observação de comprimento.

Esses três recursos e sua configurabilidade em uma forma mais simples fornecem a base para três experimentos que você pode realizar para ver exatamente quais propriedades dos LSTMs você pode e está aproveitando em seu problema de predição de sequência.

Precisa de ajuda com LSTMs for Sequence Prediction?

Faça meu curso gratuito por e-mail de 7 dias e descubra 6 arquiteturas LSTM diferentes (com código).

Clique para se inscrever e também obter uma versão gratuita do Ebook em PDF do curso.

Comece seu mini-curso grátis agora!

1. Você está explorando a dependência da ordem?

Uma característica fundamental dos problemas de previsão de sequência é que existe uma dependência de ordem entre as observações.

Ou seja, a ordem das observações é importante.

Suposição: Espera-se que a ordem das observações seja importante para fazer previsões em problemas de previsão de sequência.

Você pode verificar se essa suposição é verdadeira desenvolvendo uma linha de base de desempenho com um modelo que usa apenas a observação anterior como entrada e embaralha os conjuntos de dados de treinamento e teste.

Isso pode ser feito de várias maneiras. Dois exemplos de implementação incluem:

  • Um Perceptron Multicamadas (MLP) com conjuntos de treinamento e teste embaralhados.
  • Um LSTM com treinamento embaralhado e conjuntos de teste com atualizações e redefinições de estado após cada amostra (tamanho do lote de 1).

Teste: Se a dependência de ordem for importante para o problema de previsão, então um modelo que explora a ordem entre as observações em cada sequência de entrada e entre as sequências de entrada deve atingir um desempenho melhor do que um modelo que não o faz.

2. Você está explorando a memória LSTM?

Um recurso chave dos LSTMs é que eles podem se lembrar em longas sequências de entrada.

Ou seja, cada unidade de memória mantém um estado interno que pode ser pensado como variáveis ​​locais que são usadas ao fazer previsões.

Suposição: Espera-se que o estado interno do modelo seja importante para modelar a habilidade.

Você pode verificar se essa suposição é verdadeira desenvolvendo uma linha de base de desempenho com um modelo que não tem memória de uma amostra para a próxima.

Isso pode ser conseguido redefinindo o estado interno do LSTM após cada observação.

Teste: Se a memória interna for importante para o problema de predição, um modelo que possui memória em observações em uma sequência de entrada deve ter um desempenho melhor do que um modelo que não possui.

3. Você está explorando a retropropagação ao longo do tempo?

Uma chave para a forma como as redes neurais recorrentes são treinadas é o algoritmo Backpropagation through time (BPTT).

Este algoritmo permite que o gradiente de atualizações de peso seja estimado a partir de todas as observações na sequência (ou um subconjunto no caso de BPTT truncado).

Suposição: Espera-se que o algoritmo de atualização de peso BPTT seja importante para modelar habilidades em problemas de predição de sequência.

Você pode verificar se essa suposição é verdadeira desenvolvendo uma linha de base de desempenho em que as estimativas de gradiente são baseadas em um único intervalo de tempo.

Isso pode ser conseguido dividindo as sequências de entrada de modo que cada observação represente uma única sequência de entrada. Isso seria independente de quando as atualizações de peso são programadas e quando o estado interno é redefinido.

Teste: Se o BPTT for importante para o problema de predição, então um modelo que estima o gradiente para atualizações de peso para várias etapas de tempo deve obter melhor desempenho do que um modelo que usa uma única etapa de tempo.

Resumo

Nesta postagem, você descobriu três recursos principais dos LSTMs que dão à técnica seu poder e como você pode testar essas propriedades em seus próprios problemas de predição de sequência.

Especificamente:

  • Como testar se seu modelo está explorando a dependência de ordem em seus dados de entrada.
  • Como testar se seu modelo está aproveitando a memória em seu modelo LSTM.
  • Como testar se seu modelo está aproveitando o BPTT ao ajustar seu modelo.

Você tem alguma pergunta?
Poste suas perguntas nos comentários abaixo e farei o meu melhor para responder.

Desenvolva LSTMs para Predição de Sequência hoje!

Redes de memória de longo prazo com Python

Desenvolva seus próprios modelos LSTM em minutos

... com apenas algumas linhas de código python

Descubra como em meu novo Ebook:
Redes de memória de longo prazo com Python

Ele fornece tutoriais de auto-estudo em tópicos como:
CNN LSTMs, codificador-decodificador LSTMs, modelos generativos, preparação de dados, fazer previsões e muito mais...

Finalmente traga redes neurais recorrentes LSTM para
Seus projetos de previsão de sequência

Ignore os acadêmicos. Apenas resultados.

Veja o que há dentro

Você também pode estar interessado em