Estou tentando entender a arquitetura das RNNs. Encontrei este tutorial que foi muito útil: http://colah.github.io/posts/2015-08-Understanding-LSTMs/
Como isso se encaixa em uma rede de feed-forward? Essa imagem é apenas outro nó em cada camada?
neural-networks
lstm
Adam12344
fonte
fonte
Respostas:
A é, de fato, uma camada completa. A saída da camada é , na verdade é a saída do neurônio, que pode ser conectada a uma camada softmax (se você deseja uma classificação para o tempo , por exemplo) ou qualquer outra coisa, como outra camada LSTM, se desejar vá mais fundo. A entrada desta camada é o que a diferencia da rede feedforward regular: leva a entrada e o estado completo da rede no passo anterior (ambos e as outras variáveis da célula LSTM )ht t xt ht - 1
Observe que é um vetor. Portanto, se você deseja fazer uma analogia com uma rede de feedforward regular com 1 camada oculta, pode-se pensar em A como o lugar de todos esses neurônios na camada oculta (mais a complexidade extra da parte recorrente).ht
fonte
Na sua imagem, A é uma única camada oculta com um único neurônio oculto. Da esquerda para a direita é o eixo do tempo e, na parte inferior, você recebe uma entrada a cada momento. No topo, a rede poderia ser expandida ainda mais adicionando camadas.
Se você desdobrasse esta rede no tempo, como está sendo mostrado visualmente na sua imagem (da esquerda para a direita, o eixo do tempo é desdobrado), você obteria uma rede de feedforward com T (quantidade total de etapas de tempo) camadas ocultas, cada uma contendo um nó único (neurônio), como é desenhado no bloco A do meio.
espero que isso responda sua pergunta.
fonte
Gostaria de explicar esse diagrama simples em um contexto relativamente complicado: mecanismo de atenção no decodificador do modelo seq2seq.
No diagrama de fluxo abaixo, a são etapas de tempo (do mesmo comprimento que o número de entrada com PADs para espaços em branco). Cada vez que a palavra é colocada na i-ésima (etapa temporal) LSTM neural (ou célula kernal igual a qualquer uma das três em sua imagem), ela calcula a i-ésima saída de acordo com seu estado anterior ((i-1) ésima saída) e a i-ésima entrada . Ilustro seu problema usando isso porque todos os estados do timestep são salvos para o mecanismo de atenção, em vez de descartados apenas para obter o último. É apenas um neural e é visto como uma camada (várias camadas podem ser empilhadas para formar, por exemplo, um codificador bidirecional em alguns modelos seq2seq para extrair mais informações abstratas nas camadas mais altas).h0 0 hk - 1 xEu
Em seguida, ele codifica a sentença (com as palavras L e cada uma delas representada como vetor da forma: dimensão de incorporação * 1) em uma lista de tensores L (cada uma da forma: num_hidden / num_units * 1). E o estado passado para o decodificador é apenas o último vetor, como a sentença incorporada da mesma forma de cada item da lista.
Fonte da imagem: Mecanismo de Atenção
fonte