Maneira correta de usar rede neural recorrente para análise de séries temporais

67

As redes neurais recorrentes diferem das "regulares" pelo fato de terem uma camada de "memória". Devido a essa camada, as NNs recorrentes devem ser úteis na modelagem de séries temporais. No entanto, não sei se entendi corretamente como usá-los.

Digamos que possuo as seguintes séries temporais (da esquerda para a direita) :, [0, 1, 2, 3, 4, 5, 6, 7]meu objetivo é prever o i-ésimo ponto usando pontos i-1e i-2como entrada (para cada i>2). Em uma ANN "regular" e não recorrente, eu processaria os dados da seguinte maneira:

 target| input
      2| 1 0
      3| 2 1
      4| 3 2
      5| 4 3
      6| 5 4
      7| 6 5 

Eu criaria uma rede com duas entradas e um nó de saída e a treinaria com os dados acima.

Como é necessário alterar esse processo (se houver) no caso de redes recorrentes?

Boris Gorelik
fonte
Você descobriu como estruturar os dados para o RNN (por exemplo, LSTM)? obrigado
mik1904

Respostas:

49

O que você descreve é ​​de fato uma abordagem de "janela de tempo deslizante" e é diferente das redes recorrentes. Você pode usar esta técnica com qualquer algoritmo de regressão. Existe uma grande limitação a essa abordagem: os eventos nas entradas só podem ser correlacionados com outras entradas / saídas que se situam no máximo em intervalos de tempo, onde t é o tamanho da janela.

Por exemplo, você pode pensar em uma cadeia de Markov da ordem t. RNNs não sofrem com isso em teoria, no entanto, na prática, o aprendizado é difícil.

y=WxyWx

xiyi=Wxi+Wryi1

Wr

hi

h0=0
hi=σ(W1xi+Wrhi1)
yi=W2hi

σW1W2Wr

Aqui está um diagrama da estrutura:

esquemático

bayerj
fonte
2
Errado ao ver alguma semelhança de redes recorrentes com filtros Kalman? Vejo isso porque a saída anterior afeta a saída atual. Qual é o benefício prático das redes recorrentes?
Vas
10
Você está escrevendo no sentido de que ambos são modelos de espaço de estado. No entanto, há muita diferença: os KFs são totalmente probabilísticos, no sentido de que os estados ocultos têm um significado probabilístico adequado. As RNNs, por outro lado, são determinísticas e apenas as saídas podem ser usadas para modelar uma distribuição de maneira discriminatória. Além disso, os KFs são tipicamente estimados com EM, enquanto os RNNs são estimados com métodos baseados em gradiente. Se você quiser mais detalhes, sinta-se à vontade para postar uma pergunta e me enviar o link, mas os comentários são muito restritos para isso.
22412 bayerj #
11
Não, a janela do tempo de deslizamento não finge na saída da rede, apenas na entrada.
bayerj
2
@bayerj ótima informação, mas acho que você não respondeu à pergunta. Como você estrutura os vetores de saída de entrada que não estão em uma janela de tempo deslizante para RNNs? Você pode fornecer algumas amostras com o conjunto de dados do OP?
Levitikon
11
Esta é uma descrição muito informativa das RNNs, mas não consigo responder à pergunta do OP: Como é necessário alterar o [treinamento] no caso de redes recorrentes?
wehnsdaefflae
9

Você também pode considerar simplesmente usar várias transformações de séries temporais para os dados de entrada. Apenas por um exemplo, as entradas podem ser:

  1. o valor do intervalo mais recente (7)
  2. o próximo valor do intervalo mais recente (6)
  3. o delta entre o mais recente e o próximo mais recente (7-6 = 1)
  4. o terceiro valor do intervalo mais recente (5)
  5. o delta entre o segundo e o terceiro mais recente (6-5 = 1)
  6. a média dos três últimos intervalos ((7 + 6 + 5) / 3 = 6)

Portanto, se suas entradas para uma rede neural convencional fossem essas seis partes de dados transformados, não seria uma tarefa difícil para um algoritmo de retropropagação comum aprender o padrão. No entanto, você teria que codificar as transformações que pegam os dados brutos e as transformam nas 6 entradas acima da sua rede neural.

