RNN para intervalos de tempo irregulares?

13

RNNs são notavelmente bons para capturar a dependência de tempo de dados seqüenciais. No entanto, o que acontece quando os elementos da sequência não são igualmente espaçados no tempo?

Por exemplo, a primeira entrada na célula LSTM acontece na segunda-feira, depois não há dados de terça a quinta-feira e, finalmente, novas entradas para cada sexta-feira, sábado e domingo. Uma possibilidade seria ter algum tipo de vetor NULL sendo alimentado de terça a quinta-feira, mas isso parece ser uma solução boba, tanto porque as entradas NULL contaminarão os dados quanto o desperdício de recursos.

Alguma ideia? Como os RNNs lidam com esses casos? Se houver outros métodos além dos RNNs, também aceito essas sugestões.

Tfovid
fonte
Que tipo de dados são esses? Como podemos assumir que em alguns dias obtemos uma medição de algum recurso contínuo? Por exemplo, a temperatura em algum local?
usar o seguinte comando
@ user99889 Sim, isso poderia ser um exemplo, mas eu estava mais pensando em um contador. Por exemplo, você começa uma contagem em 9:32, então nada, eles duas contagens em 9:37, então nada, etc ...
Tfovid

Respostas:

2

vttdtvtdt

Além disso, dependendo exatamente de quão esparsos e irregulares os dados são, as entradas NULL devem ser uma solução razoável. Suspeito que a porta de entrada de um LSTM permita que o LSTM leia corretamente as informações de uma entrada NULL sem contaminar os dados (a memória / estado oculto) como você o coloca.

shimao
fonte
1
Na verdade, em vez da codificação one-hot, por que não apenas concatenar um único nó de entrada para o LSTM que contém a data, ou melhor ainda, o tempo antes do "presente", onde o presente é o último elemento da sequência. Nesse caso, esses nós conteriam -5 (para segunda-feira), -2 (para sexta-feira), -1 (para sábado), 0 (para domingo, ou seja, o dia mais recente). Isso contornará a necessidade de NULLs e, ao mesmo tempo (espero), codificará quanto o LSTM deve "esquecer" entre as recursões. Isso soa razoável?
Tfovid
Sim, isso deve funcionar.
Shimao
1

yt=c+ϕyt1+εt
yt=cΔt+eγΔtytΔt+ξtσΔt

ϕ

Aksakal
fonte
1

Eu acho que depende dos dados. Por exemplo, se você está processando contagens e se esqueceu de medi-las em alguns dias, a melhor estratégia é imputar os valores ausentes (por exemplo, por interpolação ou processos Gaussianos) e depois processar a série temporal imputada com uma RNN. Ao imputar, você incorporaria conhecimento.

Se a falta for significativa (estava muito quente, a medida conta em alguns dias), é melhor atribuir talvez e também anexar um vetor indicador que seja 1 se o valor estiver ausente e 0 em caso contrário.

user0
fonte