Estrutura da rede neural recorrente (LSTM, GRU)

9

Estou tentando entender a arquitetura das RNNs. Encontrei este tutorial que foi muito útil: http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Especialmente esta imagem: insira a descrição da imagem aqui

Como isso se encaixa em uma rede de feed-forward? Essa imagem é apenas outro nó em cada camada?

Adam12344
fonte
Ou é assim que todo neurônio se parece?
Adam12344

Respostas:

8

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 )httxtht-1 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

felipefg
fonte
Fazer , e ter todos o mesmo comprimento? htctxt
user_1177868
6

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.

Sjoerd
fonte
3

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 0hk-1 1xEu

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.

insira a descrição da imagem aqui
Fonte da imagem: Mecanismo de Atenção

Lerner Zhang
fonte