Como muitos outros, eu achei os recursos aqui e aqui imensamente úteis para entender as células LSTM. Estou confiante de que entendo como os valores fluem e são atualizados, e estou confiante o suficiente para adicionar as mencionadas "conexões do olho mágico", etc. também.
No meu exemplo, tenho em cada etapa um vetor de entrada de comprimento ie um vetor de saída de comprimento o, em que o < i.
O que nenhuma das páginas realmente abordou é como elas são organizadas e treinadas.
Eu tenho 2 perguntas:
- Nos meus dados de treinamento, tenho muitos pares de vetores de entrada / saída correspondentes a muitas, muitas unidades de tempo. Suponha que eu treine o LSTM com todos os dados. Posso então executar uma entrada de comprimento arbitrária definida por ele? O que quero dizer é que, se eu tiver dados de treinamento para, digamos, todo o ano de 2015 e 2016, posso executar dados na rede para 2017? Ou talvez de 2017 a 2020?
- De acordo com o que li, parece que tenho uma célula LSTM por unidade de tempo; portanto, se eu tenho muitas unidades de tempo, tenho muitas células LSTM encadeadas. Como o comprimento da cadeia depende do comprimento dos dados que desejo executar na rede e, presumivelmente, é arbitrário, não consigo ver como treinaria isso, a menos que treine apenas uma única célula LSTM que, em seguida, duplique um número vezes. Então, parece que eu treinaria uma única célula LSTM e, em seguida, as uniríamos
npara uma determinada lista de vetores de entrada de comprimenton? Mesmo que uma única célula LSTM contenha vários elementos e funções, parece que não é suficiente capturar tanta informação em algo tão pequeno?
Obrigado. Existem outros recursos que eu possa consumir (relativamente rápido) que me ajudarão a entender os detalhes da implementação? Os 2 links acima forneceram uma imagem fantástica de alto nível do que está acontecendo, mas não conseguiram capturar esses detalhes.