Quais são as vantagens de empilhar vários LSTMs?

25

Quais são as vantagens, por que alguém usaria vários LSTMs, empilhados lado a lado, em uma rede profunda? Estou usando um LSTM para representar uma sequência de entradas como uma única entrada. Então, uma vez que eu tenho essa única representação - por que eu a repassaria novamente?

Estou perguntando isso porque vi isso em um programa de geração de linguagem natural.

wordSmith
fonte
1
Você realmente quis dizer LSTMs empilhados lado a lado como na horizontal (ao longo de etapas de tempo) ou você quis dizer verticalmente empilhadas (várias células LSTM para cada etapa de tempo)?
Wabbit

Respostas:

18

Eu acho que você está se referindo a camadas LSTM empilhadas verticalmente (assumindo que os eixos horizontais são o eixo do tempo).

Nesse caso, o principal motivo para empilhar o LSTM é permitir maior complexidade do modelo. No caso de uma rede simples de feedforward, empilhamos camadas para criar uma representação hierárquica de recursos dos dados de entrada, para depois usá-los em alguma tarefa de aprendizado de máquina. O mesmo se aplica aos LSTMs empilhados.

A cada passo, um LSTM, além da entrada recorrente. Se a entrada já for o resultado de uma camada LSTM (ou uma camada de avanço), o LSTM atual poderá criar uma representação de recurso mais complexa da entrada atual.

Agora, a diferença entre ter uma camada de avanço entre a entrada do recurso e a camada LSTM e ter outra camada de LSTM é que uma camada de avanço (por exemplo, uma camada totalmente conectada) não recebe feedback de sua etapa anterior e, portanto, não pode dar conta de certas padrões. Tendo um LSTM em lugar (por exemplo, usando uma representação LSTM empilhada), padrões de entrada mais complexos podem ser descritos em todas as camadas

Sjoerd
fonte
4
As células LSTM dentro de uma camada já estão totalmente conectadas de forma recorrente entre si (as saídas de uma camada têm conexões com todas as entradas da mesma camada). Portanto, células individuais já podem combinar recursos sobre as saídas de outras células, tudo dentro de uma camada. Você poderia explicar por que várias camadas resultam em padrões mais complexos, por favor?
Danijar
6

A partir de 1}:

Embora não esteja teoricamente claro qual é o poder adicional adquirido pela arquitetura mais profunda, foi observado empiricamente que as RNNs profundas funcionam melhor do que as menos profundas em algumas tarefas. Em particular, Sutskever et al (2014) relatam que uma arquitetura profunda de 4 camadas foi crucial para alcançar um bom desempenho de tradução automática em uma estrutura de codificador-decodificador. Irsoy e Cardie (2014) também relatam melhores resultados ao passar de um BI-RNN de uma camada para uma arquitetura com várias camadas. Muitos outros trabalhos relatam resultados usando arquiteturas RNN em camadas, mas não se comparam explicitamente com RNNs de uma camada.

PARA SUA INFORMAÇÃO:


Referências:

Franck Dernoncourt
fonte
2

Ao brincar com o LSTM para classificação de sequência, teve o mesmo efeito que aumentar a capacidade do modelo nas CNNs (se você estiver familiarizado com elas). Portanto, você definitivamente obtém ganhos, especialmente se estiver com pouca adequação de seus dados.

É claro que tem dois gumes, pois você também pode se ajustar demais e obter um desempenho pior. No meu caso, fui de 1 LSTM para uma pilha de 2 e obtive uma melhora instantânea.

InKodeWeTrust
fonte