Número de parâmetros em um modelo LSTM

43

Quantos parâmetros possui um único LSTM empilhado? O número de parâmetros impõe um limite inferior ao número de exemplos de treinamento necessários e também influencia o tempo de treinamento. Portanto, conhecer o número de parâmetros é útil para treinar modelos usando LSTMs.

wabbit
fonte

Respostas:

29

O LSTM possui um conjunto de 2 matrizes: U e W para cada um dos (3) portões. O (.) No diagrama indica a multiplicação dessas matrizes com a entrada x saída h .

  • U tem dimensões n×m
  • W tem dimensões n×n
  • há um conjunto diferente de matrizes estas para cada um dos três portões (como vocêforget para o esquecer portão, etc.)
  • existe outro conjunto dessas matrizes para atualizar o estado da célula S
  • além das matrizes mencionadas, é necessário contar os vieses (não na figura)

4(nm+n2+n)

Bloco abstrato LSTM

wabbit
fonte
2
Eu mesmo enfrentei essa questão ao tomar decisões práticas sobre a estimativa de requisitos de hardware e o planejamento de um projeto de aprendizado profundo. PS: Eu não respondi minha própria pergunta apenas para ganhar pontos de reputação. Quero saber se minha resposta está correta da comunidade.
Wabbit
11
Você ignorou as unidades de polarização. Veja a resposta de Adam Oudad abaixo.
arun
11
Viéses não estão lá. Eu editei a resposta.
Escachator
21

mn

4(nm+n2)

No entanto, caso o seu LSTM inclua vetores de polarização ( este é o padrão no keras, por exemplo ), o número se torna:

4(nm+n2+n)
Adam Oudad
fonte
2
Esta é a única resposta completa. Todas as outras respostas parecem satisfeitas em ignorar o caso dos neurônios de viés.
Restabeleça Monica
11
Para dar um exemplo concreto, se sua entrada possui m = 25 dimensões e você usa uma camada LSTM com n = 100 unidades, número de parâmetros = 4 * (100 * 25 + 100 ** 2 + 100) = 50400.
arun
11
Suponha que eu esteja usando dados de timestep, meu entendimento abaixo está correto? n = 100: significa que terei 100 timestep em cada amostra (exemplo), portanto, preciso de 100 unidades. m = 25 média em cada timestep, tenho 25 características como [peso, altura, idade ...].
jason zhang 10/03
2
@jasonzhang O número de timesteps não é relevante, porque a mesma célula LSTM será aplicada recursivamente aos seus vetores de entrada (um vetor para cada timestep). o que geralmente chamamos de "unidades" também é o tamanho de cada vetor de saída, não o número de timesteps.
Adam Oudad 11/03
12

De acordo com isso :

Estrutura celular LSTM

Estrutura celular LSTM

Equações LSTM

Equações LSTM

Ingoring não linearidades

Ingoring não linearidades

Se a entrada x_t for do tamanho n × 1 e houver d células de memória, o tamanho de cada um de W ∗ e U ∗ será d × n , e d × d resp. O tamanho de W será então 4d × (n + d) . Observe que cada uma das células de memória dd possui seus próprios pesos W ∗ e U ∗ e que os únicos valores de células de memória compartilhados com outras unidades LSTM são durante o produto com U ∗ .

Agradecemos a Arun Mallya pela ótima apresentação.

ichernob
fonte