rossdavidh
fonte
11
Você coloca muito conhecimento de domínio nisso. E se você não reconhecer o padrão da série cronológica? Como você constrói um modelo que pode, especialmente se ele depende de insumos infinitamente distantes no passado?
bayerj
Infinito certamente seria complicado. No entanto, se você inserir transformações de dados que não são relevantes para esse domínio, o algoritmo de aprendizado poderá descobrir isso com facilidade e ajustar os pesos de acordo. Portanto, não será um grande problema, desde que você tenha transformadas os dados que são relevantes. Portanto, ter muitas transformações diferentes disponíveis melhora suas chances de sucesso.
rossdavidh
01[0.1,0.1]101
2
Eu não gostaria de dizer que você nunca deve usar redes neurais recorrentes; pelo contrário. No entanto, se a tarefa (conforme declarada na pergunta) é prever o i-ésimo dos pontos (i-1) e (i-2), é possível obter um resultado melhor mais rapidamente utilizando esse conhecimento. Não pretendo sugerir que as RNNs nem sempre sejam uma boa idéia, mas não há problema em usar o conhecimento de domínio necessário para acelerar o processo de treinamento (e diminuir a probabilidade de o treinamento ser pego no mínimo local, etc.) .
Rossdavidh 11/03/11
4

Outra possibilidade são as Redes Neurais Consistentes Históricas (HCNN) . Essa arquitetura pode ser mais apropriada para a configuração mencionada acima, porque elimina a distinção frequentemente arbitrária entre variáveis ​​de entrada e saída e, em vez disso, tenta replicar toda a dinâmica subjacente de todo o sistema através do treinamento com todos os observáveis.

Quando eu trabalhava na Siemens, publiquei um artigo sobre essa arquitetura em um livro da Springer Verlag: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: modelagem de mercado, previsão e análise de risco com redes neurais consistentes históricas

Apenas para dar uma idéia sobre o paradigma, aqui está um pequeno trecho:

Neste artigo, apresentamos um novo tipo de NN recorrente, chamada rede neural consistente histórica (HCNN). Os HCNNs permitem a modelagem de sistemas dinâmicos não lineares de alta interação em várias escalas de tempo. Os HCNNs não fazem distinção entre entradas e saídas, mas modelam observáveis ​​embutidos na dinâmica de um grande espaço de estado.

[...]

O RNN é usado para modelar e prever um sistema dinâmico aberto usando uma abordagem de regressão não linear. Muitas aplicações técnicas e econômicas do mundo real devem, no entanto, ser vistas no contexto de grandes sistemas nos quais várias dinâmicas (não lineares) interagem entre si no tempo. Projetado em um modelo, isso significa que não diferenciamos entre entradas e saídas, mas falamos sobre observáveis. Devido à observabilidade parcial de grandes sistemas, precisamos de estados ocultos para poder explicar a dinâmica dos observáveis. Observáveis ​​e variáveis ​​ocultas devem ser tratadas pelo modelo da mesma maneira. O termo observável abrange as variáveis ​​de entrada e saída (ieYτ:=(yτ,uτ)) Se conseguirmos implementar um modelo no qual a dinâmica de todos os observáveis ​​possa ser descrita, estaremos em posição de fechar o sistema aberto.

... e da conclusão:

A modelagem conjunta de variáveis ​​ocultas e observadas em grandes redes neurais recorrentes fornece novas perspectivas para o planejamento e o gerenciamento de riscos. A abordagem de conjunto baseada no HCNN oferece uma abordagem alternativa à previsão de futuras distribuições de probabilidade. Os HCNNs fornecem uma descrição perfeita da dinâmica dos observáveis ​​no passado. No entanto, a observabilidade parcial do mundo resulta em uma reconstrução não única das variáveis ​​ocultas e, portanto, em diferentes cenários futuros. Como o desenvolvimento genuíno da dinâmica é desconhecido e todos os caminhos têm a mesma probabilidade, a média do conjunto pode ser considerada a melhor previsão, enquanto a largura de banda da distribuição descreve o risco de mercado. Hoje, usamos previsões da HCNN para prever preços de energia e metais preciosos para otimizar o momento das decisões de compras. Os trabalhos atualmente em andamento dizem respeito à análise das propriedades do conjunto e à implementação desses conceitos em aplicações práticas de gerenciamento de riscos e mercado financeiro.

Partes do artigo podem ser vistas publicamente: Aqui

vonjd
fonte
Você tem uma implementação disponível para baixar e testar?
Julien L
@JulienL: Infelizmente não, porque esse foi um trabalho exclusivo da Siemens.
vonjd
Que pena, isso parecia promissor.
Julien L
@JulienL: Convido você a entrar em contato com Georg, meu co-autor. Seu email está na primeira página do artigo (veja o link acima).
vonjd