Quando usar GRU sobre LSTM?

95

A principal diferença entre uma GRU e um LSTM é que uma GRU possui duas portas ( redefinir e atualizar portas), enquanto uma LSTM possui três portas (portas de entrada , saída e esquecimento ).

Por que usamos GRU quando claramente temos mais controle sobre a rede através do modelo LSTM (como temos três portas)? Em que cenário a GRU é preferida à LSTM?

Sayali Sonawane
fonte
1
Uma GRU é um pouco menos complexa, mas é aproximadamente tão boa quanto uma LSTM em termos de desempenho. Uma implementação no TensorFlow é encontrada aqui: data-blogger.com/2017/08/27/gru-implementation-tensorflow .
www.data-blogger.com

Respostas:

64

A GRU está relacionada ao LSTM, pois ambas estão utilizando maneiras diferentes de fornecer informações para evitar o problema de gradiente de fuga. Aqui estão alguns pontos importantes sobre GRU vs LSTM-

  • A GRU controla o fluxo de informações como a unidade LSTM, mas sem precisar usar uma unidade de memória . Apenas expõe todo o conteúdo oculto sem nenhum controle.
  • A GRU é relativamente nova e, da minha perspectiva, o desempenho está em pé de igualdade com o LSTM, mas computacionalmente mais eficiente ( estrutura menos complexa, como apontado ). Então, estamos vendo isso sendo usado cada vez mais.

Para uma descrição detalhada, você pode explorar este documento - Arxiv.org . O artigo explica tudo isso de forma brilhante.

Além disso, você também pode explorar esses blogs para ter uma idéia melhor -

Espero que ajude!

Abhishek Jaiswal
fonte
1
Além de sua resposta lá é um papel bom avaliar o desempenho entre GRU e LSTM e suas várias permutações "Uma exploração empírica de arquiteturas de rede recorrentes" pelo Google
minerais
38

* Para complementar já ótimas respostas acima.

  • De acordo com minha experiência, as GRUs treinam mais rápido e têm melhor desempenho do que LSTMs em menos dados de treinamento se você estiver fazendo modelagem de linguagem (não tenho certeza sobre outras tarefas).

  • As GRUs são mais simples e, portanto, mais fáceis de modificar, por exemplo, adicionando novas portas em caso de entrada adicional na rede. É apenas menos código em geral.

  • Os LSTMs devem, em teoria, lembrar sequências mais longas que as GRUs e superá-las em tarefas que exigem modelagem de relações de longa distância.

* Alguns trabalhos adicionais que analisam GRUs e LSTMs.

minerais
fonte
9

Essa resposta realmente está no conjunto de dados e no caso de uso. É difícil dizer definitivamente o que é melhor.

  • A GRU expõe a memória completa, diferentemente do LSTM, portanto, aplicativos que atuam como vantagem podem ser úteis. Além disso, acrescentando o porquê de usar GRU - é computacionalmente mais fácil que o LSTM, pois possui apenas 2 portas e, se o desempenho estiver no mesmo nível do LSTM, por que não?
  • Este artigo demonstra excelentemente com gráficos a superioridade de redes fechadas sobre uma RNN simples, mas menciona claramente que não é possível concluir quais são as melhores. Portanto, se você estiver confuso sobre qual usar como modelo, sugiro que você treine os dois e depois os tire melhor.
Hima Varsha
fonte
8

Unidade GRU COMPLETA

c~t=tanh(Wc[Grct-1,xt]+bc)

Gvocê=σ(Wvocê[ct-1,xt]+bvocê)

Gr=σ(Wr[ct-1,xt]+br)

ct=Gvocêc~t+(1-Gvocê)ct-1

umat=ct

Unidade LSTM

c~t=tanh(Wc[umat-1,xt]+bc)

Gvocê=σ(Wvocê[umat-1,xt]+bvocê)

Gf=σ(Wf[umat-1,xt]+bf)

Go=σ(Wo[umat-1,xt]+bo)

ct=Gvocêc~t+Gfct-1

umat=Gotumanh(ct)

Como pode ser visto nas equações, os LSTMs têm um portão de atualização separado e um portão de esquecimento. Isso claramente torna os LSTMs mais sofisticados, mas ao mesmo tempo mais complexos. Não há uma maneira simples de decidir qual usar para seu caso de uso específico. Você sempre tem que tentar e errar para testar o desempenho. No entanto, como a GRU é mais simples que a LSTM, as GRUs levarão muito menos tempo para treinar e serão mais eficientes.

Créditos: Andrew Ng

balboa
fonte
uma<t>=Γotumanh(c~<t>)
1

O GRU é melhor que o LSTM, pois é fácil de modificar e não precisa de unidades de memória; portanto, é mais rápido treinar que o LSTM e fornecer conforme o desempenho.

Vivek Khetan
fonte
12
por favor, apoiem a reivindicação de desempenho com referências justas
Kari
1

Na verdade, a principal diferença acaba sendo mais do que isso: os perceptrons de longo prazo (LSTM) são compostos usando os algoritmos de descida de momento e gradiente. Quando você reconcilia perceptrons LSTM com seus RNNs equivalentes recursivos, cria GRU que é realmente apenas uma unidade recorrente generalizada ou Unidade Recorrente Gradiente (dependendo do contexto) que integra mais estreitamente os algoritmos de descida de momento e gradiente. Se você fosse, faria mais pesquisas sobre o AdamOptimizers.

A GRU é um conceito ultrapassado, a propósito. No entanto, eu posso entender você pesquisando se quiser um conhecimento profundo e moderado sobre o TF.

Andre Patterson
fonte
8
Estou curioso. Você poderia explicar por que GRU é um conceito desatualizado?
random_user 16/11